Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with ap12;
- use ap12;
- procedure dichotomie is
- type Tab is array (0..19) of Integer;
- tableau : Tab;
- valeur, i, min, max : Integer;
- fini : Boolean := false;
- begin
- for j in Tab'range loop
- tableau(j):=j;
- end loop;
- read(valeur);
- i:=Tab'length/2;
- max := Tab'length-1;
- min := 0;
- loop
- if(valeur=tableau(i)) then
- println("Trouvé en : " & i);
- fini := true;
- elsif (max-min=1 ) then
- println("Non trouvé");
- fini:=true;
- elsif (valeur < tableau(i)) then
- max:=i;
- i:=(i-min)/2;
- elsif (valeur > tableau(i)) then
- min:=i;
- if(i=Tab'length-2) then
- i:=i+(max-i)/2+1;
- else
- i:=i+(max-i)/2;
- end if;
- end if;
- exit when (fini);
- end loop;
- end dichotomie;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement