Algorithme de recherche dichotomique

Résolu
rafikadouni Messages postés 4 Statut Membre -  
 fassou -
Bonjour,
salut je cherche tout informations sur le recherche dichotomique en algorithme svp
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Je n'ai pas compris ta question. As-tu lu le lien ci-dessus ?
    2
    1. yossra
       
      voila, c la répense de votre question:
      program recherche_dichotomique;
      uses wincrt;
      type vect=array [1..50] of integer;
      var n,e,i:integer;
      t:vect;
      exist:boolean;
      procedure remplir (var t:vect;var n:integer);
      var i:integer;
      begin
      repeat
      write ('taper un entier:'); readln (n);
      until n in [1..50];
      write ('t[',1,']='); readln (t[1]);
      for i:=2 to n do
      begin
      repeat
      write ('t[',i,']='); readln(t[i]);
      until t[i]>=t[i-1];
      end;
      write ('donner e:'); readln (e);
      end;
      function rech_dicho (var t:vect; var n,i:integer):boolean;
      var trouve:boolean;
      m,debut,fin:integer;
      begin
      debut := 1;
      fin:=n;
      trouve:=false;
      repeat
      m:=(debut+fin)div 2;
      if t [m]= e then begin
      trouve:= true;
      end
      else if t[m]<e then begin
      debut:= m+1;
      end
      else begin
      fin:=m-1;
      end;
      until (trouve=true) or (debut>fin);
      rech_dicho:=true;
      end;
      begin
      remplir (t,n);
      exist:=rech_dicho (t,n,e);
      if exist = true then begin
      write (e ,'existe dqns T');
      end
      else begin
      write (e ,'n"existe pas dans T');
      end;
      end.
      0
      1. chetouani > yossra
         
        tu dois ajouter le morço en gra ds ton code. à par ça tout va tre bien:uses wincrt;
        type vect=array [1..50] of integer;
        var n,e,i:integer;
        t:vect;
        exist:boolean;
        procedure remplir (var t:vect;var n:integer);
        var i:integer;
        begin
        repeat
        write ('taper un entier:'); readln (n);
        until n in [1..50];
        write ('t[',1,']='); readln (t[1]);
        for i:=2 to n do
        begin
        repeat
        write ('t[',i,']='); readln(t[i]);
        until t[i]>=t[i-1];
        end;
        write ('donner e:'); readln (e);
        end;
        function rech_dicho (var t:vect; var n,i:integer):boolean;
        var trouve:boolean;
        m,debut,fin:integer;
        begin
        debut := 1;
        fin:=n;
        trouve:=false;
        repeat
        m:=(debut+fin)div 2;
        if t [m]= e then begin
        trouve:= true;
        end
        else if t[m]<e then begin
        debut:= m+1;
        end
        else begin
        fin:=m-1;
        end;
        until (trouve=true) or (debut>fin);
        if trouve=true then
        rech_dicho:=true
        else
        rech_dicho:=false;
        end;

        begin
        remplir (t,n);
        exist:=rech_dicho (t,n,e);
        if exist = true then begin
        write (e ,'existe dqns T');
        end
        else begin
        write (e ,'n"existe pas dans T');
        end;
        end.
        0
      2. Mizeuh > chetouani
         
        Svp Aidez Moi j vx un programme En Java qui suprime les elemnt double dans un tableau par exemple
        on a un tableau : 22233455677
        le 2eme tableau va aficher 234567 svp aidez moi
        0
    2. fassou
       
      voila, c la réponse de votre question:
      program recherche_dichotomique;
      uses wincrt;
      type vect=array [1..50] of integer;
      var n,e,i:integer;
      t:vect;
      exist:boolean;
      procedure remplir (var t:vect;var n:integer);
      var i:integer;
      begin
      repeat
      write ('taper un entier:'); readln (n);
      until n in [1..50];
      write ('t[',1,']='); readln (t[1]);
      for i:=2 to n do
      begin
      repeat
      write ('t[',i,']='); readln(t[i]);
      until t[i]>=t[i-1];
      end;
      write ('donner e:'); readln (e);
      end;
      function rech_dicho (var t:vect; var n,i:integer):boolean;
      var trouve:boolean;
      m,debut,fin:integer;
      begin
      debut := 1;
      fin:=n;
      trouve:=false;
      repeat
      m:=(debut+fin)div 2;
      if t [m]= e then begin
      trouve:= true;
      end
      else if t[m]<e then begin
      debut:= m+1;
      end
      else begin
      fin:=m-1;
      end;
      until (trouve=true) or (debut>fin);
      rech_dicho:=trouve; {sinon l'élément sera toujours existant dans le tableau}
      end;
      begin
      remplir (t,n);
      exist:=rech_dicho (t,n,e);
      if exist = true then
      writeln (e,' existe dqns T')
      else
      writeln (e,' n''existe pas dans T');
      end.
      0
  2. sousou
     
    salut je cherche la solutions d'une fonctions de recherche dichotimique dans un tableau trié
    merci pour vous
    0