Kryptologie - Informatik
Kryptologie - Informatik Kryptologie - Informatik
PROCEDURE PROCEDURE bereinigt_laden; VAR V VAR A R Datei: text; zeichen: char; i: integer; PROCEDURE PROCEDURE ersetzen (nn: integer; c1, c2: char); BEGIN BEGIN textlaenge := textlaenge + 1; textVorlage[textLaenge] := c1; IF I IF F nn = 2 THEN THEN BEGIN BEGIN textlaenge := textlaenge + 1; textVorlage[textLaenge] := c2; END END; END END E END N D; { zweiterBuchstabe } BEGIN BEGIN menu_zeigen(2, 4, true); menu_zeigen(3, 0, true); menu_zeigen(4, 0, true); menu_zeigen(5, 0, true); menu_zeigen(5, 1, true); IF IF NOT NNOT NOT O T menu_markiert(2, 2) THEN THEN item_aend end end eend n dern(2, 2); IF I IF F menu_markiert(2, 1) THEN THEN item_aend end end eend n dern(2, 1); dateiname := oldfilename(‚ ‚); reset(datei, dateiname); textlaenge := 0; WHILE WHILE NOT N NOT O T eof(Datei) AND AND AAND AND N D (textLaenge < N) DO DO BEGIN BEGIN WHILE WHILE NOT NNOT NOT O T eoln(Datei) AND AND AAND AND N D (textLaenge < N - 1) DO DO BEGIN BEGIN read(datei, zeichen); CASE CASE zeichen OF ‚ä‘, ‚Ä‘: ersetzen(2, ‚A‘, ‚E‘); ‚ö‘, ‚Ö‘: ersetzen(2, ‚O‘, ‚E‘); ‚ü‘, ‚Ü‘: ersetzen(2, ‚U‘, ‚E‘); ‚ß‘: ersetzen(2, ‚S‘, ‚S‘); ‚a‘..’z’: ersetzen(1, gross(zeichen), ‚-‘); ‚A‘..’Z’: ersetzen(1, zeichen, ‚-‘); ‚0‘..’9': ersetzen(1, zeichen, ‚-‘); END E END N D; { CASE } END E END N D; { WHILE not eoln } readln(datei); END E END N D;{While not eof} close(datei); text_ausgeben; IF IF NOT NOT NNOT NOT O T STANDARD_ERFASSEN THEN THEN standard_laden; END E END N D; { bereinigt_laden } 32
PROCEDURE PROCEDURE sichern; VAR V VAR A R Datei : text; i : integer; BEGIN BEGIN rewrite(Datei, dateiname); FOR F FOR O R i := 1 TO T TO O textlaenge DO DO write(Datei, textvorlage[i]); close(Datei); END E END N D; { sichern_als } PROCEDURE PROCEDURE caesar (codieren: boolean); VAR V VAR A R v, i: integer; BEGIN BEGIN IF I IF F codieren = true THEN THEN BEGIN BEGIN writeln; write(‚Um wieviel Stellen im Alphabet wollen sie den Text verschieben ?‘); readln(v); FOR F FOR O R i := 1 TO T TO O textlaenge DO DO BEGIN BEGIN textvorlage[i] := verschiebe(textvorlage[i], v); END END END; END END E END N D{Codierung} ELSE ELSE BEGIN BEGIN write(‚Um wieviel Stellen im Alphabet wurde der Text verschoben ?‘); readln(v); FOR F FOR O R i := 1 TO T TO O textlaenge DO DO BEGIN BEGIN IF I IF F textvorlage[i] IN I IN N [‚a‘..’z’] THEN THEN BEGIN BEGIN textvorlage[i] := verschiebe(textvorlage[i], 26 - (v MOD MOD M MOD O D 26)); END END ELSE ELSE IF I IF F textvorlage[i] IN I IN N [‚A‘..’Z’] THEN THEN BEGIN BEGIN BEGIN textvorlage[i] := verschiebe(textvorlage[i], 26 - (v MOD MOD M MOD O D 26)); END END ELSE ELSE IF I IF F textvorlage[i] IN I IN N [‚0‘..’9'] THEN THEN textvorlage[i] := verschiebe(textvorlage[i], 10 - (v MOD MOD M MOD O D 10)); END END E END N D;{Decodierung} END END; END text_ausgeben; END E END N D; { caesar } 33
- Seite 1 und 2: Stichworte: Pascal-Datentypen: •
- Seite 3 und 4: Unterrichtsbeschreibung zur Kryptol
- Seite 5 und 6: Anlage 2: Das File-Konzept in THINK
- Seite 7 und 8: PROGRAM PROGRAM PROGRAM stringTests
- Seite 9 und 10: Anlage 4 : Protokoll der Projektspe
- Seite 11 und 12: 1.6 PROCEDURE PROCEDURE PROCEDURE M
- Seite 13 und 14: 2.3 Vorgehensweise bei Buchstaben:
- Seite 15 und 16: 3. Textanalyse Platz 04 Ein Program
- Seite 17 und 18: 4. Codierung mit fester ZuordnungPl
- Seite 19 und 20: 5.3 Layout alt neu Text Interaktive
- Seite 21 und 22: 6.2 Entschlüsselung: Um die Vigen
- Seite 23 und 24: Anlage 6 : Kursarbeit 1. Im nachfol
- Seite 25 und 26: Anlage 7 : Programmlauf : Bereinigt
- Seite 27 und 28: ————— Bigramme sortiert
- Seite 29 und 30: Anlage 8 : Lauffähiges Programm in
- Seite 31: PROCEDURE PROCEDURE text_ausgeben;
- Seite 35 und 36: PROCEDURE PROCEDURE codierung; VAR
- Seite 37 und 38: BEGIN BEGIN { analyse } FOR FOR F F
- Seite 39 und 40: PROCEDURE PROCEDURE textAnalyse (si
- Seite 41 und 42: FUNCTION FUNCTION uebernehmen_von (
- Seite 43 und 44: BEGIN BEGIN { Bild_zeichnen } WITH
- Seite 45 und 46: PROCEDURE PROCEDURE PROCEDURE warte
- Seite 47 und 48: BEGIN BEGIN { Interaktion } hinweis
- Seite 49 und 50: PROCEDURE PROCEDURE behandle_Klick_
- Seite 51: Anlage 9 : PGP-Algoritmus private k
PROCEDURE PROCEDURE sichern;<br />
VAR V VAR A R Datei : text;<br />
i : integer;<br />
BEGIN<br />
BEGIN<br />
rewrite(Datei, dateiname);<br />
FOR F FOR O R i := 1 TO T TO O textlaenge DO<br />
DO<br />
write(Datei, textvorlage[i]);<br />
close(Datei);<br />
END E END N D; { sichern_als }<br />
PROCEDURE PROCEDURE caesar (codieren: boolean);<br />
VAR V VAR A R v, i: integer;<br />
BEGIN<br />
BEGIN<br />
IF I IF F codieren = true THEN<br />
THEN<br />
BEGIN<br />
BEGIN<br />
writeln;<br />
write(‚Um wieviel Stellen im Alphabet wollen sie den Text verschieben ?‘);<br />
readln(v);<br />
FOR F FOR O R i := 1 TO T TO O textlaenge DO<br />
DO<br />
BEGIN<br />
BEGIN<br />
textvorlage[i] := verschiebe(textvorlage[i], v);<br />
END END END; END<br />
END E END N D{Codierung}<br />
ELSE<br />
ELSE<br />
BEGIN<br />
BEGIN<br />
write(‚Um wieviel Stellen im Alphabet wurde der Text verschoben ?‘);<br />
readln(v);<br />
FOR F FOR O R i := 1 TO T TO O textlaenge DO<br />
DO<br />
BEGIN<br />
BEGIN<br />
IF I IF F textvorlage[i] IN I IN N [‚a‘..’z’] THEN<br />
THEN<br />
BEGIN<br />
BEGIN<br />
textvorlage[i] := verschiebe(textvorlage[i], 26 - (v MOD MOD M MOD O D 26));<br />
END<br />
END<br />
ELSE ELSE IF I IF F textvorlage[i] IN I IN N [‚A‘..’Z’] THEN<br />
THEN<br />
BEGIN BEGIN<br />
BEGIN<br />
textvorlage[i] := verschiebe(textvorlage[i], 26 - (v MOD MOD M MOD O D 26));<br />
END<br />
END<br />
ELSE ELSE IF I IF F textvorlage[i] IN I IN N [‚0‘..’9'] THEN<br />
THEN<br />
textvorlage[i] := verschiebe(textvorlage[i], 10 - (v MOD MOD M MOD O D 10));<br />
END END E END N D;{Decodierung}<br />
END END; END<br />
text_ausgeben;<br />
END E END N D; { caesar }<br />
33