Recherche dichotomique


Wild VIP 3 879 messages
Lonesome Cowboy‚ 32ans
Posté(e)

alors voila, je dois coder une recherche dichotomique dans un tableau trié, en Pascal, et je ne sais pas pourquoi, mais il ne veut pas me trouver la valeur quand elle est dans la derniere case du tableau : /

Pour ce qui est des variables .. pas de variables globales

Mon tableau est un tableau d'entiersde 1 à N avec N=15

(j'ai essayé avec N=14 et 10 mais ca ne change rien)

si une ame charitable pouvais me dire ou est mon erreur ca me sauverai la vie

Function RechDich(var Tab:TTab):integer;
Var Min,Mil,Max:integer;
 Begin
   Min:=1;         // le minimum de mon tableau
   Max:=N;         // le maximum de mon tableau
   Mil:=(Max+Min) DIV 2;
   Write(' Entrez le nombre a chercher : ');
   Readln(Result);

      // Parcours le tableau
   While (Mil<>Min) do begin

       // Le cas ou la valeur cherchée est dans la premiere partie du tableau
     If Tab[Mil]>Result then begin
       Max:=Mil;
       Mil:=(Max+Min) DIV 2;
       end
         // Le cas ou la valeur cherchée est dans la deuxieme partie du tableau
     else begin
       Min:=Mil;
       Mil:=(Max+Min) DIV 2;
     end;
   end;
       // Verifie si la valeur est ou pas dans le tableau
   If Tab[Mil]=Result then begin
     Writeln('La valeur ',Result,' se situe a l''indice ',Min);
     Readln;
     end
   else begin
       Writeln('La valeur ',Result,' n''est pas dans le tableau');
       Readln;
    end;
 end;

Partager ce message


Lien à poster
Partager sur d’autres sites
Annonces
Maintenant

Messages recommandés

Wild VIP 3 879 messages
Lonesome Cowboy‚ 32ans
Posté(e)

bon je suis me suis fait interoger par le prof et apparemment il suffisait juste de rajouter une ligne de code testant directement la derniere case de mon tableau

.. pour ceux qui auraient cherché et n'avait pas trouvé la solution

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant