A large commit.
[pdp8.git] / sw / src / pascal / SEARCH.PS
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.