20. kasu praktikoa: rot13 zifratze-metodoa

     Bere ibili gorabeheratsuan, gizakiak mezuak isilpean bidali eta jasotzeko makina bat kode berezi asmatu du. Bada sistema bat, Zesarren zifratze-metodoa deiturikoa (pentsa noizkoa den!). Metodo horretan, mezua zifratzeko letra guztiak n posizio mugitzen dira eskuinerantz; n igorleak eta jasotzaileak aldez aurretik adosturiko zenbakia izanik.
     Zesarren metodoa orokorra da, eta rot13 haren kasu berezia, non n zenbakia 13 den. Hau da, mezua zifratzeko, jatorrizkoaren letra guztiak 13 posizio mugitzen dira eskuinerantz. Helburura iristean, jatorrizko mezua irakurtzeko alderantzizko eragiketa aplikatu (13 posizio ezkerrerantz mugitu) eta listo.
     Gara dezagun teklatu bidez jasotako testua rot13 zifratze-algoritmoarekin kodetu eta ondoren pantailan bistaratzen duen programa. Erabiltzaileak nahi beste lerro idatzi ahal izango ditu teklatu bidez, eta amaitzeko lerro hutsa sartuko du.
Hona hemen bere erabileraren adibidea:

>perl rot13.pl
Idatzi testua lerroz-lerro. Amaitzeko sartu lerro hutsa
ari naizela ari naizela
hor ikusten det Txirrita
Testua zifratuta:
nev anvmryn nev anvmryn
ube vxhfgra qrg Gkveevgn
>

     Programaren eskema orokorra:
1. Lerro hutsa ez den bitartean, irakurri teklatutik $lerroa
         1.1. Kateatu $lerroa string-a $testua-ri
2. $testua aldagaiko karaktereak desplazatu 13 posizio eskuinerantz:
         $testua =~ tr/a-zA-Z/n-za-mN-ZA-M/;
3. Bistaratu $testua
    
Eta hona eskema programa bihurtua:

rot13.pl
 #!/usr/local/bin/perl
 use warnings;
 use strict;
 my $lerroa;
 my $testua = “”;
 print “Idatzi testua lerroz-lerro. Amaitzeko sartu lerro
        hutsan”;
 while (length($lerroa = <STDIN>) > 1) {
    $testua .= $lerroa; # $testua = $testua . $lerroa;
 }
 # Letrak 13 posizio eskubirantz
 $testua =~ tr/a-zA-Z/n-za-mN-ZA-M/;
 print(“Testua zifratuta:n”);
 print ($testua);

Jaitsi   rot13.pl   fitxategia

Utzi erantzuna

Zure e-posta helbidea ez da argitaratuko. Beharrezko eremuak * markatuta daude