Perl :: Aufgabe #33 :: Lösung #2

2 Lösungen Lösungen öffentlich
#33

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
#2
vote_ok
von Kimaro (520 Punkte) - 24.10.2014 um 14:01 Uhr
Quellcode ausblenden Perl-Code

#!/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>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben