Algorithme de recherche dichotomique [Résolu/Fermé]

rafikadouni 4 Messages postés dimanche 2 décembre 2007Date d'inscription 30 mai 2008 Dernière intervention - 6 mai 2008 à 00:58 - Dernière réponse :  fassou
- 25 avril 2010 à 22:41
Bonjour,
salut je cherche tout informations sur le recherche dichotomique en algorithme svp
Afficher la suite 

8 réponses

mamiemando 28092 Messages postés jeudi 12 mai 2005Date d'inscriptionContributeurStatut 13 décembre 2017 Dernière intervention - 5 juin 2008 à 15:41
+2
Utile
5
Je n'ai pas compris ta question. As-tu lu le lien ci-dessus ?
Cette réponse vous a-t-elle aidé ?  
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.
chetouani > yossra - 5 mai 2009 à 11:06
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.
Mizeuh > chetouani - 4 févr. 2010 à 22:16
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
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.
mamiemando 28092 Messages postés jeudi 12 mai 2005Date d'inscriptionContributeurStatut 13 décembre 2017 Dernière intervention - 6 mai 2008 à 01:47
0
Utile
Google t'aurait directement donné :
http://fr.wikipedia.org/wiki/Dichotomie

Bonne chance
0
Utile
salut je cherche la solutions d'une fonctions de recherche dichotimique dans un tableau trié
merci pour vous