PROGRAM ENDGUELTIG(INPUT,OUTPUT); CONST N=20; TYPE FELD=ARRAY[1..N]OF INTEGER; VAR ZAHLEN:FELD; M, K:INTEGER; PROCEDURE EINLESEN(VAR ZAHLEN:FELD; K:INTEGER); VAR I:INTEGER; BEGIN I:=0; REPEAT I:=I+1; READ(ZAHLEN[I]);  UNTIL(I=N) OR EOLN; K:=I END;(*EINLESEN*) PROCEDURE AUSGABE(ZAHLEN:FELD; VAR K:INTEGER); VAR I:INTEGER; BEGIN FOR I:=1 TO K DO WRITELN(ZAHLEN[I]) END; PROCEDURE MAXSUCHE(K:INTEGER;VAR ZAHLEN:FELD); VAR MAXSTELLE,ZAEHLER:INTEGER; PROCEDURE VERTAUSCHE(VAR X,Y:INTEGER); VAR HILFE:INTEGER; BEGIN HILFE:=X; X:=Y; Y:=HILFE END;(*VERTAUSCHE*) BEGIN ZAEHLER:=0; MAXSTELLE:=1; REPEAT ZAEHLER:=ZAEHLER+1; IF ZAHLEN[ZAEHLER]>ZAHLEN[MAXSTELLE] THEN MAXSTELLE:=ZAEHLER; UNTIL ZAEHLER=K; VERTAUSCHE(ZAHLEN[MAXSTELLE],ZAHLEN[K]) END;(*MAXSUCHE*) BEGIN(*HAUPTPROGRAMM*) EINLESEN(ZAHLEN,K); AUSGABE(ZAHLEN,K); FOR M:=K DOWNTO 2 DO MAXSUCHE(K,ZAHLEN); AUSGABE(ZAHLEN,K) END.