Algorithme de recherche dichotomique
Résolu
                    
        
     
             
                    rafikadouni
    
        
    
                    Messages postés
            
                
     
             
            4
        
            
                                    Statut
            Membre
                    
                -
                                     
fassou -
        fassou -
        Bonjour,
salut je cherche tout informations sur le recherche dichotomique en algorithme svp
                
            
                
    
    
    
        salut je cherche tout informations sur le recherche dichotomique en algorithme svp
        A voir également:         
- Recherche dichotomique récursive c
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
 
    
    
    
    
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.
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.
on a un tableau : 22233455677
le 2eme tableau va aficher 234567 svp aidez moi
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.