Kryptologie - Informatik
Kryptologie - Informatik Kryptologie - Informatik
FUNCTION FUNCTION menu_markiert (spalte, zeile: integer): boolean; VAR V VAR A R c: char; aktuellesMenu: menuHandle; BEGIN BEGIN aktuellesMenu := getMenu(spalte + RES_ID_NR - 1); getItemMark(aktuellesMenu, zeile, c); menu_markiert := (ord(c) = 18); END EEND END N D; { menu_markiert } PROCEDURE PROCEDURE menu_zeigen (spalte, zeile: integer; zeigen: boolean); VAR V VAR A R einMenu: menuHandle; { zeile=0 bedeutet das ganze Menu } BEGIN BEGIN einMenu := getMHandle(RES_ID_NR + spalte - 1); IF I IF F zeigen THEN THEN enableItem (einMenu, zeile) ELSE ELSE disableItem(einMenu, zeile); END E END N D; { menu_zeigen } PROCEDURE PROCEDURE standard_laden; VAR V VAR A R datei : FILE FILE OF O OF F typ3; satz : typ3; i, k : integer; BEGIN BEGIN dName : string; dName := dateiName; WHILE WHILE dName[length(dName)] ‚:‘ DO DO delete(dName, length(dName), 1); dName := concat(dName, ‚Standard‘); writeln; writeln(‚••••• ‚, dName, ‚ wird geladen •••••‘); reset(datei, dName); FOR FOR FFOR FOR O R i := 1 TO TO 3 DO DO FOR F FOR O R k := 1 TO T TO O 26 DO D DO O close(datei); END EEND END N D; { standard_laden } read(datei, standard[i, k]); PROCEDURE PROCEDURE Anfangsbelegungen; VAR V VAR A R i, k, typ: integer; BEGIN BEGIN textFont(Monaco); textSize(9); gesamt := 0; textLaenge := 0; TextFenster_oeffnen; showText; WITH WITH Konsole DO DO DO buAnzahl := (right - left) DIV 7; FOR F FOR O R typ := 1 TO TO TO 3 DO DO DO FOR F FOR O R i := 1 TO T TO O 26 DO DO BEGIN BEGIN buchstaben[typ, i].anzahl := i; buchstaben[typ, i].tripel := ‚ ‚; standard[typ, i].anzahl := i; standard[typ, i].tripel := ‚ ‚; FOR F FOR O R k := 1 TO TO TTO TO O typ DO DO DO BEGIN BEGIN buchstaben[typ, i].tripel[k] := chr(64 + i); standard[typ, i].tripel[k] := chr(64 + i); END END; END END END END; END END ende := false; writeln(‚Herzlich willkommen,‘); writeln; writeln(‚Um einen Text codieren oder decodieren zu können,‘); writeln(‚muß er erst geladen werden.‘); writeln; writeln(‚Eine Textanalyse gelingt nur, wenn er bereinigt geladen wurde‘); writeln; END E END N D; { Anfangsbelegungen } 30
PROCEDURE PROCEDURE text_ausgeben; VAR V VAR A R i, nr: integer; BEGIN BEGIN showText; nr := 0; FOR F FOR O R i := 1 TO T TO O textLaenge DO DO BEGIN BEGIN nr := nr + 1; IF I IF F (ord(textVorlage[i]) = 13) OR O OR R (nr = buAnzahl) OR O OR R ((nr > buAnzahl - 20) AND A AND N D (textVorlage[i] IN I IN N [‚ ‚, ‚-‘])) THEN THEN BEGIN BEGIN BEGIN writeln; nr := 0; END END; END write(textVorlage[i]); END END; END writeln; END END E END N D; { text_ausgeben } PROCEDURE PROCEDURE original_laden; VAR V VAR A R datei: text; zeichen: char; 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, false); IF IF NOT NOT NNOT NOT O T menu_markiert(2, 1) THEN THEN item_aendern(2, 1); IF I IF F menu_markiert(2, 2) THEN THEN item_aendern(2, 2); dateiname := oldfilename(‚ ‚); writeln(dateiName); reset(datei, dateiname); textLaenge := 0; WHILE WHILE NOT N NOT O T eof(datei) AND AND (textLaenge < N) DO DO BEGIN BEGIN WHILE WHILE NOT N NOT O T eoln(datei) AND A AND N D (textLaenge < N - 1) DO DO BEGIN BEGIN read(datei, zeichen); textLaenge := textLaenge + 1; textVorlage[textLaenge] := zeichen; END END; END END readln(datei); textlaenge := textlaenge + 1; textVorlage[textLaenge] := chr(13); IF I IF F textLaenge MOD M MOD O D 100 = 0 THEN THEN writeln(textLaenge); END END; END close(datei); text_ausgeben; IF IF NOT NOT N NOT O T STANDARD_ERFASSEN THEN THEN standard_laden; END E END N D; { original_laden } 31
- 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: Anlage 8 : Lauffähiges Programm in
- Seite 33 und 34: PROCEDURE PROCEDURE sichern; VAR V
- 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 text_ausgeben;<br />
VAR V VAR A R i, nr: integer;<br />
BEGIN<br />
BEGIN<br />
showText;<br />
nr := 0;<br />
FOR F FOR O R i := 1 TO T TO O textLaenge DO<br />
DO<br />
BEGIN<br />
BEGIN<br />
nr := nr + 1;<br />
IF I IF F (ord(textVorlage[i]) = 13) OR O OR R (nr = buAnzahl) OR O OR R ((nr > buAnzahl - 20)<br />
AND A AND N D (textVorlage[i] IN I IN N [‚ ‚, ‚-‘])) THEN<br />
THEN<br />
BEGIN BEGIN<br />
BEGIN<br />
writeln;<br />
nr := 0;<br />
END END; END<br />
write(textVorlage[i]);<br />
END END; END<br />
writeln;<br />
END END E END N D; { text_ausgeben }<br />
PROCEDURE PROCEDURE original_laden;<br />
VAR V VAR A R datei: text;<br />
zeichen: char;<br />
BEGIN<br />
BEGIN<br />
menu_zeigen(2, 4, true);<br />
menu_zeigen(3, 0, true);<br />
menu_zeigen(4, 0, true);<br />
menu_zeigen(5, 0, true);<br />
menu_zeigen(5, 1, false);<br />
IF IF NOT NOT NNOT NOT O T menu_markiert(2, 1) THEN<br />
THEN<br />
item_aendern(2, 1);<br />
IF I IF F menu_markiert(2, 2) THEN<br />
THEN<br />
item_aendern(2, 2);<br />
dateiname := oldfilename(‚ ‚);<br />
writeln(dateiName);<br />
reset(datei, dateiname);<br />
textLaenge := 0;<br />
WHILE WHILE NOT N NOT O T eof(datei) AND AND (textLaenge < N) DO<br />
DO<br />
BEGIN<br />
BEGIN<br />
WHILE WHILE NOT N NOT O T eoln(datei) AND A AND N D (textLaenge < N - 1) DO<br />
DO<br />
BEGIN<br />
BEGIN<br />
read(datei, zeichen);<br />
textLaenge := textLaenge + 1;<br />
textVorlage[textLaenge] := zeichen;<br />
END END; END END<br />
readln(datei);<br />
textlaenge := textlaenge + 1;<br />
textVorlage[textLaenge] := chr(13);<br />
IF I IF F textLaenge MOD M MOD O D 100 = 0 THEN<br />
THEN<br />
writeln(textLaenge);<br />
END END; END<br />
close(datei);<br />
text_ausgeben;<br />
IF IF NOT NOT N NOT O T STANDARD_ERFASSEN THEN<br />
THEN<br />
standard_laden;<br />
END E END N D; { original_laden }<br />
31