Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- uses
- cthreads,
- Classes,SysUtils
- { you can add units after this };
- var A: array of integer;
- len:word;
- x:integer;
- procedure CreateArray(var a:array of integer;len:word);
- var i,j:word; BufArray:array of integer; flag:boolean = true;
- begin
- randomize;
- SetLength(BufArray,len);
- i:=1;
- while (i<=high(a)) do
- begin
- a[i]:=random(201)-random(201);
- BufArray[i]:=a[i];
- if (a[i]<a[i-1]) or (i<>0) then
- begin
- flag:=true;
- j:=0;
- while (j<i) and flag do
- begin
- if a[i]=BufArray[j] then flag:=false;
- inc(j);
- end;
- if flag then inc(i);
- end;
- end;
- end;
- procedure OutPutArray(a:array of integer);
- var i:word;
- begin
- for i:=0 to high(a) do writeln(i,'. ',a[i]);
- end;
- procedure Sorting(var a:array of integer);
- var id,n,i,j:byte; min:integer;
- begin
- for i:=1 to len-1 do
- begin
- min:=a[i];
- id:=i;
- for j:=i+1 to len do
- if a[j]<min then
- begin
- min:=a[j];
- id:=j;
- end;
- a[id]:=a[i];
- a[i]:=min;
- end;
- end;
- procedure Search(a:array of integer;x:integer);
- var left,right,middle,n:word;
- found:boolean = false;
- begin
- left:=0;
- right:=high(a);
- while (left<=right) and not found do
- begin
- middle:=(left+right) div 2;
- if x > a[middle] then right:=middle-1
- else if x < a[middle] then left:=middle+1
- else found:=true;
- end;
- if found then writeln(x,' at pos ', middle)
- else writeln('The search has not given any results');
- end;
- begin
- write('Input range of mas: '); readln(len);
- SetLength(a,len); CreateArray(a,len);
- writeln('Array: ');
- OutPutArray(a); Sorting(a);
- writeln('The array is sorted!');
- OutPutArray(a);
- write('Search number: '); readln(x);
- Search(a,x);
- readln
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement