Perl :: Aufgabe #33
2 Lösungen

Mit Caesar Chiffre ent- und verschlüsseln
Anfänger - Perl
von Dome
- 03.01.2013 um 01:30 Uhr
Schreiben Sie ein Programm, indem Sie mit Hilfe der Caesar Chiffre einen beliebigen Text ent- und verschlüsseln können. Zuvor muss der Text und die Anzahl der Verschiebung angegeben werden. Groß- und Kleinschreibung muss nicht beachtet werden.
Konsolenausgabe:
Geben Sie den Text ein: Beispielwort
Um wie viele Stellen soll verschoben werden: 1
Ergebnis: Cfjtqjfmxpsu
Lösungen:
Hier mein Modell!
Perl-Code

print "Bitte Wort eingeben!\n"; chop($wert = <STDIN>); print "\nVerschiebung um wie viele Zeichen?\n"; chop($verschiebung = <STDIN>); $wert = lc($wert); $laenge = length($wert); @buchstaben = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); #Buchstaben um gewünschte Zahl verschieben for($i=0;$i<=25;$i++){ @verschoben[$i] = @buchstaben[$i+$verschiebung]; } #Wort zeichenweise in Array schreiben for($i=1;$i<=$laenge;$i++){ @wort[$i-1]= substr($wert,$i-1,1); } #gegebenes Wort in verschlüsseltes Wort umwandeln for($i=0;$i<$laenge;$i++){ for($k=0;$k<25;$k++){ if(@wort[$i] eq @buchstaben[$k]){ @wort[$i]=@verschoben[$k]; $k=25; } } } print @wort;

#!/usr/bin/perl use strict; use warnings; use Switch; my @arrx = (); my $i = 0; my $c = 0; my $u = 0; #Eingabe Text print "\n \n"; print "Geben Sie den Text ein: "; my $x = <STDIN>; chomp $x; #Eingabe Stellen print "Um wie viele Stellen soll verschoben werden: "; my $stelle = <STDIN>; chomp $stelle; #berechnung @arrx = split(//,$x); my $anzahl = @arrx; while ($i != $stelle) { $c = 0; $u = 0; while ($u != $anzahl) { switch ($arrx[$c]) { case "a" {$arrx[$c] = "b";} case "b" {$arrx[$c] = "c";} case "c" {$arrx[$c] = "d";} case "d" {$arrx[$c] = "e";} case "e" {$arrx[$c] = "f";} case "f" {$arrx[$c] = "g";} case "g" {$arrx[$c] = "h";} case "h" {$arrx[$c] = "i";} case "i" {$arrx[$c] = "j";} case "j" {$arrx[$c] = "k";} case "k" {$arrx[$c] = "l";} case "l" {$arrx[$c] = "m";} case "m" {$arrx[$c] = "n";} case "n" {$arrx[$c] = "o";} case "o" {$arrx[$c] = "p";} case "p" {$arrx[$c] = "q";} case "q" {$arrx[$c] = "r";} case "r" {$arrx[$c] = "s";} case "s" {$arrx[$c] = "t";} case "t" {$arrx[$c] = "u";} case "u" {$arrx[$c] = "v";} case "v" {$arrx[$c] = "w";} case "w" {$arrx[$c] = "x";} case "x" {$arrx[$c] = "y";} case "y" {$arrx[$c] = "z";} case "z" {$arrx[$c] = "a";} } $c++; $u++; } $i++; } #Ergebnis print "Ergebnis: "; print join ("",@arrx); print "\n \n"; #Beenden des Programms print "Zum Beenden des Programms bitte Enter druecken.\n"; <STDIN>