PROGRAM BINARYSEARCH( FRAGMENT ); CONST IMAX=100; VAR WERT: ARRAY[1..IMAX] OF REAL; (* STEIGEND SORTIERTES ARRAY *) ZAHL: REAL; (* GESUCHTE ZAHL *) I, (* INDEX *) UNTERGRENZE, OBERGRENZE: INTEGER; (* SUCHINTERVALL *) GEFUNDEN: BOOLEAN; (* BOOL'SCHE VARIABLE *) BEGIN UNTERGRENZE := 1; OBERGRENZE := IMAX; REPEAT I := ( UNTERGRENZE + OBERGRENZE ) DIV 2; GEFUNDEN := ZAHL=WERT[I]; IF ZAHL>WERT[I] THEN UNTERGRENZE := I + 1 ELSE OBERGRENZE := I - 1 UNTIL GEFUNDEN OR (UNTERGRENZE>OBERGRENZE) END.