Heute will ich mit C# ein kleines Programm schreiben, das ein eingegebenes Wort verschlüsselt, in dem es einfach die eingegebenen Buchstaben um 13 Zeichen verschiebt.
Hierzu braucht man im Prinzip nur das eingegebene Wort, (desse Buchstaben gezählt werden), und eine Schleife mit den richtigen Anweisungen zum Verschieben der Buchstaben.
Als allererstes werden die verschiedenen Variablen deklariert:
char buchst, buchstNeu;
int asciiAlt, asciiNeu, anzahl;
string original, codiert = "";
Da die einzelnen Buchstaben im Wort nur aus einem Buchstaben bestehen, wird hierzu Charakter bzs char als Datentyp verwendet.
Die ascii Zahlen sind selbstverständlich integer Zahlen und der eingegbene bzw der codierte Text ist ein string.
Console.writeline("Bitte geben Sie den Originaltext ein:");
original = Convert.ToString(Console.Readline());
anzahl = original.Length;
Hier wird der Benutzer gebeten den Text einzugeben. Dieser wird in der Variable original gespeichert. Außerder wird die Länge des Wortes in die Variable anzahl gespeichert.
for (int i = 0; i < anzahl; i++)
{
buchst = original [i];
asciiAlt = Convert.ToInt32(buchst);
asciiNeu = asciiAlt + 13;
if (asciiNeu > 90)
{
asciiNeu = asciiNeu -26;
}
buchstNeu = Convert.ToChar(asciiNeu);
codiert = codiert + buchstNeu;
}
In der Bedingung der for Schleife wird von 0 bis zum Inhalt der Variable anzahl hochgezählt, diese ja die Länge des Wortes hat.
Nun wird der erste Buchstabe der des Wortes was ja in der Variable original gespeichert ist, abgefragt udn in die Variable "buchst" gespeichert.
Danach wird der Inhalt der Variable buchst zu integer konvertiert und in die variable asciiAlt gespeichert. Da nun der Buchstabe um 13 Stellen im Alphabet verschoben wird, muss man lediglich asciAlt + 13 in die Variable asciiNeu speichern.
Nun kommt aber ein Problem. Was ist wenn der Benutzer zB "X" eingibt? Der buchstabe X kann man im Alphabet nihct um 13 Stellen verschieben. Man muss also noch in die Schleife eine if Abfrage einbauen damit bei so einem Fall, im Alphabet wieder von vorne angefangen wird.
Im Prinzip geht das ganz einfach. Man fragt ob die Ascii Zahl über 90 ist. Wenn dies der Fall ist, wird einfach 26 Zahlen abgezogen um wieder am Anfang des Alphabetes zu sein.
(Im Ascii Code fängt das Alphabet mit der Zahl 60 an)
Nun wird die Zahl in der AsciiNeu Variable wieder zu einem Char konvertiert und in "buchstNeu" gespeichert.
Als letztes wird jeder einzelne Buchstabe bei jedem Durchlauf der Schleife der Variablem "codiert" beigefügt.
Und natürlich wird das Ergebnis noch ausgegben:
Console.Writeline("Der mit dem Schlüssel 13 verschlüsselte Text lautet: " + codiert);
Keine Kommentare:
Kommentar veröffentlichen