summaryrefslogtreecommitdiff
path: root/mp-bap/ls-MP BAP 1
diff options
context:
space:
mode:
Diffstat (limited to 'mp-bap/ls-MP BAP 1')
-rw-r--r--mp-bap/ls-MP BAP 11346
1 files changed, 0 insertions, 1346 deletions
diff --git a/mp-bap/ls-MP BAP 1 b/mp-bap/ls-MP BAP 1
deleted file mode 100644
index 9fa1a4b..0000000
--- a/mp-bap/ls-MP BAP 1
+++ /dev/null
@@ -1,1346 +0,0 @@
-PACKET ls mp bap 1 DEFINES (*******************************)
- (* *)
- stdvoreinstellung der parameter, (* ls-MP BAP 1 *)
- werkstueckdefinition, (* Version 1.1 *)
- tastendefinition, (* *)
- phasendefinition, (* (c) 1987, 1988 *)
- bewertungsschluessel, (* by Eva Latta-Weber *)
- werkstueckaufhaenger, (* Bielefeld *)
- tastenbezeichnung, (* *)
- piepse, (*******************************)
-
- mp bap einstellung anzeigen,
- mp bap standardwerte,
- mp bap breite des werkstuecks,
- mp bap hoehe des werkstuecks,
- mp bap invers normal,
- mp bap zeichensatz,
- mp bap fehlerzeichen,
- mp bap tastenbelegung,
- mp bap anzahl arbeitsphasen,
- mp bap dauer einer arbeitsphase,
- mp bap pausendauer,
- mp bap wertungsschluessel:
-
-LET maxspalten = 70,
- maxzeilen = 14,
- kleinster wert = 1,
- oben unten return = ""3""10""13"",
- punkt = "+",
- punkt und zurueck = "+"8"",
- piep = ""7"",
- blank = " ";
-INT VAR aktuelle werkstueckbreite,
- aktuelle werkstueckhoehe,
- kleinster aktueller zeichencode,
- groesster aktueller zeichencode,
- aktuelle anzahl der arbeitsphasen,
-
- aktuelle arbeitsphasendauer in minuten,
- aktuelle pausendauer in minuten;
-TEXT VAR aktuelles fehlerzeichen,
- nach rechts,
- nach links,
- nach oben,
- nach unten,
- ausbesserung,
- naechstes;
-BOOL VAR inversdarstellung;
-ROW 11 REAL VAR bewertung;
-WINDOW VAR w1, w2, w3, w4;
-PROC stdvoreinstellung der parameter:
- aktuelle werkstueckbreite := 15;
- aktuelle werkstueckhoehe := 12;
- kleinster aktueller zeichencode := 65;
-
- groesster aktueller zeichencode := 90;
- aktuelle anzahl der arbeitsphasen := 3;
- aktuelle arbeitsphasendauer in minuten := 10;
- aktuelle pausendauer in minuten := 2;
- aktuelles fehlerzeichen := "F";
- nach rechts := ""2"";
- nach links := ""8"";
- nach oben := ""3"";
- nach unten := ""10"";
- ausbesserung := ""1"";
-
- naechstes := ""27"";
- inversdarstellung := FALSE;
- bewertung := ROW 11 REAL : (0.0, 0.1, 0.2, 0.3, 0.4, 0.5,
- 0.6, 0.7, 0.8, 0.9, 1.0)
-END PROC stdvoreinstellung der parameter;
-PROC werkstueckdefinition (INT VAR breite, hoehe, kleinster, groesster,
- TEXT VAR fzeichen, BOOL VAR invers):
- breite := aktuelle werkstueckbreite;
- hoehe := aktuelle werkstueckhoehe;
-
- kleinster := kleinster aktueller zeichencode;
- groesster := groesster aktueller zeichencode;
- fzeichen := aktuelles fehlerzeichen;
- invers := inversdarstellung
-END PROC werkstueckdefinition;
-PROC tastendefinition (TEXT VAR rechts, links, hoch, runter, aus, nach):
- rechts := nach rechts;
- links := nach links;
- hoch := nach oben;
- runter := nach unten;
- aus := ausbesserung;
- nach := naechstes
-END PROC tastendefinition;
-
-PROC phasendefinition (INT VAR aphasenzahl, aphasendauer, pausendauer):
- aphasenzahl := aktuelle anzahl der arbeitsphasen;
- aphasendauer := aktuelle arbeitsphasendauer in minuten;
- pausendauer := aktuelle pausendauer in minuten
-END PROC phasendefinition;
-PROC bewertungsschluessel (ROW 11 REAL VAR schluessel):
- INT VAR zeiger;
- FOR zeiger FROM 1 UPTO 11 REP
- schluessel [zeiger] := bewertung [zeiger]
- PER
-END PROC bewertungsschluessel;
-PROC mp bap einstellung anzeigen:
- aktuellen parameterzustand anzeigen;
-
- regenerate menuscreen
-END PROC mp bap einstellung anzeigen;
-PROC mp bap standardwerte:
- standardwerte einstellen;
- regenerate menuscreen
-END PROC mp bap standardwerte;
-PROC mp bap breite des werkstuecks:
- breite des werkstuecks einstellen;
- regenerate menuscreen
-END PROC mp bap breite des werkstuecks;
-PROC mp bap hoehe des werkstuecks:
- hoehe des werkstuecks einstellen;
- regenerate menuscreen
-END PROC mp bap hoehe des werkstuecks;
-PROC mp bap invers normal:
- werkstueckdarstellung einstellen;
-
- regenerate menuscreen
-END PROC mp bap invers normal;
-PROC mp bap zeichensatz:
- zeichensatz einstellen;
- regenerate menuscreen
-END PROC mp bap zeichensatz;
-PROC mp bap fehlerzeichen:
- fehlerzeichen veraendern;
- regenerate menuscreen
-END PROC mp bap fehlerzeichen;
-PROC mp bap tastenbelegung:
- tastaturbelegung einstellen;
- regenerate menuscreen
-END PROC mp bap tastenbelegung;
-PROC mp bap anzahl arbeitsphasen:
- anzahl der arbeitsphasen festlegen;
- regenerate menuscreen
-END PROC mp bap anzahl arbeitsphasen;
-
-PROC mp bap dauer einer arbeitsphase:
- dauer einer arbeitsphase festlegen;
- regenerate menuscreen
-END PROC mp bap dauer einer arbeitsphase;
-PROC mp bap pausendauer:
- pausendauer festlegen;
- regenerate menuscreen
-END PROC mp bap pausendauer;
-PROC mp bap wertungsschluessel:
- wertungsschluessel veraendern;
- regenerate menuscreen
-END PROC mp bap wertungsschluessel;
-PROC aktuellen parameterzustand anzeigen:
- zeige die fenster;
- fuelle die fenster mit inhalt;
- gib hinweis aus.
-
- zeige die fenster:
- w1 := window ( 2, 2, 37, 20);
- w2 := window (41, 2, 38, 20);
- w3 := window ( 1, 1, 79, 24);
- page; show (w1); show (w2).
- fuelle die fenster mit inhalt:
- zeige inhalt fenster 1;
- zeige inhalt fenster 2.
- zeige inhalt fenster 1:
- zeige eingestellte parameter an (w1).
- zeige inhalt fenster 2:
- gib bewertungsschluessel aus (w2).
- gib hinweis aus:
- out footnote (w3, anwendungstext (2)); pause.
-END PROC aktuellen parameterzustand anzeigen;
-
-PROC zeige eingestellte parameter an (WINDOW VAR w):
- zeige ueberschrift;
- zeige werkstueckdefinition;
- zeige tastenbelegung;
- zeige simulationszeiten.
- zeige ueberschrift:
- cursor (w, 1, 1); out (w, center (w, invers (anwendungstext ( 1)))).
- zeige werkstueckdefinition:
- cursor (w, 2, 3); out (w, anwendungstext ( 6));
- out (w, text (aktuelle werkstueckbreite, 3));
- out (w, anwendungstext (28));
- cursor (w, 2, 4); out (w, anwendungstext ( 7));
-
- out (w, text (aktuelle werkstueckhoehe, 3));
- out (w, anwendungstext (28));
- cursor (w, 2, 5); out (w, anwendungstext ( 8));
- IF inversdarstellung
- THEN out (w, anwendungstext (29))
- ELSE out (w, anwendungstext (30))
- FI;
- cursor (w, 2, 6); out (w, anwendungstext ( 9));
- out (w, zeichensatz);
- cursor (w, 2, 7); out (w, anwendungstext (10));
-
- out (blank + aktuelles fehlerzeichen).
- zeige tastenbelegung:
- cursor (w, 2, 9); out (w, anwendungstext (11));
- out (w, tastenbezeichnung (nach rechts));
- cursor (w, 2, 10); out (w, anwendungstext (12));
- out (w, tastenbezeichnung (nach links));
- cursor (w, 2, 11); out (w, anwendungstext (13));
- out (w, tastenbezeichnung (nach oben));
- cursor (w, 2, 12); out (w, anwendungstext (14));
- out (w, tastenbezeichnung (nach unten));
-
- cursor (w, 2, 13); out (w, anwendungstext (15));
- out (w, tastenbezeichnung (ausbesserung));
- cursor (w, 2, 14); out (w, anwendungstext (16));
- out (w, tastenbezeichnung (naechstes)).
- zeige simulationszeiten:
- cursor (w, 2, 16); out (w, anwendungstext (17));
- out (w, text (aktuelle anzahl der arbeitsphasen, 4));
- cursor (w, 2, 17); out (w, anwendungstext (18));
- out (w, text (aktuelle arbeitsphasendauer in minuten, 4));
-
- out (w, anwendungstext (51));
- cursor (w, 2, 18); out (w, anwendungstext (19));
- out (w, text (aktuelle pausendauer in minuten, 4));
- out (w, anwendungstext (51));
- cursor (w, 2, 20); out (w, anwendungstext ( 5));
- out (w, gesamtdauerangabe).
- zeichensatz:
- blank + code (kleinster aktueller zeichencode) + "..." +
- code (groesster aktueller zeichencode) + " (" +
- text (groesster aktueller zeichencode
-
- - kleinster aktueller zeichencode + 1, 2) +
- anwendungstext (28) + ")".
- gesamtdauerangabe:
- text ( arbeitsdauer + pausendauer, 4) + anwendungstext (51).
- arbeitsdauer:
- aktuelle anzahl der arbeitsphasen
- * aktuelle arbeitsphasendauer in minuten.
- pausendauer:
- (aktuelle anzahl der arbeitsphasen - 1)
- * aktuelle pausendauer in minuten.
-END PROC zeige eingestellte parameter an;
-PROC gib bewertungsschluessel aus (WINDOW VAR w):
- zeichne koordinatenkreuz;
-
- trage messwerte ein.
- zeichne koordinatenkreuz:
- cursor (w, 1, 1); out (w, center (w, invers (anwendungstext ( 4))));
- cursor (w, 2, 3); out (w, anwendungstext (20));
- cursor (w, 2, 4); out (w, anwendungstext (21));
- cursor (w, 2, 6); out (w, anwendungstext (23));
- cursor (w, 2, 7); out (w, anwendungstext (22));
- cursor (w, 2, 8); out (w, anwendungstext (22));
- cursor (w, 2, 9); out (w, anwendungstext (22));
- cursor (w, 2, 10); out (w, anwendungstext (22));
-
- cursor (w, 2, 11); out (w, anwendungstext (24));
- cursor (w, 2, 12); out (w, anwendungstext (22));
- cursor (w, 2, 13); out (w, anwendungstext (22));
- cursor (w, 2, 14); out (w, anwendungstext (22));
- cursor (w, 2, 15); out (w, anwendungstext (22));
- cursor (w, 2, 16); out (w, anwendungstext (25));
- cursor (w, 2, 17); out (w, anwendungstext (26));
- cursor (w, 2, 19); out (w, anwendungstext (27)).
- trage messwerte ein:
- INT CONST abszisse :: 16, ordinate :: 2;
-
- INT VAR nr;
- FOR nr FROM 1 UPTO 11 REP
- zeichne einen punkt
- PER.
- zeichne einen punkt:
- cursor (w, ordinate + 3 * nr, abszisse - nachkommastelle); out (punkt).
- nachkommastelle:
- int(bewertung [nr] * 10.0).
-END PROC gib bewertungsschluessel aus;
-PROC standardwerte einstellen:
- zeige fenster;
- zeige eingestellte parameter an (w1);
- gib information aus;
- hole bestaetigung ein.
- zeige fenster:
- w1 := window ( 2, 2, 37, 20);
- w2 := window (41, 10, 37, 12);
-
- w3 := window (41, 2, 37, 6);
- page; show (w1); show (w2); show (w3).
- gib information aus:
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (67));
- cursor (w2, 2, 4); out (w2, anwendungstext (68));
- cursor (w2, 2, 7); out (w2, anwendungstext (69));
- cursor (w2, 2, 9); out (w2, anwendungstext (70));
- cursor (w2, 2,10); out (w2, anwendungstext (71));
- cursor (w2, 2,11); out (w2, anwendungstext (72));
-
- cursor (w2, 2,12); out (w2, anwendungstext (73)).
- hole bestaetigung ein:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (66))));
- cursor (w3, 2, 3);
- IF yes (w3, anwendungstext (66))
- THEN stdvoreinstellung der parameter;
- gib positive rueckmeldung
- FI.
- gib positive rueckmeldung:
- page (w1);
- zeige eingestellte parameter an (w1);
- cleop (w3, 2, 3); out (anwendungstext (221));
- cursor (w3, 2, 5); out (anwendungstext ( 3));
-
- pause.
-END PROC standardwerte einstellen;
-PROC breite des werkstuecks einstellen:
- zeige die fenster;
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3);
- erfrage veraenderung;
- REP
- neuen wert vom bildschirm holen
- UNTIL benutzer ist einverstanden PER.
- zeige die fenster:
- w1 := window ( 2, 2, 26, 6);
- w2 := window (30, 2, 48, 6);
- w3 := window (2, 9, 77, 16);
- page; show (w1); show (w2).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
-
- cursor (w1, 2, 3); out (w1, anwendungstext (53));
- out (w1, text (kleinster wert, 3));
- cursor (w1, 2, 4); out (w1, anwendungstext (54));
- out (w1, text (maxspalten, 3));
- cursor (w1, 2, 6); out (w1, anwendungstext (55));
- out (w1, text (aktuelle werkstueckbreite, 3)).
- erfrage veraenderung:
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (57))));
- cursor (w2, 2, 3);
- IF no (anwendungstext (216))
-
- THEN LEAVE breite des werkstuecks einstellen
- FI.
- neuen wert vom bildschirm holen:
- cleop (w2, 2, 3); out (w2, anwendungstext (58));
- cursor (w2, 2, 4); out (w2, anwendungstext (59));
- cursor (w2, 2, 6); out (w2, anwendungstext (60));
- aktuelle werkstueckbreite := ermittelter wert (1, maxspalten,
- aktuelle werkstueckbreite).
- benutzer ist einverstanden :
- gib aktuelle infos aus;
- hole bestaetigung.
- gib aktuelle infos aus:
-
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3);
- cleop (w2, 1, 3).
- hole bestaetigung:
- cursor (w2, 2, 3);
- IF yes (w2, anwendungstext (62))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC breite des werkstuecks einstellen;
-PROC hoehe des werkstuecks einstellen:
- fenster zeigen;
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3);
- erfrage veraenderung;
- REP
- neuen wert vom bildschirm holen
- UNTIL benutzer ist einverstanden PER.
-
- fenster zeigen:
- w1 := window ( 2, 2, 26, 6);
- w2 := window (30, 2, 48, 6);
- w3 := window (2, 9, 77, 16);
- page; show (w1); show (w2).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
- cursor (w1, 2, 3); out (w1, anwendungstext (53));
- out (w1, text (kleinster wert, 3));
- cursor (w1, 2, 4); out (w1, anwendungstext (54));
- out (w1, text (maxzeilen, 3));
- cursor (w1, 2, 6); out (w1, anwendungstext (55));
-
- out (w1, text (aktuelle werkstueckhoehe, 3)).
- erfrage veraenderung:
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (63))));
- cursor (w2, 2, 3);
- IF no (anwendungstext (217))
- THEN LEAVE hoehe des werkstuecks einstellen
- FI.
- neuen wert vom bildschirm holen:
- cleop (w2, 2, 3); out (w2, anwendungstext (58));
- cursor (w2, 2, 4); out (w2, anwendungstext (59));
- cursor (w2, 2, 6); out (w2, anwendungstext (64));
- aktuelle werkstueckhoehe := ermittelter wert (1, maxzeilen,
-
- aktuelle werkstueckhoehe).
- benutzer ist einverstanden :
- gib aktuelle infos aus;
- hole bestaetigung.
- gib aktuelle infos aus:
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3);
- cleop (w2, 1, 3).
- hole bestaetigung:
- cursor (w2, 2, 3);
- IF yes (w2, anwendungstext (65))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC hoehe des werkstuecks einstellen;
-PROC werkstueckdarstellung einstellen:
- fenster zeigen;
-
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3);
- REP
- bestaetigung einholen;
- hinweise an den benutzer ausgeben;
- werkstueck zeigen (w3)
- UNTIL benutzer ist einverstanden PER.
- fenster zeigen:
- w1 := window ( 2, 2, 28, 6);
- w2 := window (32, 2, 46, 6);
- w3 := window ( 2, 9, 77, 16);
- page; show (w1); show (w2).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
- cursor (w1, 2, 3); out (w1, anwendungstext (74));
-
- out (w1, anwendungstext (76));
- cursor (w1, 2, 4); out (w1, anwendungstext (74));
- out (w1, anwendungstext (77));
- cursor (w1, 2, 6); out (w1, anwendungstext (75));
- IF inversdarstellung
- THEN out (w1, anwendungstext (77))
- ELSE out (w1, anwendungstext (76))
- FI.
- bestaetigung einholen:
- page (w2);
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (89))));
-
- cursor (w2, 2, 3);
- IF yes (w2, anwendungstext (78))
- THEN veraendere darstellungsart
- ELSE LEAVE werkstueckdarstellung einstellen
- FI.
- veraendere darstellungsart:
- IF inversdarstellung
- THEN inversdarstellung := FALSE
- ELSE inversdarstellung := TRUE
- FI.
- benutzer ist einverstanden:
- cleop (w2, 1, 3);
- cursor (w2, 2, 3);
- IF yes (w2, anwendungstext (99))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC werkstueckdarstellung einstellen;
-
-PROC zeichensatz einstellen:
- zeige fenster;
- gib eingestellten zeichensatz an;
- gib bedienhinweise aus;
- erfrage neueinstellung;
- REP
- erfrage das neue fehlerzeichen;
- ermittle das kleinste zeichen;
- ermittle das groesste zeichen;
- page (w1);
- gib eingestellten zeichensatz an
- UNTIL benutzer ist einverstanden PER.
- zeige fenster:
- w1 := window ( 2, 2, 28, 22);
- w2 := window (32, 10, 46, 14);
- w3 := window (32, 2, 46, 6);
- page; show (w1); show (w2); show (w3).
-
- gib eingestellten zeichensatz an:
- cursor (w1, 1, 1);
- out (w1, center (w1, invers (anwendungstext (79))));
- gib zeichenkette aus (w1, kleinster aktueller zeichencode,
- groesster aktueller zeichencode,
- code (aktuelles fehlerzeichen)).
- gib bedienhinweise aus:
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (80));
- cursor (w2, 2, 4); out (w2, anwendungstext (81));
-
- cursor (w2, 2, 5); out (w2, anwendungstext (82));
- cursor (w2, 2, 6); out (w2, anwendungstext (83));
- cursor (w2, 2, 8); out (w2, anwendungstext (84));
- cursor (w2, 2, 9); out (w2, anwendungstext (85));
- cursor (w2, 2,10); out (w2, anwendungstext (86));
- cursor (w2, 2,12); out (w2, anwendungstext (87));
- cursor (w2, 2,13); out (w2, anwendungstext (88)).
- erfrage neueinstellung:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (90))));
- cursor (w3, 2, 3);
-
- IF no (w3, anwendungstext (91))
- THEN LEAVE zeichensatz einstellen
- FI.
- erfrage das neue fehlerzeichen:
- gib vollstaendigen zeichensatz aus;
- gib fehlerzeicheninformationen aus;
- REP
- lasse fehlerzeichen eingeben
- UNTIL fehlerzeichen ist ok PER.
- gib vollstaendigen zeichensatz aus:
- page (w1); page (w2); page (w3);
- cursor (w1, 1, 1);
- out (w1, center (w1, invers (anwendungstext (92))));
- gib zeichenkette aus (w1, 33, 126, 0).
- gib fehlerzeicheninformationen aus:
-
- cursor (w2, 1, 1);
- out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (95));
- cursor (w2, 2, 4); out (w2, anwendungstext (96));
- cursor (w2, 2, 6); out (w2, anwendungstext (97)).
- lasse fehlerzeichen eingeben:
- cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (100))));
- cursor (w3, 2, 3);
- out (w3, anwendungstext (101));
- cursor on; inchar (aktuelles fehlerzeichen); cursor off;
- IF fehlerzeichen ist ok
-
- THEN out (w3, aktuelles fehlerzeichen);
- markiere das fehlerzeichen im ersten fenster;
- ELSE lege beschwerde ein
- FI.
- fehlerzeichen ist ok:
- code (aktuelles fehlerzeichen) >= 33
- AND code (aktuelles fehlerzeichen) <= 126.
- markiere das fehlerzeichen im ersten fenster:
- positioniere cursor in zeichenkette (w1, 33, code (aktuelles fehlerzeichen));
- out (w1, invers (aktuelles fehlerzeichen)).
- lege beschwerde ein:
- piepse;
- cursor (w2, 2, 8); out (w2, anwendungstext (102));
-
- cursor (w2, 2,10); out (w2, anwendungstext (103));
- cursor (w2, 2,11); out (w2, anwendungstext (104));
- cursor (w2, 2,12); out (w2, anwendungstext (105));
- cursor (w2, 2,13); out (w2, anwendungstext (106));
- cursor (w2, 2,14); out (w2, anwendungstext (107)).
- ermittle das kleinste zeichen:
- page (w2); page (w3);
- gib kleinste zeichencode informationen aus;
- lasse den vorbereich festlegen.
- ermittle das groesste zeichen:
- lasse den nachbereich festlegen.
- gib kleinste zeichencode informationen aus:
-
- cursor (w2, 1, 1);
- out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (111));
- cursor (w2, 2, 4); out (w2, anwendungstext (112));
- cursor (w2, 2, 5); out (w2, anwendungstext (113));
- cursor (w2, 2, 6); out (w2, anwendungstext (114));
- cursor (w2, 2, 8); out (w2, anwendungstext (115));
- cursor (w2, 2, 9); out (w2, anwendungstext (116));
- cursor (w2, 2,10); out (w2, anwendungstext (117));
- cursor (w2, 2,11); out (w2, anwendungstext (118));
-
- cursor (w2, 2,13); out (w2, anwendungstext (119));
- cursor (w2, 2,14); out (w2, anwendungstext (120)).
- lasse den vorbereich festlegen:
- INT VAR s, z; page (w3); cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (121))));
- cursor (w3, 2, 3); out (w3, anwendungstext (122));
- cursor (w3, 2, 4); out (w3, anwendungstext (123));
- cursor (w3, 2, 5); out (w3, anwendungstext (125));
- get cursor (s, z); cursor on;
- kleinster aktueller zeichencode := code (aktuelles fehlerzeichen);
-
- groesster aktueller zeichencode := code (aktuelles fehlerzeichen);
- kleinster aktueller zeichencode := eingabe mit intervallanzeige ( w1, 33,
- code (aktuelles fehlerzeichen),
- kleinster aktueller zeichencode, s, z);
- cursor off.
- lasse den nachbereich festlegen:
- cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (121))));
- cursor (w3, 2, 3); out (w3, anwendungstext (122));
- cursor (w3, 2, 4); out (w3, anwendungstext (124));
-
- cursor (w3, 2, 5); out (w3, anwendungstext (125));
- get cursor (s, z); cursor on;
- groesster aktueller zeichencode := eingabe mit intervallanzeige ( w1,
- code (aktuelles fehlerzeichen), 126,
- groesster aktueller zeichencode, s, z);
- cursor off.
- benutzer ist einverstanden:
- page (w3); cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (90))));
- cursor (w3, 2, 3);
- IF yes (w3, anwendungstext (126))
-
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC zeichensatz einstellen;
-PROC fehlerzeichen veraendern:
- fenster zeigen;
- gib eingestellten zeichensatz an;
- gib bedienhinweise aus;
- erfrage neueinstellung;
- REP
- lasse fehlerzeichen einstellen
- UNTIL benutzer ist einverstanden PER.
- fenster zeigen:
- w1 := window ( 2, 2, 28, 22);
- w2 := window (32, 10, 46, 14);
- w3 := window (32, 2, 46, 6);
- page; show (w1); show (w2); show (w3).
- gib eingestellten zeichensatz an:
-
- cursor (w1, 1, 1);
- out (w1, center (w1, invers (anwendungstext (79))));
- gib zeichenkette aus (w1, kleinster aktueller zeichencode,
- groesster aktueller zeichencode,
- code (aktuelles fehlerzeichen)).
- gib bedienhinweise aus:
- cursor (w2, 1, 1);
- out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (131));
- cursor (w2, 2, 4); out (w2, anwendungstext (132));
- cursor (w2, 2, 5); out (w2, anwendungstext (133));
-
- cursor (w2, 2, 7); out (w2, anwendungstext (134));
- cursor (w2, 2, 8); out (w2, anwendungstext (135));
- cursor (w2, 2, 9); out (w2, anwendungstext (136)).
- erfrage neueinstellung:
- cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (130))));
- cursor (w3, 2, 3);
- IF no (w3, anwendungstext (137))
- THEN LEAVE fehlerzeichen veraendern
- FI.
- lasse fehlerzeichen einstellen:
- INT VAR s, z, fehlercode :: code (aktuelles fehlerzeichen);
- page (w3); cursor (w3, 1, 1);
-
- out (w3, center (w3, invers (anwendungstext (138))));
- cursor (w3, 2, 3); out (w3, anwendungstext (139));
- cursor (w3, 2, 4); out (w3, anwendungstext (140));
- cursor (w3, 2, 5); out (w3, anwendungstext (141));
- get cursor (s, z); cursor on;
- fehlercode := eingabe mit elementanzeige (w1,
- kleinster aktueller zeichencode,
- groesster aktueller zeichencode,
- fehlercode, s, z);
-
- cursor off;
- aktuelles fehlerzeichen := code (fehlercode).
- benutzer ist einverstanden:
- page (w3); cursor (w3, 1, 1);
- out (w3, center (w3, invers (anwendungstext (130))));
- cursor (w3, 2, 3);
- IF yes (w3, anwendungstext (142))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC fehlerzeichen veraendern;
-PROC tastaturbelegung einstellen:
- ROW 6 TEXT VAR tastenname, taste;
- fenster zeigen;
- REP
- tastaturneubelegung vornehmen
- UNTIL benutzer ist einverstanden PER.
-
- fenster zeigen:
- w1 := window ( 2, 2, 28, 10);
- w2 := window ( 2, 14, 28, 10);
- w3 := window (32, 10, 46, 14);
- w4 := window (32, 2, 46, 6);
- page; show (w1); show (w2); show (w3); show (w4).
- tastaturneubelegung vornehmen:
- alte tastenbelegung einlesen;
- tastenbelegung anzeigen;
- bedienhinweise ausgeben;
- veraenderung erfragen;
- neue tastenbelegung erfragen;
- hinweis zur bewertung und stand ausgeben.
- alte tastenbelegung einlesen:
- INT VAR z1;
-
- FOR z1 FROM 1 UPTO 6 REP
- tastenname [z1] := anwendungstext (z1 + 10)
- PER;
- taste [1] := nach rechts;
- taste [2] := nach links;
- taste [3] := nach oben;
- taste [4] := nach unten;
- taste [5] := ausbesserung;
- taste [6] := naechstes;
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (151)))).
- tastenbelegung anzeigen:
- INT VAR cspa, czei;
- cursor (w1, 2, 3); out (w1, tastenname [1]);
- out (w1, tastenbezeichnung (taste [1]));
-
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei);
- cursor (w1, 2, 4); out (w1, tastenname [2]);
- out (w1, tastenbezeichnung (taste [2]));
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei);
- cursor (w1, 2, 5); out (w1, tastenname [3]);
- out (w1, tastenbezeichnung (taste [3]));
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei);
- cursor (w1, 2, 6); out (w1, tastenname [4]);
-
- out (w1, tastenbezeichnung (taste [4]));
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei);
- cursor (w1, 2, 8); out (w1, tastenname [5]);
- out (w1, tastenbezeichnung (taste [5]));
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei);
- cursor (w1, 2,10); out (w1, tastenname [6]);
- out (w1, tastenbezeichnung (taste [6]));
- get cursor (w1, cspa, czei); cleol (w1, cspa, czei).
-
- bedienhinweise ausgeben:
- cursor (w2, 1, 1); out (center (w2, invers (anwendungstext (152))));
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (52))));
- cursor (w3, 2, 3); out (w3, anwendungstext (153));
- cursor (w3, 2, 4); out (w3, anwendungstext (154));
- cursor (w3, 2, 6); out (w3, anwendungstext (155));
- cursor (w3, 2, 7); out (w3, anwendungstext (156));
- cursor (w3, 2, 8); out (w3, anwendungstext (157));
- cursor (w3, 2, 9); out (w3, anwendungstext (158));
-
- cursor (w3, 2,11); out (w3, anwendungstext (159));
- cursor (w3, 2,12); out (w3, anwendungstext (160));
- cursor (w3, 2,13); out (w3, anwendungstext (161));
- cursor (w3, 2,14); out (w3, anwendungstext (162)).
- veraenderung erfragen:
- cursor (w4, 1, 1); out (w4, center (w4, invers (anwendungstext (163))));
- cursor (w4, 2, 3);
- IF no (w4, anwendungstext (164))
- THEN LEAVE tastaturbelegung einstellen
- FI.
- neue tastenbelegung erfragen:
- INT VAR z2; page (w4);
-
- cursor (w4, 1, 1); out (w4, center (w4, invers (anwendungstext (163))));
- cursor (w4, 2, 3); out (w4, anwendungstext (165));
- FOR z2 FROM 1 UPTO 6 REP
- gib tastenhinweis;
- hole tastatureingabe;
- tastenbelegung anzeigen
- PER.
- gib tastenhinweis:
- cleol (w4, 2, 5); out (w4, tastenname [z2]).
- hole tastatureingabe:
- INT VAR s, z; get cursor (w4, s, z);
- cursor on; inchar (taste [z2]); cursor off;
- cursor (w4, s, z); out (w4, tastenbezeichnung (taste [z2])).
-
- hinweis zur bewertung und stand ausgeben:
- IF neue tastenbelegung ist ok
- THEN akzeptiere
- ELSE akzeptiere nicht
- FI.
- neue tastenbelegung ist ok:
- INT VAR zeiger; TEXT VAR tastenkette :: "";
- FOR zeiger FROM 1 UPTO 6 REP
- IF pos (tastenkette, taste [zeiger]) > 0
- THEN LEAVE neue tastenbelegung ist ok WITH FALSE
- ELSE tastenkette CAT taste [zeiger]
- FI
- PER;
- TRUE.
- akzeptiere:
- cursor (w2, 3, 4);
- out (w2, anwendungstext (166));
-
- cursor (w2, 7, 6);
- out (w2, anwendungstext (167)).
- akzeptiere nicht:
- cursor (w2, 3, 3); out (w2, anwendungstext (168));
- cursor (w2, 3, 4); out (w2, anwendungstext (169));
- cursor (w2, 3, 6); out (w2, anwendungstext (170));
- cursor (w2, 3, 7); out (w2, anwendungstext (171));
- cursor (w2, 3, 9); out (w2, anwendungstext (172));
- cursor (w2, 5,10); out (w2, anwendungstext (173)).
- benutzer ist einverstanden:
- page (w4);
- cursor (w4, 1, 1); out (w4, center (w4, invers (anwendungstext (163))));
-
- IF neue tastenbelegung ist ok
- THEN gib hinweis auf abspeicherung
- ELSE frage nach neueingabe
- FI.
- gib hinweis auf abspeicherung:
- cursor (w4, 3, 3); out (w4, anwendungstext (174));
- neue tastenbelegung festschreiben;
- cursor (w4, 3, 5); out (w4, anwendungstext ( 2));
- cursor on; pause; cursor off;
- TRUE.
- neue tastenbelegung festschreiben:
- nach rechts := taste [1];
- nach links := taste [2];
- nach oben := taste [3];
- nach unten := taste [4];
-
- ausbesserung := taste [5];
- naechstes := taste [6].
- frage nach neueingabe:
- cursor (w4, 2, 3);
- IF yes (w4, anwendungstext (175))
- THEN cleop (w2, 1, 3); FALSE
- ELSE alte tastenbelegung einlesen;
- tastenbelegung anzeigen;
- cleop (w4, 2, 3); out (w4, anwendungstext (176));
- cursor (w4, 3, 5); out (w4, anwendungstext ( 2));
- cursor on; pause; cursor off;
- TRUE
- FI.
-END PROC tastaturbelegung einstellen;
-
-PROC simulationszeiten anzeigen (WINDOW VAR w):
- cursor (w, 1, 1); out (w, center (w, invers (anwendungstext (181))));
- cursor (w, 2, 3); out (w, anwendungstext (17));
- out (w, text (aktuelle anzahl der arbeitsphasen, 4));
- cursor (w, 2, 4); out (w, anwendungstext (18));
- out (w, text (aktuelle arbeitsphasendauer in minuten, 4));
- out (w, anwendungstext (51));
- cursor (w, 2, 5); out (w, anwendungstext (19));
- out (w, text (aktuelle pausendauer in minuten, 4));
-
- out (w, anwendungstext (51));
- cursor (w, 2, 7); out (w, anwendungstext ( 5));
- out (w, gesamtdauerangabe).
- gesamtdauerangabe:
- text ( arbeitsdauer + pausendauer, 4) + anwendungstext (51).
- arbeitsdauer:
- aktuelle anzahl der arbeitsphasen
- * aktuelle arbeitsphasendauer in minuten.
- pausendauer:
- (aktuelle anzahl der arbeitsphasen - 1)
- * aktuelle pausendauer in minuten.
-END PROC simulationszeiten anzeigen;
-PROC anzahl der arbeitsphasen festlegen:
-
- INT CONST minwert :: 2, maxwert :: 20;
- zeige fenster;
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
- erfrage veraenderung;
- REP
- neuen wert vom bildschirm holen
- UNTIL benutzer ist einverstanden PER.
- zeige fenster:
- w1 := window ( 2, 2, 28, 6);
- w2 := window (22, 12, 37, 7);
- w3 := window (32, 2, 47, 6);
- page; show (w1); show (w2); show (w3).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
-
- cursor (w1, 2, 3); out (w1, anwendungstext (53));
- out (w1, text (minwert, 2));
- cursor (w1, 2, 4); out (w1, anwendungstext (54));
- out (w1, text (maxwert, 2));
- cursor (w1, 2, 6); out (w1, anwendungstext (55));
- out (w1, text (aktuelle anzahl der arbeitsphasen, 2)).
- erfrage veraenderung:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (182))));
- cursor (w3, 2, 3);
- IF no (anwendungstext (218))
-
- THEN LEAVE anzahl der arbeitsphasen festlegen
- FI.
- neuen wert vom bildschirm holen:
- cleop (w3, 2, 3); out (w3, anwendungstext ( 58));
- cursor (w3, 2, 4); out (w3, anwendungstext ( 59));
- cursor (w3, 2, 6); out (w3, anwendungstext (183));
- aktuelle anzahl der arbeitsphasen := ermittelter wert (minwert, maxwert,
- aktuelle anzahl der arbeitsphasen).
- benutzer ist einverstanden:
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
-
- cleop (w3, 2, 3);
- IF yes (w3, anwendungstext (184))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC anzahl der arbeitsphasen festlegen;
-PROC dauer einer arbeitsphase festlegen:
- INT CONST minwert :: 1, maxwert :: 60;
- zeige fenster;
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
- erfrage veraenderung;
- REP
- neuen wert vom bildschirm holen
- UNTIL benutzer ist einverstanden PER.
- zeige fenster:
- w1 := window ( 2, 2, 28, 6);
- w2 := window (22, 12, 37, 7);
-
- w3 := window (32, 2, 47, 6);
- page; show (w1); show (w2); show (w3).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
- cursor (w1, 2, 3); out (w1, anwendungstext (53));
- out (w1, text (minwert, 2));
- out (w1, anwendungstext (51));
- cursor (w1, 2, 4); out (w1, anwendungstext (54));
- out (w1, text (maxwert, 2));
- out (w1, anwendungstext (51));
-
- cursor (w1, 2, 6); out (w1, anwendungstext (55));
- out (w1, text (aktuelle arbeitsphasendauer in minuten, 2));
- out (w1, anwendungstext (51)).
- erfrage veraenderung:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (187))));
- cursor (w3, 2, 3);
- IF no (anwendungstext (219))
- THEN LEAVE dauer einer arbeitsphase festlegen
- FI.
- neuen wert vom bildschirm holen:
- INT VAR spa, zei;
- cleop (w3, 2, 3); out (w3, anwendungstext ( 58));
-
- cursor (w3, 2, 3); out (w3, anwendungstext ( 58));
- cursor (w3, 2, 4); out (w3, anwendungstext ( 59));
- cursor (w3, 2, 6); out (w3, anwendungstext (188));
- get cursor (w3, spa, zei);
- cursor (w3, spa + 3, zei); out (w3, anwendungstext (51));
- cursor (w3, spa, zei);
- aktuelle arbeitsphasendauer in minuten
- := ermittelter wert (minwert, maxwert,
- aktuelle arbeitsphasendauer in minuten).
- benutzer ist einverstanden:
-
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
- cleop (w3, 2, 3);
- IF yes (w3, anwendungstext (189))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC dauer einer arbeitsphase festlegen;
-PROC pausendauer festlegen:
- INT CONST minwert :: 1, maxwert :: 30;
- zeige fenster;
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
- erfrage veraenderung;
- REP
- neuen wert vom bildschirm holen
- UNTIL benutzer ist einverstanden PER.
-
- zeige fenster:
- w1 := window ( 2, 2, 28, 6);
- w2 := window (22, 12, 37, 7);
- w3 := window (32, 2, 47, 6);
- page; show (w1); show (w2); show (w3).
- hinweise an den benutzer ausgeben:
- cursor (w1, 1, 1); out (w1, center (w1, invers (anwendungstext (52))));
- cursor (w1, 2, 3); out (w1, anwendungstext (53));
- out (w1, text (minwert, 2));
- out (w1, anwendungstext (51));
- cursor (w1, 2, 4); out (w1, anwendungstext (54));
-
- out (w1, text (maxwert, 2));
- out (w1, anwendungstext (51));
- cursor (w1, 2, 6); out (w1, anwendungstext (55));
- out (w1, text (aktuelle pausendauer in minuten, 2));
- out (w1, anwendungstext (51)).
- erfrage veraenderung:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (191))));
- cursor (w3, 2, 3);
- IF no (anwendungstext (220))
- THEN LEAVE pausendauer festlegen
- FI.
-
- neuen wert vom bildschirm holen:
- INT VAR spa, zei;
- cleop (w3, 2, 3); out (w3, anwendungstext ( 58));
- cursor (w3, 2, 4); out (w3, anwendungstext ( 59));
- cursor (w3, 2, 6); out (w3, anwendungstext (192));
- get cursor (w3, spa, zei);
- cursor (w3, spa + 3, zei); out (w3, anwendungstext (51));
- cursor (w3, spa, zei);
- aktuelle pausendauer in minuten
- := ermittelter wert (minwert, maxwert,
- aktuelle pausendauer in minuten).
-
- benutzer ist einverstanden:
- hinweise an den benutzer ausgeben;
- simulationszeiten anzeigen (w2);
- cleop (w3, 2, 3);
- IF yes (w3, anwendungstext (193))
- THEN TRUE
- ELSE FALSE
- FI.
-END PROC pausendauer festlegen;
-PROC wertungsschluessel veraendern:
- INT CONST abszisse :: 16, ordinate :: 2;
- zeige fenster;
- gib bewertungsschluessel aus (w1);
- gib informationen aus;
- stelle frage nach veraenderung;
- REP
- neueinstellung
- UNTIL benutzer ist einverstanden PER.
-
- zeige fenster:
- w1 := window ( 2, 2, 38, 22);
- w2 := window (42, 10, 37, 14);
- w3 := window (42, 2, 37, 6);
- page; show (w1); show (w2); show (w3).
- gib informationen aus:
- cursor (w2, 1, 1); out (w2, center (w2, invers (anwendungstext (52))));
- cursor (w2, 2, 3); out (w2, anwendungstext (195));
- cursor (w2, 2, 4); out (w2, anwendungstext (196));
- cursor (w2, 2, 6); out (w2, anwendungstext (197));
- cursor (w2, 2, 7); out (w2, anwendungstext (198));
- cursor (w2, 2, 8); out (w2, anwendungstext (199));
-
- cursor (w2, 2,11); out (w2, anwendungstext (200));
- cursor (w2, 2,12); out (w2, anwendungstext (201));
- cursor (w2, 2,13); out (w2, anwendungstext (202)).
- stelle frage nach veraenderung:
- cursor (w3, 1, 1); out (w3, center (w3, invers (anwendungstext (205))));
- cursor (w3, 2, 3);
- IF no (anwendungstext (206))
- THEN LEAVE wertungsschluessel veraendern
- ELSE gib hinweis auf linkes fenster
- FI.
- gib hinweis auf linkes fenster:
- cleop (w3, 2, 3); out (w3, anwendungstext (211));
-
- cursor (w3, 2, 4); out (w3, anwendungstext (212));
- cursor (w3, 2, 5); out (w3, anwendungstext (213)).
- neueinstellung:
- INT VAR zeiger;
- cursor an;
- FOR zeiger FROM 1 UPTO 11 REP
- gehe auf aktuelle punktposition;
- lasse verschieben
- PER;
- cursor aus.
- gehe auf aktuelle punktposition:
- cursor (w1, ordinate + 3 * zeiger, abszisse - nachkommastelle).
- nachkommastelle:
- int (bewertung [zeiger] * 10.0).
- lasse verschieben:
- TEXT VAR eingabezeichen; INT VAR position;
-
- REP
- inchar (eingabezeichen);
- position := pos (oben unten return, eingabezeichen);
- fuehre angemessene reaktion aus
- UNTIL position = 3 PER.
- fuehre angemessene reaktion aus:
- SELECT position OF
- CASE 1: steige auf
- CASE 2: steige ab
- CASE 3: (* tue nichts *)
- OTHERWISE piepse
- END SELECT.
- steige auf:
- IF bewertung [zeiger] < 1.0
- THEN loesche alten punkt;
- bewertung [zeiger] INCR 0.1;
- schreibe neuen punkt
-
- ELSE piepse
- FI.
- steige ab:
- IF bewertung [zeiger] > 0.0
- THEN loesche alten punkt;
- bewertung [zeiger] DECR 0.1;
- schreibe neuen punkt
- ELSE piepse
- FI.
- loesche alten punkt:
- INT VAR tabspalte, tabzeile;
- gehe auf aktuelle punktposition;
- get cursor (w1, tabspalte, tabzeile);
- IF tabspalte = ordinate + 3 OR tabzeile = abszisse
- THEN out (w1, "|")
- ELSE out (w1, blank)
- FI.
- schreibe neuen punkt:
- gehe auf aktuelle punktposition;
-
- out (w1, punkt und zurueck).
- benutzer ist einverstanden:
- cleop (w3, 2, 3);
- IF yes (w3, anwendungstext (207))
- THEN TRUE
- ELSE gib hinweis auf linkes fenster;
- FALSE
- FI.
-END PROC wertungsschluessel veraendern;
-PROC cleol (WINDOW VAR w, INT CONST cursorspalte, cursorzeile):
- cursor (w, cursorspalte, cursorzeile);
- IF remaining lines (w) > 1
- THEN out (w, (areaxsize (w) - cursorspalte + 1) * blank)
- ELSE out (w, (areaxsize (w) - cursorspalte) * blank)
-
- FI;
- cursor (w, cursorspalte, cursorzeile)
-END PROC cleol;
-PROC cleop (WINDOW VAR w, INT CONST cursorspalte, cursorzeile):
- cleol (w, cursorspalte, cursorzeile);
- INT VAR i;
- FOR i FROM 1 UPTO remaining lines (w) REP
- cleol (w, 1, cursorzeile + i)
- PER;
- cursor (w, cursorspalte, cursorzeile)
-END PROC cleop;
-PROC cursor an:
- INT VAR spalte, zeile;
- get cursor (spalte, zeile); cursor on; cursor (spalte, zeile)
-END PROC cursor an;
-PROC cursor aus:
- INT VAR spalte, zeile;
-
- get cursor (spalte, zeile); cursor off; cursor (spalte, zeile)
-END PROC cursor aus;
-INT PROC eingabe mit intervallanzeige (WINDOW VAR w, INT CONST minwert,
- maxwert, anfangswert, cursorspalte,
- cursorzeile):
- BOOL VAR ist aufsteigend :: minwert = anfangswert;
- INT VAR aktueller wert :: anfangswert, alter wert, eingelesener wert;
- REP
- hole position aus vorgabe (oben unten return, eingelesener wert);
- SELECT eingelesener wert OF
-
- CASE 1: erniedrige aktuellen wert wenn moeglich
- CASE 2: erhoehe aktuellen wert wenn moeglich
- END SELECT
- UNTIL eingelesener wert = 3 PER;
- aktueller wert.
- erniedrige aktuellen wert wenn moeglich:
- IF aktueller wert > minwert
- THEN alter wert := aktueller wert;
- aktueller wert DECR 1;
- IF ist aufsteigend
- THEN loesche alte markierung
- ELSE markiere neues zeichen
- FI
- ELSE piepse
- FI.
- erhoehe aktuellen wert wenn moeglich:
-
- IF aktueller wert < maxwert
- THEN alter wert := aktueller wert;
- aktueller wert INCR 1;
- IF ist aufsteigend
- THEN markiere neues zeichen
- ELSE loesche alte markierung
- FI
- ELSE piepse
- FI.
- loesche alte markierung:
- positioniere cursor in zeichenkette (w, 33, alter wert);
- out (w, code (alter wert) + " ");
- cursor (cursorspalte, cursorzeile).
- markiere neues zeichen:
- positioniere cursor in zeichenkette (w, 33, aktueller wert);
-
- out (w, invers (code (aktueller wert)));
- cursor (cursorspalte, cursorzeile).
-END PROC eingabe mit intervallanzeige;
-INT PROC eingabe mit elementanzeige (WINDOW VAR w, INT CONST minwert,
- maxwert, anfangswert,
- cursorspalte, cursorzeile):
- INT VAR aktueller wert :: anfangswert, alter wert, eingelesener wert;
- REP
- hole position aus vorgabe (oben unten return, eingelesener wert);
- SELECT eingelesener wert OF
-
- CASE 1: erniedrige aktuellen wert wenn moeglich
- CASE 2: erhoehe aktuellen wert wenn moeglich
- END SELECT
- UNTIL eingelesener wert = 3 PER;
- aktueller wert.
- erniedrige aktuellen wert wenn moeglich:
- IF aktueller wert > minwert
- THEN alter wert := aktueller wert;
- aktueller wert DECR 1;
- loesche alte markierung;
- markiere neues zeichen
- ELSE piepse
- FI.
- erhoehe aktuellen wert wenn moeglich:
- IF aktueller wert < maxwert
-
- THEN alter wert := aktueller wert;
- aktueller wert INCR 1;
- loesche alte markierung;
- markiere neues zeichen
- ELSE piepse
- FI.
- loesche alte markierung:
- positioniere cursor in zeichenkette (w, minwert, alter wert);
- out (w, code (alter wert) + " ");
- cursor (cursorspalte, cursorzeile).
- markiere neues zeichen:
- positioniere cursor in zeichenkette (w, minwert, aktueller wert);
- out (w, invers (code (aktueller wert)));
-
- cursor (cursorspalte, cursorzeile).
-END PROC eingabe mit elementanzeige;
-PROC werkstueck zeigen (WINDOW VAR w):
- INT VAR zaehler, spalte, zeile;
- page (w);
- werkstueckaufhaenger (spalte, zeile);
- schreibe werkstueck zeilenweise.
- schreibe werkstueck zeilenweise:
- FOR zaehler FROM 1 UPTO aktuelle werkstueckhoehe REP
- positioniere den cursor;
- bastle eine zeile;
- gib eine zeile aus
- PER.
- positioniere den cursor:
- cursor (w, spalte, zeile + zaehler - 1).
-
- bastle eine zeile:
- TEXT VAR zeileninhalt := "";
- INT VAR z;
- FOR z FROM 1 UPTO aktuelle werkstueckbreite REP
- zeileninhalt CAT code (random (kleinster aktueller zeichencode,
- groesster aktueller zeichencode))
- PER.
- gib eine zeile aus:
- IF inversdarstellung
- THEN out (w, invers (zeileninhalt))
- ELSE out (w, zeileninhalt)
- FI.
-END PROC werkstueck zeigen;
-PROC werkstueckaufhaenger (INT VAR spalte, zeile):
- spalte := ((maxspalten - aktuelle werkstueckbreite) DIV 2) + 3;
-
- zeile := ((maxzeilen - aktuelle werkstueckhoehe ) DIV 2) + 2;
- IF inversdarstellung THEN spalte DECR 1 FI
-END PROC werkstueckaufhaenger;
-PROC gib zeichenkette aus (WINDOW VAR w,
- INT CONST kleinster, groesster, markiertes):
- INT VAR zaehler;
- FOR zaehler FROM kleinster UPTO groesster REP
- positioniere cursor in zeichenkette (w, kleinster, zaehler);
- IF zaehler = markiertes
- THEN out (w, invers (code (zaehler)))
- ELSE out (w, code (zaehler))
-
- FI
- PER
-END PROC gib zeichenkette aus;
-PROC positioniere cursor in zeichenkette (WINDOW VAR w,
- INT CONST mincode, position):
- cursor (w, 4 + ((position - mincode) DIV 19) * 5,
- 3 + ((position - mincode) MOD 19))
-END PROC positioniere cursor in zeichenkette;
-TEXT PROC tastenbezeichnung (TEXT CONST zeichen):
- IF code (zeichen) >= 33 AND code (zeichen) <= 126
- THEN "<" + zeichen + ">"
- ELSE umgesetzter code
- FI.
- umgesetzter code:
-
- SELECT code (zeichen) OF
- CASE 1: anwendungstext (31)
- CASE 2: anwendungstext (32)
- CASE 3: anwendungstext (33)
- CASE 8: anwendungstext (34)
- CASE 9: anwendungstext (35)
- CASE 10: anwendungstext (36)
- CASE 11: anwendungstext (37)
- CASE 12: anwendungstext (38)
- CASE 13: anwendungstext (39)
- CASE 16: anwendungstext (40)
- CASE 27: anwendungstext (41)
- CASE 32: anwendungstext (42)
- CASE 214: anwendungstext (43)
-
- CASE 215: anwendungstext (44)
- CASE 216: anwendungstext (45)
- CASE 217: anwendungstext (46)
- CASE 218: anwendungstext (47)
- CASE 219: anwendungstext (48)
- CASE 251: anwendungstext (49)
- OTHERWISE anwendungstext (50)
- END SELECT
-END PROC tastenbezeichnung;
-INT PROC ermittelter wert (INT CONST minimum, maximum, startwert):
- INT VAR aktueller wert, eingelesener wert;
- cursor an;
- aktueller wert := startwert;
- REP
- gib dreistellig aus und positioniere zurueck (aktueller wert, FALSE);
-
- hole position aus vorgabe (oben unten return, eingelesener wert);
- SELECT eingelesener wert OF
- CASE 1: erhoehe aktuellen wert wenn moeglich
- CASE 2: erniedrige aktuellen wert wenn moeglich
- END SELECT
- UNTIL eingelesener wert = 3 PER;
- cursor aus;
- aktueller wert.
- erhoehe aktuellen wert wenn moeglich:
- IF aktueller wert < maximum
- THEN aktueller wert INCR 1
- ELSE piepse
- FI.
- erniedrige aktuellen wert wenn moeglich:
- IF aktueller wert > minimum
-
- THEN aktueller wert DECR 1
- ELSE piepse
- FI.
-END PROC ermittelter wert;
-PROC gib dreistellig aus und positioniere zurueck (INT CONST wert,
- BOOL CONST mit wertwandel):
- INT VAR spalte, zeile; get cursor (spalte, zeile);
- IF mit wertwandel
- THEN out ("'" + code (wert) + "'")
- ELSE out (text (wert, 3))
- FI;
- cursor (spalte, zeile);
-END PROC gib dreistellig aus und positioniere zurueck;
-PROC hole position aus vorgabe (TEXT CONST vorgabe, INT VAR position):
-
- TEXT VAR eingabezeichen; INT VAR spa, zei;
- REP
- get cursor (spa, zei); inchar (eingabezeichen); cursor (spa, zei);
- position := pos (vorgabe, eingabezeichen);
- IF position = 0 THEN piepse; cursor (spa, zei) FI
- UNTIL position > 0 PER
-END PROC hole position aus vorgabe;
-PROC piepse:
- INT VAR spa, zei; get cursor (spa, zei); out (piep); cursor (spa, zei)
-END PROC piepse;
-END PACKET ls mp bap 1;
-stdvoreinstellung der parameter
-
-