richie3366

devinette v1

Oct 3rd, 2012
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 1.15 KB | None | 0 0
  1. ----------------------------------------------------------------
  2. --  *  devinette.adb
  3. --  *  Role : deviner le nombre pensé par un utilisateur
  4. ----------------------------------------------------------------
  5. with entrees_sorties; use entrees_sorties;
  6.  
  7. procedure devinette is
  8.     nbMin, nbMax, nbMoy : Integer;
  9.     indice : Integer;
  10.     nbTrouve : Integer;
  11.     nbCoups : Integer;
  12. begin  
  13.  
  14.   nbCoups := 0;
  15.   nbTrouve := 0;
  16.   nbMin := 1;
  17.   nbMax := 100;
  18.   nbMoy := 0;
  19.  
  20.   put("Pensez a un entier entre 1 et 100");
  21.   new_line;
  22.  
  23.   while(nbTrouve = 0) loop
  24.     nbMoy := nbMin + (nbMax - nbMin)/2;
  25.    
  26.     put("Tapez -1 si votre nombre est inferieur a ");
  27.     put(nbMoy, 0);
  28.     put(", 1 s'il est superieur, 0 si egal.");
  29.     new_line;
  30.    
  31.     get(indice);
  32.     new_line;
  33.    
  34.     if(indice = 0) then
  35.       nbTrouve := nbMoy;
  36.     else
  37.       if(indice < 0) then
  38.     nbMax := nbMoy-1;
  39.       else -- indice > 0
  40.     nbMin := nbMoy+1;
  41.       end if;
  42.     end if;
  43.     nbCoups := nbCoups + 1;
  44.   end loop;
  45.  
  46.   put("J'ai trouve en ");
  47.   put(nbCoups, 0);
  48.  
  49.   if(nbCoups > 1) then
  50.     put(" coups !");
  51.   else
  52.     put("coup !");
  53.   end if;
  54.  
  55. end devinette;
Advertisement
Add Comment
Please, Sign In to add comment