home *** CD-ROM | disk | FTP | other *** search
- (*
- Title : Gewicht (Uebungsprogram fuer PASCAL-Magazin)
- LastEdit: 1.12.86.
- Author : Joerg BEYER, Tuebingen
- System : LOGITECH MODULA-2/86
- *)
-
- MODULE Gewicht;
-
- FROM InOut IMPORT WriteString,
- WriteLn;
- FROM Einfach IMPORT Eingabe,
- Ausgabe,
- FrageJaNein,
- ClrScr;
-
- TYPE
- STRING = ARRAY [0 .. 79] OF CHAR;
-
- VAR
- KG,
- CM,
- Bereich : CARDINAL;
- Nachricht : ARRAY [0 .. 10] OF STRING;
- AusgabeText : STRING;
-
- PROCEDURE NachrichtInitialisieren;
-
- BEGIN
- Nachricht[0] :=
- "Also - Sowas kleines sprengt jeden Computer - Tut uns leid";
- Nachricht[1] :=
- "Wie war das mit der Geschichte vom Suppenkasper nochmal ???";
- Nachricht[2] :=
- "Schlank ist ja gewiss schoen, aber Bohnenstangen werden aus
- Holz gemacht!";
- Nachricht[3] :=
- "Gibt es Sie ueberhaupt ? Sie sind ein idealer Mensch mit
- Idealgewicht !";
- Nachricht[4] :=
- "Ideal oder normal ... das ist hier die Frage";
- Nachricht[5] :=
- "Na sowas ... Ein ganz normaler Mensch mit Normalgewicht !";
- Nachricht[6] :=
- "Also ein bischen weniger waere garnicht schlecht !!!";
- Nachricht[7] :=
- "Schlank sind sie irgendwie schon noch, aber hoechstens
- vollschlank";
- Nachricht[8] :=
- "Zuvieeeeeeeeeeeeeeeeeeeel !!!!!!!";
- Nachricht[9] :=
- "Das Benutzen von Computern ist fuer Elefanten verboten !!!";
- Nachricht[10] :=
- "Was soll diese schwachsinnige Eingabe ????????????????????";
- END NachrichtInitialisieren;
-
- PROCEDURE Titel;
-
- BEGIN
- ClrScr;
- WriteString("Pruefen Sie Ihr Gewicht ...");
- WriteLn;
- WriteLn;
- WriteLn;
- WriteString("Ein gesundes Uebungsprogamm fuer MODULA 2 ");
- WriteLn;
- WriteLn;
- WriteString("Von Joerg BEYER, Tuebingen ");
- WriteLn;
- WriteLn;
- WriteLn
- END Titel;
-
- PROCEDURE Berechnung(Gewicht, Groesse: CARDINAL): CARDINAL;
-
- VAR
- Kategorie,
- KennZahl : CARDINAL;
-
- BEGIN
- IF Groesse < 150 THEN
- Kategorie := 0
- ELSIF ((Groesse > 250) OR (Gewicht < 30) OR (Gewicht > 400)) THEN
- Kategorie := 10
- ELSE
- KennZahl := (Gewicht * 100) DIV (Groesse - 100);
- IF KennZahl < 65 THEN
- Kategorie := 1
- ELSIF KennZahl < 85 THEN
- Kategorie := 2
- ELSIF KennZahl < 90 THEN
- Kategorie := 3
- ELSIF KennZahl < 100 THEN
- Kategorie := 4
- ELSIF KennZahl < 105 THEN
- Kategorie := 5
- ELSIF KennZahl < 115 THEN
- Kategorie := 6
- ELSIF KennZahl < 135 THEN
- Kategorie := 7
- ELSIF KennZahl < 160 THEN
- Kategorie := 8
- ELSE
- Kategorie := 9
- END; (* IF *)
- END; (* IF *)
- RETURN Kategorie
- END Berechnung;
-
-
- PROCEDURE IdealGewichtDrucken;
-
- VAR
- Ideal : CARDINAL;
-
- BEGIN
- WriteLn;
- Ideal := ((CM - 100) * 90) DIV 100;
- Ausgabe ("Ihr Idealgewicht bertraegt : ",Ideal);
- WriteLn
- END IdealGewichtDrucken;
-
-
- BEGIN (* ***** Hier beginnt das Hauptprogramm ***** *)
- Titel;
- NachrichtInitialisieren;
- REPEAT
- KG := Eingabe("Verraten Sie mir bitte Ihr Gewicht >>> (In KG)");
- CM := Eingabe("Wie gross sind Sie denn (in CM) >>>>>>>>>>>>>>");
- Bereich := Berechnung(KG,CM);
- IF (Bereich > 0) AND (Bereich < 10) THEN
- IdealGewichtDrucken
- END; (* IF *)
- AusgabeText := Nachricht[Bereich];
- WriteLn;
- WriteString(AusgabeText);
- WriteLn;
- UNTIL NOT FrageJaNein
- ("Soll eine weitere Person diesen Berechnungen zum Opfer fallen? ");
- END Gewicht.