C# Übungskurs: Kontrollstrukturen, Strings & Methodik
Diese Übung basiert auf der wunderbaren Coding Kata “ROT-13” der Clean Code Developer School.
- Übungsfokus: String, Kontrollstrukturen (for-Schleife, if-Abfrage), Problemlösung (vom Problem zum Code), Arbeiten in kleinen abgeschlossenen Schritten
- Geschätzte Übungsdauer: ca. 30-60 Minuten
- Schwierigkeitsgrad: Einsteiger & Fortgeschrittene
In dieser Übung geht es darum, dass du
- lernst wie du von einer “einfachen” Problemstellung zu einem funktionsfähigen Quellcode kommst.
- den Datentyp string inklusive einiger seiner wichtigen Funktionen verwendest.
- einzelne Zeichen eines
String
manipulierst. - Kontrollstrukturen wie die
for
-Schleife und dieif
-Abfrage verwendest. - ein
Array
verwendest.
Übungsbeschreibung
ROT13 (engl. rotate by 13 places, zu Deutsch in etwa „rotiere um 13 Stellen“) ist eine Caesar-Verschlüsselung (auch Verschiebechiffre genannt), mit der auf einfache Weise Texte verschlüsselt werden können. […] ROT13 ist nicht zur sicheren Verschlüsselung gedacht, es wird im Gegensatz dazu sogar oft als Beispiel für eine schwache, unsichere Verschlüsselung genannt. Vielmehr dient ROT13 dazu, einen Text unlesbar zu machen, also zu verschleiern, so dass eine Handlung des Lesers erforderlich ist, um den ursprünglichen Text lesen zu können. – Wikipedia
In dieser Übung geht es darum, dass du dem Anwender erlaubst einen beliebigen Text einzugeben und dieser dann entsprechend den folgenden Regeln (abgeleitet von der zugrundeliegenden Coding Kata - DANKE an Clean Code Developer School!) verschlüsselt und anschließend ausgegeben wird:
- Es werden nur Buchstaben verschlüsselt (Zahlen und Sonderzeichen bleiben an gleicher Stelle erhalten)
- Kleinbuchstaben werden vor ihrer Verschlüsselung in Großbuchstaben konvertiert (der verschlüsselte Text besteht also nur aus Großbuchstaben und verliert somit die Information über Groß- und Kleinschreibung). Der Benutzer soll die Möglichkeit haben Großbuchstaben und Kleinbuchstaben einzugeben! Die Konvertierung in Großbuchstaben wird erst vor der Verschlüsselung durch geführt.
- Umlaute werden “normalisiert”. D.h. “ü” -> “UE”, “ö” -> “OE”, “ä” -> “AE”, “ß” -> “SS”
Verschlüsselt heißt dabei, dass jeder Buchstabe um 13 Stellen “nach rechts” verschoben wird (z.B. A -> N). Wird bei der Verschiebung das Z “passiert”, dann wird wieder bei A angefangenen (z.B. O -> B).
Bei der Umsetzung dieser Übung solltest du darauf achten, dass du dir die Übung in kleine einfache Schritte unterteilst und diese auch separat umsetzt. Der Fokus sollte (erstmal) darauf liegen eine funktionierende Lösung zu erstellen. Weitere Aspekte wie “gute” Objektorientierung, “sauberer” Quellcode, “tolle” Oberfläche bzw. Benutzerführung würde ich erstmal nicht beachten. Das sind alles Varianten in der du diese Übung nochmals ausführen kannst.
Testdaten
Mit folgenden Texten kannst du dein Programm überprüfen ob es richtig funktioniert:
Ausgangstext | Verschlüsselter Text |
---|---|
Hallo | UNYYB |
Es ist gerade 7:21 Uhr am Dienstag Morgen | RF VFG TRENQR 7:21 HUE NZ QVRAFGNT ZBETRA |
Übung macht besser ;-) | HROHAT ZNPUG ORFFRE ;-) |
Tipps zur Lösung
Gerade als Anfänger ist es manchmal schwer solche Aufgaben zu lösen, einfach weil es viel zu viel Unbekannte gibt. Daher möchte ich dir hier ein paar Tipps geben die du verwenden kannst, wenn du mit der Lösung der Übung nicht weiter kommst.
ACHTUNG: in den Tipps bekommst du einige detailierte Hinweise zur Lösung. Versuche also erstmal selber eine Lösung zu finden.
- Tipp #1 - Fokussiere dich auf kleine Schritte.
- Tipp #2 - Verwende existierende Funktionalitäten.
- Tipp #3 - Konvertiere Zeichenketten in einzelne Zeichen.
Musterlösung
Es gibt sehr viele unterschiedliche Lösungsmöglichkeiten. Die von mir gewählte erkläre ich dir hier