Kryptologie - Informatik

Kryptologie - Informatik Kryptologie - Informatik

informatik.bildung.rp.de
von informatik.bildung.rp.de Mehr von diesem Publisher
08.10.2013 Aufrufe

PROCEDURE PROCEDURE interAktion; VAR V VAR A R altPosi, neuPosi: point; altBuch, neuBuch: char; PROCEDURE PROCEDURE statistik (wo: rect; was: integer); VAR VAR i, dh, dv, dx, d2, li, mi, mm, maxi: integer; faktor: real; balken: rect; BEGIN BEGIN IF I IF F buchstaben[was, 1].anzahl > standard[was, 1].anzahl THEN THEN maxi := buchstaben[was, 1].anzahl ELSE ELSE maxi := standard[was, 1].anzahl; dh := (wo.bottom - wo.top) DIV DIV 28; dv := (wo.right - wo.left) DIV DIV 2; d2 := dh DIV D DIV I V 2 - 2; li := wo.left + 30; mi := li + dv; mm := wo.top - 4; faktor := (dv - 40) / maxi; textFace([]); textSize(9); foreColor(yellowColor); paintRect(wo); foreColor(blueColor); moveto(wo.left + 3, wo.top + dh + 3); CASE CASE CASE was OF OF 1: writeDraw(‚Buchst. Standard TextVorlage‘); 2: writeDraw(‚Paare Standard TextVorlage‘); 3: writeDraw(‚Tripel Standard TextVorlage‘); END E END N D; { CASE } FOR F FOR O R i := 1 TO T TO O 26 DO DO BEGIN BEGIN moveto(wo.left + 3, wo.top + (i + 2) * dh); dx := round(faktor * standard[was, i].anzahl); writeDraw(standard[was, i].tripel); setRect(balken, li, mm + (i+2) * dh - d2, li + dx, mm + (i+2) * dh + d2); paintRect(balken); END END; END FOR F FOR O R i := 1 TO T TO O 26 DO DO BEGIN BEGIN moveto(wo.left + 3 + dv, wo.top + (i + 2) * dh); dx := round(faktor * buchstaben[was, i].anzahl); writeDraw(buchstaben[was, i].tripel); setRect(balken, mi, mm + (i+2) * dh - d2, mi + dx, mm + (i+2) * dh + d2); paintRect(balken); END END; END END textSize(TS); textface([bold]); END E END N D; { statistik } 44

PROCEDURE PROCEDURE PROCEDURE warten_bis_klick_in (ziel: rect; VAR V VAR A R ccc: char; VAR VAR V VAR A R ppp: point); VAR V VAR A R punkt: point; sBox: rect; stat, wahl: boolean; lang, xAlt, xNeu, yAlt, yNeu: integer; BEGIN BEGIN IF IF NOT NNOT NOT O T halt THEN THEN BEGIN BEGIN stat := FALSE; wahl := FALSE; lang := TS DIV D DIV I V 2 - 2; xAlt := 0; yAlt := 0; setPt(punkt, 0, 0); REPEAT REPEAT getmouse(punkt); halt := ptInRect(punkt, stop); stat := ptInRect(punkt, feld); IF IIF IF F stat AND A AND N D keypressed THEN THEN BEGIN BEGIN stat := FALSE; foreColor(blackColor); xNeu := punkt.h DIV DDIV DIV I V TS * TS + lang DIV D DIV I V 2 + 3; yNeu := (punkt.v + lang) DIV D DIV I V TS * TS - 3 * lang DIV D DIV I V 2 + 1; IF I IF F (xAlt 0) AND A AND N D (yAlt = yNeu) THEN THEN line(xNeu - xAlt - 6, 0) ELSE ELSE ELSE BEGIN BEGIN xAlt := 0; yAlt := 0; END END END; END END moveto(xNeu, yNeu); line(0, 2 * lang); xAlt := xNeu; yAlt := yNeu; END END; END wahl := ptInRect(punkt, ziel); UNTIL UNTIL button AND A AND N D (halt OR O OR R stat OR OR OOR OR R wahl); REPEAT REPEAT REPEAT UNTIL UNTIL NOT N NOT O T button; IF I IF F stat THEN THEN BEGIN BEGIN sBox := feld; IF IF I IF F punkt.h < xm THEN THEN sBox.right := xm ELSE ELSE sBox.left := xm; insetRect(sBox, 1, 1); IF I IF F punkt.v < y1 THEN THEN statistik(sBox, 1) ELSE ELSE IF I IF F punkt.v > y2 THEN THEN statistik(sBox, 3) ELSE ELSE statistik(sBox, 2); warten_bis_klick_in(ziel, ccc, ppp); END E END N D;{ IF stat } IF I IF F wahl THEN THEN THEN BEGIN BEGIN BEGIN ccc := chr((punkt.h - links) DIV DIV DDIV DIV I V breit + 65); WITH WITH ziel DO DO setPt(ppp, links + breit * (ord(ccc)-65), 8 + (bottom + top) DIV DIV DIV 2) END E END N D; { IF wahl } END END E END N D; { IF NOT halt } END E END N D; { warten_bis_klick_in } 45

PROCEDURE PROCEDURE interAktion;<br />

VAR V VAR A R altPosi, neuPosi: point;<br />

altBuch, neuBuch: char;<br />

PROCEDURE PROCEDURE statistik (wo: rect; was: integer);<br />

VAR<br />

VAR<br />

i, dh, dv, dx, d2, li, mi, mm, maxi: integer;<br />

faktor: real;<br />

balken: rect;<br />

BEGIN<br />

BEGIN<br />

IF I IF F buchstaben[was, 1].anzahl > standard[was, 1].anzahl THEN<br />

THEN<br />

maxi := buchstaben[was, 1].anzahl<br />

ELSE<br />

ELSE<br />

maxi := standard[was, 1].anzahl;<br />

dh := (wo.bottom - wo.top) DIV DIV 28;<br />

dv := (wo.right - wo.left) DIV DIV 2;<br />

d2 := dh DIV D DIV I V 2 - 2;<br />

li := wo.left + 30;<br />

mi := li + dv;<br />

mm := wo.top - 4;<br />

faktor := (dv - 40) / maxi;<br />

textFace([]);<br />

textSize(9);<br />

foreColor(yellowColor);<br />

paintRect(wo);<br />

foreColor(blueColor);<br />

moveto(wo.left + 3, wo.top + dh + 3);<br />

CASE CASE CASE was OF<br />

OF<br />

1: writeDraw(‚Buchst. Standard TextVorlage‘);<br />

2: writeDraw(‚Paare Standard TextVorlage‘);<br />

3: writeDraw(‚Tripel Standard TextVorlage‘);<br />

END E END N D; { CASE }<br />

FOR F FOR O R i := 1 TO T TO O 26 DO<br />

DO<br />

BEGIN<br />

BEGIN<br />

moveto(wo.left + 3, wo.top + (i + 2) * dh);<br />

dx := round(faktor * standard[was, i].anzahl);<br />

writeDraw(standard[was, i].tripel);<br />

setRect(balken, li, mm + (i+2) * dh - d2, li + dx, mm + (i+2) * dh + d2);<br />

paintRect(balken);<br />

END END; END<br />

FOR F FOR O R i := 1 TO T TO O 26 DO<br />

DO<br />

BEGIN<br />

BEGIN<br />

moveto(wo.left + 3 + dv, wo.top + (i + 2) * dh);<br />

dx := round(faktor * buchstaben[was, i].anzahl);<br />

writeDraw(buchstaben[was, i].tripel);<br />

setRect(balken, mi, mm + (i+2) * dh - d2, mi + dx, mm + (i+2) * dh + d2);<br />

paintRect(balken);<br />

END END; END END<br />

textSize(TS);<br />

textface([bold]);<br />

END E END N D; { statistik }<br />

44

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!