Ruby :: Aufgabe #23
2 Lösungen

Mit Caesar Chiffre ent- und verschlüsseln
Anfänger - Ruby
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:

print "Geben Sie den Text ein: " text = gets.chomp print "Um wieviel Stellen soll verschoben werden: " anzahl = gets.to_i ergebnis = "" text.each_byte do |byte| if byte <=90 and byte >=65 then if byte + anzahl <= 90 then ergebnis = ergebnis + (byte+anzahl).chr else ergebnis = ergebnis + (byte+anzahl-26).chr end elsif byte <=122 and byte >=97 then if byte + anzahl <= 122 then ergebnis = ergebnis + (byte+anzahl).chr else ergebnis = ergebnis + (byte+anzahl-26).chr end else ergebnis = ergebnis + (byte).chr end end puts "Ergebnis: #{ergebnis}"

#alternative Implementierung mit Modulo-Operator print "Geben Sie den Text ein: " text = gets.chomp print "Um wieviel Stellen soll verschoben werden: " anzahl = gets.to_i ergebnis = "" text.each_byte do |byte| if byte <=90 and byte >=65 then ergebnis = ergebnis + ((byte+anzahl-65)%26 +65).chr elsif byte <=122 and byte >=97 then ergebnis = ergebnis + ((byte+anzahl-97)%26+ 97).chr else ergebnis = ergebnis + (byte).chr end end puts "Ergebnis: #{ergebnis}"