C Programmcode Ceasar Cipher?

Hallo,

die aufgabe ist folgende:

Schreiben Sie eine Funktion, welche eine Variante des [Caesar Cipher](https://en.wikipedia.org/wiki/Caesar_cipher) auf einen String anwendet. Hierbei wird anstatt eines vorgegebenen Betrages und einer vorgegebenen Richtung für die Chiffrierung der Schlüssel für jeden Buchstaben des Klartextes neu berechnet.

Funktionsweise:

Jede Verschiebung erfolgt abhängig vom Schlüssel. Ist der Schlüssel für das aktuelle Zeichen eine gerade Zahl, so wird das aktuelle Zeichen um diesen Betrag im Alphabet nach rechts verschoben (z.B. beim Schlüssel 2 wird aus einem A ein C). Ist der Schlüssel ungerade, so erfolgt eine Verschiebung nach links (z.B. beim Schlüssel 3 wird aus einem D ein A).

Würde eine Verschiebung über das Ende des Alphabets hinaus erfolgen, so wird die Zählung bei Beginn des Alphabets fortgesetzt. Beim Schlüssel 2 wird aus einem Z also ein B bzw. beim Schlüssel 3 aus einem A ein X.

Es werden nur Buchstaben des englsichen Alphabets (A-Z und a-z) chiffriert. Alle anderen Zeichen bleiben unverändert.

Der Startschlüssel wird nur auf das erste Zeichen angewendet. Danach wird der Schlüssel nach jeder Anwendung neu berechnet, indem der Zahlenwert des zuletzt veränderten Klartext-Zeichens (also 1 für A und a, 2 für B und b, bis 26 für Z und z) durch den zuletzt verwendeten Schlüssel dividiert wird. Der neue Schlüssel für das nächste Zeichen ist der ganzzahlige Rest dieser Division. Falls es hierbei zu einer Division durch Null kommen würde (weil der zuletzt verwendete Schlüssel 0 war) wird der neue Schlüssel wieder auf den Wert des Startschlüssels gesetzt.

Folgenden Code habe ich bis jetzt geschrieben, allerdings bekomm ich bei großen Schlüsseln (zb: start_key = 100) falsche Ergebnisse raus. Weiß glaube ich auch warum: Mein Algorithmus funktioniert ja über Werteverschiebung, d.h. ab einem bestimmt großen Wert des Schlüssels verschiebt sich mein Zahlenwert des chars zu weit und dann stimmt meine "Formel" nicht mehr. Hätte es jetzt damit gelöst, dass ich zuerst mit einer if Schleife auf einen zu großen Key prüfe (zB.: if Key > 25), anschließend dividiere ich diesen Key und gehe mit dem Ergebniss in eine neue Schleife rein wobei jetzt anstatt des Keys der neue Wert addiert bzw subtrahiert wird. Anschließend durchlaufe ich diese Schleife Key%25 mal.

Aber wie setze ich das um? Zusätzlich dazu wird der Code dann mega unübersichtlich und viel zu lang für eine simple Funktion. Gibt es auch andere Möglichkeiten als meinen Code?

Ps: Ich sende den Code extra weil sonst das Zeichenlimit überschritten wird

Computer, Mathematik, IT, programmieren, EDV, Informatik, Kryptographie, Universität, Algorithmus
Mathe Dyskalkulie mit 20 Jahren welche Ausbildung?

Hallo, ich habe seid der Grundschule eine starke Rechenschwäche. Meine Mutter hat neulich mit der alten Rektoren der Grundschule gesprochen / über meine alten Leistungen. Die Rektorin meinte früher schonmal ,dass ich irgendeine Schwäche hätte worauf wir nicht eingegangen sind. Ich bin nun mittlerweile 20 Jahre alt und habe mich damit durchgequält ständig mit Noten 5-6 und bin nun an der Zeit an wo ich sage. Ich weiß nicht mehr weiter. Ich finde keine Ausbildung die mir entspricht. Ich verstehe kein Mathe. Ich habe 2 Ausbildungen probiert und im Nachhinein abgebrochen da es mir zu komplex war, ich rede ständig mit meinen Eltern drüber ,nur meine Mutter und Freundin verstehen mich aber sie können mir nicht helfen, sie sagen selbst sie wissen nicht weiter. Mein Vater hingegen ist Eigen und versteht es nicht und sagt das ist Schwachsinn wäre. Nachhilfe oder Hilfe in dem jeweiligen Bereich würde genügen um es zu schaffen. Dazu auch wenn ich nichts finde (keine Ausbildung) wird mich niemand mehr nehmen und es wäre bald zuspät wegen meinem Alter. Ich kann doch keine Ausbildung machen ,wenn ich was überhaupt nicht kann , ich will nicht als Versager an der Stelle abgestempelt werden...Was andere für einfach halten mit %, Brüchen, unwandeln, überschlagen , umrechnen, Kopfrechnen, Zahlensprünge ,Zahlenraum bis Tausend mal rechnen etc finde ich extrem schwer. Ich gerate bei Mathe Aufgaben in Panik und schaue so als wäre es vom anderen Planeten. Hat jemand die selbe Erfahrung gesammelt? Wenn ja was habt Ihr dagegen gemacht , und welche Ausbildung habt Ihr ausgeübt mit eurer Diskalkulie? Mir kommen ständig die Tränen weil ich nicht weiß welche Richtung ich nun gehen soll.

Schule, Mathematik, Dyskalkulie, Rechenschwäche, Ausbildung und Studium

Meistgelesene Beiträge zum Thema Mathematik