Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | PROGRAM BINARYSEARCH( FRAGMENT ); |
2 | ||
3 | CONST IMAX=100; | |
4 | ||
5 | VAR WERT: ARRAY[1..IMAX] OF REAL; (* STEIGEND SORTIERTES ARRAY *) | |
6 | ZAHL: REAL; (* GESUCHTE ZAHL *) | |
7 | I, (* INDEX *) | |
8 | UNTERGRENZE, OBERGRENZE: INTEGER; (* SUCHINTERVALL *) | |
9 | GEFUNDEN: BOOLEAN; (* BOOL'SCHE VARIABLE *) | |
10 | ||
11 | ||
12 | ||
13 | BEGIN | |
14 | ||
15 | UNTERGRENZE := 1; OBERGRENZE := IMAX; | |
16 | ||
17 | REPEAT | |
18 | ||
19 | I := ( UNTERGRENZE + OBERGRENZE ) DIV 2; | |
20 | ||
21 | GEFUNDEN := ZAHL=WERT[I]; | |
22 | ||
23 | IF ZAHL>WERT[I] THEN UNTERGRENZE := I + 1 | |
24 | ELSE OBERGRENZE := I - 1 | |
25 | ||
26 | UNTIL GEFUNDEN OR (UNTERGRENZE>OBERGRENZE) | |
27 | ||
28 | END. |