Advertisement
Guest User

Untitled

a guest
Jun 21st, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 0.83 KB | None | 0 0
  1. with ap12;
  2. use ap12;
  3.  
  4. procedure dichotomie is
  5. type Tab is array (0..19) of Integer;
  6. tableau : Tab;
  7. valeur, i, min, max : Integer;
  8. fini : Boolean := false;
  9. begin
  10.    for j in Tab'range loop
  11.       tableau(j):=j;
  12.    end loop;
  13.    read(valeur);
  14.    i:=Tab'length/2;
  15.    max := Tab'length-1;
  16.    min := 0;
  17.  
  18.    loop
  19.       if(valeur=tableau(i)) then
  20.          println("Trouvé en : " & i);
  21.          fini := true;
  22.       elsif (max-min=1 ) then
  23.          println("Non trouvé");
  24.          fini:=true;
  25.       elsif (valeur < tableau(i)) then
  26.          max:=i;
  27.          i:=(i-min)/2;
  28.       elsif (valeur > tableau(i)) then
  29.          min:=i;
  30.          if(i=Tab'length-2) then
  31.             i:=i+(max-i)/2+1;
  32.          else
  33.             i:=i+(max-i)/2;
  34.          end if;
  35.       end if;
  36.       exit when (fini);
  37.     end loop;
  38.  
  39. end dichotomie;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement