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 und dass ELSIF fehlt, was etwas merkwürdige Schachtelungen ergibt.
+
'''Pascal''' ist eine nach [https://de.wikipedia.org/wiki/Blaise_Pascal Blaise Pascal] benannte Programmiersprache, die von [https://de.wikipedia.org/wiki/Niklaus_Wirth 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.
  
 
Ein freies, portables und leistungsfähiges Entwicklungssystem für Windows, MacOS und Linux ist [https://www.lazarus-ide.org/ Lazarus]. Die Programme können zwischen den Systemen frei kopiert und neu übersetzt werden.
 
Ein freies, portables und leistungsfähiges Entwicklungssystem für Windows, MacOS und Linux ist [https://www.lazarus-ide.org/ Lazarus]. Die Programme können zwischen den Systemen frei kopiert und neu übersetzt werden.
Zeile 12: Zeile 12:
 
<abbr title="Mit dem Schlüsselwort CONST werden Konstante definiert, also Platzhalter, deren Inhalt nicht geändert werden kann.">CONST</abbr> iMaxZahl = 100;
 
<abbr title="Mit dem Schlüsselwort CONST werden Konstante definiert, also Platzhalter, deren Inhalt nicht geändert werden kann.">CONST</abbr> iMaxZahl = 100;
  
VAR iZahl, iVermutung: INTEGER;
+
<abbr title="Mit VAR werden dem Computer Variable erklärt, also Speicherstellen, deren Inhalt variabel ist.">VAR</abbr> iZahl, iVermutung: <abbr title="Jede Variable hat einen Typ, der ihren Inhalt bestimmt. Variable vom Typ INTEGER können nur ganze Zahlen speichern.">INTEGER</abbr>;
  
 
// Prüft, ob die Vermutung richtig ist und gibt Tipps
 
// Prüft, ob die Vermutung richtig ist und gibt Tipps
FUNCTION Richtig (iNumber, iGuess: INTEGER): BOOLEAN;
+
<abbr title="Funktionen sind Unterprogramme, die nach dem Aufruf einen Wert an den Aufrufer zurück geben">FUNCTION</abbr> Richtig (iNumber, iGuess: INTEGER): <abbr title="Diese Funktion gibt einen Wert vom Typ BOOLEAN, also nur TRUE (wahr) oder FALSE (falsch) zurück.">BOOLEAN</abbr>;
 
BEGIN
 
BEGIN
  

Version vom 22. Juli 2022, 09:31 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.

Ein freies, portables und leistungsfähiges Entwicklungssystem für Windows, MacOS und Linux ist Lazarus. Die Programme können zwischen den Systemen frei kopiert und neu übersetzt werden.

PROGRAM Zahlenraten;

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

CONST iMaxZahl = 100;

VAR iZahl, iVermutung: INTEGER;

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

  IF iGuess > iNumber THEN BEGIN
    WRITELN ('...kleiner');
    Richtig := FALSE;
  END ELSE IF iGuess < iNumber THEN BEGIN
    WRITELN ('...größer');
    Richtig := FALSE;
  END ELSE IF iGuess = iNumber 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;
  iZahl := RANDOM(iMaxZahl);

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

END.