Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

Lösung zu Blatt 7 --- Allgemeine Informatik I (WS 1998)

6. Dreiecke

MODULE triangle;
   (* Was fuer ein Dreieck haben wir denn? *)
   FROM InOut IMPORT WriteLn, WriteString;
   FROM RealInOut IMPORT WriteReal, ReadReal;

   VAR x, y, z, tmp: REAL;

BEGIN
   WriteString("Bitte geben Sie die 3 Seitenlaengen ein:"); WriteLn;
   WriteString("Bitte erste Zahl: ");
   ReadReal(x);
   WriteString("Bitte zweite Zahl: ");
   ReadReal(y);
   WriteString("Bitte dritte Zahl: ");
   ReadReal(z);
   IF (y < x) THEN (* Sort x, y, and z *)
      tmp := y; y := x; x := tmp;
   END;
   IF (z < x) THEN
      tmp := z; z := x; x := tmp;
   END;
   IF (z < y) THEN
      tmp := z; z := y; y := tmp;
   END; (* Now they are sorted *)
   IF (x <= 0.0) OR (x + y - z <= 0.000000001) THEN
      WriteString("Kein gueltiges Dreieck");
   ELSIF (ABS(x - y) < 0.000000001) AND (ABS(x - z) < 0.000000001) THEN
      WriteString("Ein gleichseitiges Dreieck");
   ELSIF (ABS(x - y) < 0.000000001) OR (ABS(y - z) < 0.000000001) THEN
      WriteString("Ein gleichschenkliges Dreieck");
   ELSE 
      WriteString("Ein normales Dreieck");
   END;
   WriteLn;
END triangle.

7. Zählen

MODULE lc;
(* liest Folge von Zeichen und zaehlt die Klein- und Grossbuchstaben,
   sowie Ziffern, Klammern und Rest.
 *)

   FROM InOut IMPORT Read, WriteCard, WriteString, WriteLn, Done;
   FROM SysExit IMPORT Exit;

   VAR     
      ch:CHAR;
      zahl, (*ermittelte Zahl*)
      kb, gb, zi, kl, re: CARDINAL;
BEGIN
   kb := 0; gb := 0; zi := 0; kl := 0; re := 0;
   Read(ch);
   WHILE Done DO (*solange also Read erfolgreich*)
      CASE ch OF
      | '0' ..'9': INC(zi);
      | 'a' .. 'z': INC(kb);
      | 'A' .. 'Z': INC(gb);
      | '(', ')', '[', ']', '{', '}' : INC(kl);
      ELSE
	 INC(re);
      END;
      Read(ch)
   END;
   WriteString("Es wurden "); WriteCard(zi, 4); WriteString(" Ziffern, ");
   WriteCard(kb, 4); WriteString(" Kleinbuchstaben, "); WriteCard(gb, 4);
   WriteString(" Grossbuchstaben, "); WriteLn; WriteCard(kl, 4);
   WriteString(" Klammern und "); WriteCard(re, 4);
   WriteString(" sonstige Zeichen gelesen."); WriteLn;
END lc.

Universität Fakultät SAI

Ingo Melzer, 08 Dezember 1998