Algorithme de recherche dichotomique
Résolu
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
Configuration: Windows XP Internet Explorer 6.0
3 réponses
-
-
Tu peut aller sur le site du zero, à l'adresse: https://openclassrooms.com/fr/courses#ss_part_3 , ou à l'adresse https://openclassrooms.com/fr/courses
-
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. -
@yossratu 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. -
@chetouaniSvp 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.
-
-
-
salut je cherche la solutions d'une fonctions de recherche dichotimique dans un tableau trié
merci pour vous