1 PROGRAM BINARYSEARCH( FRAGMENT );
5 VAR WERT: ARRAY[1..IMAX] OF REAL; (* STEIGEND SORTIERTES ARRAY *)
6 ZAHL: REAL; (* GESUCHTE ZAHL *)
8 UNTERGRENZE, OBERGRENZE: INTEGER; (* SUCHINTERVALL *)
9 GEFUNDEN: BOOLEAN; (* BOOL'SCHE VARIABLE *)
15 UNTERGRENZE := 1; OBERGRENZE := IMAX;
19 I := ( UNTERGRENZE + OBERGRENZE ) DIV 2;
21 GEFUNDEN := ZAHL=WERT[I];
23 IF ZAHL>WERT[I] THEN UNTERGRENZE := I + 1
24 ELSE OBERGRENZE := I - 1
26 UNTIL GEFUNDEN OR (UNTERGRENZE>OBERGRENZE)