Const n=20; var a:array[1..n] of integer; i,i1,i2,x:integer; begin Randomize; a[1]:=random(10); write(a[1],' '); for i:=2 to n do begin a[i]:=a[i-1]+random(10); write(a[i],' '); end; writeln; write('x = '); readln(x); i1:=1; i2:=n; repeat i:=(i1+i2) div 2; if a[i]<x then i1:=(i1+i2) div 2+1; if a[i]>x then i2:=(i1+i2) div 2-1; until (a[i]=x)or(i1>i2); if a[i]=x then begin writeln('Искомый(ые) номер(а) элемента(ов):'); while (i>0)and(a[i]=x) do i:=i-1; i:=i+1; while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end; end else writeln('Элемент не найден'); writeln; end.
Program Task; Const N = 499; M = 1; Var A: Array [1..N, 1..N] of Boolean; i, j, x, y, t: Integer; b: Boolean; Begin Randomize; While i < M Do Begin x := Random(N) + 1; y := Random(N) + 1; If A[x, y] = False Then Begin A[x, y] := True; i := i + 1; End; End; While b = False Do Begin b := True; For i := 1 To N Do For j := 1 To N Do Begin If A[i, j] = True Then Begin If (i + 1) <= N Then A[i + 1, j] := True; If (i - 1) > 0 Then A[i - 1, j] := True; If(j + 1) <= N Then A[i, j + 1] := True; If (j -1) > 0 Then A[i, j - 1] := True; End; End; For i := 1 To N Do For j := 1 To N Do If A[i, j] = False Then b := False; t := t + 1; End; WriteLn(t); ReadLn; End.
вложенный условный оператор
Объяснение: