Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program dichotomique ;
- uses WinCrt;
- type
- Tab = array [1..100] of integer;
- var
- t : tab ;
- n : byte;
- k : integer;
- Procedure inpn(var n : byte);
- begin
- Repeat
- ClrScr;
- Write('N= ');
- Readln(n);
- Until n in [5..10] ;
- end;
- Procedure fillT (var t : tab ; n : byte ) ;
- var
- a : integer;
- Begin
- for a:=1 to n do
- t[a]:=random(101);
- end;
- Procedure afft(t : tab ; n : byte );
- var
- a : Integer;
- Begin
- for a:=1 to n do
- Write(t[a]:5);
- writeln;
- End;
- Procedure trins(var t : tab ; n : byte );
- var
- a,b,stor : Integer;
- begin
- a:=2 ;
- while a<=n do
- Begin
- b:= a;
- while (b>1 ) and (t[b-1] > t[b]) do
- begin
- stor:=t[b];
- t[b]:=t[b-1];
- t[b-1]:=stor;
- b:=b-1;
- end;
- a:=a+1;
- end;
- end;
- Function rech(t : tab ; n : byte ; k : integer):Boolean;
- var
- st,mid,en : Integer; // start , middle , End
- Begin
- st:=1;
- en:=n;
- Repeat
- mid := (st+en) div 2;
- if k < t[mid] then
- en:=mid-1
- else
- st:=mid+1;
- until (k = t[st]) or (k = t[en]) or (k = t[mid]) or (en<st);
- rech:= en>st;
- end;
- begin
- inpn(n);
- fillt(t,n);
- afft(t,n);
- trins(t,n);
- write('k= ');
- readln(k);
- writeln('Does ',k,' exist in T ? ',rech(t,n,k));
- End.
Add Comment
Please, Sign In to add comment