Berechnung des Minimums einer Zahlenfolge in PASCAL

Ein Beispiel für die Verwendung von eindimensionalen Arrays


(*$B-*)
PROGRAM Minimum;
CONST max = 100;
VAR a     : ARRAY[1..max] OF INTEGER;
    n,i,k : INTEGER;

BEGIN
   (* Eingabe *)
   WriteLn('Es wird das Minimum einer Folge ganzer Zahlen bestimmt.');
   Write('Gebe die Laenge n (<= ',max,') der Folge ein, n = ');
   ReadLn(n);
   WriteLn;
   WriteLn('Gebe die Elemente der Folge ein,');
   WriteLn('fuer i = 1, ..., ',n); WriteLn;
   BEGIN
      Write('a[i] = ');
      FOR i := 1 TO n DO Read(a[i]);
      WriteLn
   END;
   WriteLn;

   (* Minimum von a *)
   k := 1;                      
   FOR i := 2 TO n DO
      (* Schleifeninvariante: a[k] = min{a[1], ..., a[i-1]}  *)
      IF a[i] < a[k] THEN k := i;  
   
   (* Ausgabe *)
   WriteLn('Das Minimum ist a[',k,'] = ',a[k]);
END.