Programmieren in Pascal: Zahlenraten: Unterschied zwischen den Versionen

Aus Datenschutz
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
'''Pascal''' ist eine nach Blaise Pascal benannte Programmiersprache, die von Niklaus Wirth definiert wurde. Da die Sprache im Unterricht und im Studium eingesetzt wurde, erfuhr sie eine große Popularität. Pascal ist eine strukturierte Sprache, hat aber m. E. einige Schwächen. Zum Beispiel dass jedes END ein BEGIN erfordert, was etwas merkwürdige Schachtelungen ergibt:
+
'''Pascal''' ist eine nach Blaise Pascal benannte Programmiersprache, die von Niklaus Wirth definiert wurde. Da die Sprache im Unterricht und im Studium eingesetzt wurde, erfuhr sie eine große Popularität. Pascal ist eine strukturierte Sprache, hat aber m. E. einige Schwächen. Zum Beispiel dass jedes END ein BEGIN erfordert und dass ELSIF fehlt, was etwas merkwürdige Schachtelungen ergibt:
  
 
<pre>
 
<pre>

Version vom 21. Dezember 2021, 13:17 Uhr

Pascal ist eine nach Blaise Pascal benannte Programmiersprache, die von Niklaus Wirth definiert wurde. Da die Sprache im Unterricht und im Studium eingesetzt wurde, erfuhr sie eine große Popularität. Pascal ist eine strukturierte Sprache, hat aber m. E. einige Schwächen. Zum Beispiel dass jedes END ein BEGIN erfordert und dass ELSIF fehlt, was etwas merkwürdige Schachtelungen ergibt:

PROGRAM Zahlenraten;

// Testen von LAZARUS auf Windows und Linux
// (c) Frank Werner, 21.12.2021

CONST iMaxZahl = 100;

VAR Zahl, Vermutung: INTEGER;

// Prüft, ob die Vermutung richtig ist und gibt Tipps
FUNCTION Richtig (Number, Guess: INTEGER): BOOLEAN;
BEGIN

  IF Guess > Number THEN BEGIN
    WRITELN ('...kleiner');
    Richtig := FALSE;
  END ELSE IF Guess < Number THEN BEGIN
    WRITELN ('...größer');
    Richtig := FALSE;
  END ELSE IF Guess = Number THEN BEGIN
    WRITELN ('...ERRATEN!');
    Richtig := TRUE;
  END;

END;

BEGIN

  // Titel ausgeben
  WRITELN ('Zahlenraten - ich denke mir eine Zahl!');
  WRITELN ('zwischen 0 und ', iMaxZahl);
  WRITELN ('und Du errätst sie!');

  // Zufallszahl initialisieren und erzeugen
  RANDOMIZE;
  Zahl:=RANDOM(iMaxZahl);

  // Abfragen bis die Zahl erraten ist
  REPEAT
    WRITE ('Deine Vermutung?');
    READLN (Vermutung);
  UNTIL Richtig (Zahl, Vermutung);

END.