Teklatu bidez hitz edo esaldi bat jaso eta palindromoa den ala ez adierazten duen programa idatzi. Palindromoa da, ezkerretik eskuinera zein eskuinetik ezkerrera berdin irakurtzen dena. Adibidez: “ama”, edo askoz luzeagoa den “nik enara neraman amaren aranekin”.
Programak zuriune eta puntuazio-markak ez ditu aintzat hartu behar.
Baina nola jakin karaktere-kate bat palindromoa den ala ez? Erabakitzeko modu bat litzateke karakterez karaktere array batean gorde eta ondoren bere alderantzizkoarekin konparatzea. Katea palindromoa izango da bi array-ak (jatorrizkoa eta alderantzikatua) berdinak direnean.
Kontuz, kasu berezi bezala karaktere bakarreko katea izango genuke, palindromoa
dena baita.
Hona programa:
palindromo.pl
#!/usr/bin/perl
# sarrera: teklatu bidez idatzitako esaldia
# irteera: idatzitakoa palindromoa den ala ez
use warnings;
use strict;
print(“Idatzi esaldi edo hitz bat:n”);
my $testua = <STDIN>;
chomp($testua);
# hitz karaktere ez direnak ezabatu
$testua =~ s/W//g;
# Letra larriak xehe bihurtu
$testua =~ tr/A-Z/a-z/;
# karakterez-karaktere array-an gorde
my @karak = split (//, $testua);
# array-a atzekoz aurrera jarri eta karaktereak
# elkarrekin itsatsi
my $atzekozAu = join (“”, reverse(@karak));
# palindromoa den konprobatu
if (@karak == 1) {
print “Letra bakarreko palindromoa!n”;
}
elsif ($atzekozAu eq $testua) {
print “Palindromoa dan”;
}
else {
print “Ez da palindromoan”;
}
Jaitsi palindromo.pl fitxategia