Programm Ende mit der Funktion eof

T

Trekkii

Gast
#1
Moin,

ich habe das folgende Pascal-Programm geschrieben, welches eine Folge von integer Zahlen einlesen soll und dann die kleinste Zahl ausgeben soll. Als Ende der Eingabe wollte ich die Funktion "eof" verwenden, also bei meinem Rechner die Tastenkombination < Strg > d. Dummerweise bricht das Programm auch dann ab, wenn ich die "Null" in der Zahlenfolge eingebe. Hat jemand eine Idee, warum das so ist?

HTML:
program kleinsteZahl3 (input, output);
{ gibt die kleinste Zahl der integer-Eingabezahlen aus }

  var
  Zahl,
  Minimum : integer;
  
begin
  writeln ('Geben Sie die integer-Zahlen ein. ',
           '< Strg > d beendet die Eingabe.');
  if eof then
    writeln ('Es wurde keine Zahl eingegeben.')
  else
  begin
    readln (Zahl);
    Minimum := Zahl;
    repeat
      if Zahl < Minimum then
        Minimum := Zahl;
      readln (Zahl);
    until not eof;
    writeln ('Die kleinste Zahl lautet ', Minimum, '.');
  end { else }
end. { kleinsteZahl3 }
 
Dabei seit
Jan. 2011
Beiträge
3.718
#2
Ich kenne Pascal zwar nicht gut, aber ich vermute, dass das Programm abstürzt weil "Null" keine Zahl ist.
 
T

Trekkii

Gast
#3
@Darlis

Ich habe es herausgefunden. Die Bedingung der repeat-Schleife war falsch. Sie muss "eof" anstatt "not eof" sein. :lol:
 
Top