Lycée Mahmoud EL Mesaadi
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

SOLUTION DCP3

Aller en bas

SOLUTION DCP3 Empty SOLUTION DCP3

Message par abdellaoui Sam 24 Avr - 12:45

affraid affraid pirat pirat
program recherche_dich;
uses wincrt;
type
tab= array [1..30] of char;
var
n,d,g:integer;
aux,v:char;

t:tab;
procedure saisie_n (var n:integer);
begin
randomize;
n:=5+random(16);
writeln('n=',n);
end;
procedure remplir_t (n:integer;var t:tab);
var
i:integer;
begin

for i:=1 to n do
begin
repeat
writeln('t[',i,']=');
readln(t[i]);
until (t[i] in ['A'..'Z']);
end;
end;
procedure affiche_t (n:integer;var t:tab);
var
i:integer;
begin
for i:=1 to n do
begin
write(t[i]:5);
end;
writeln;
writeln;
end;
procedure tri_b (n:integer;var t:tab);
var
i:integer;
trier:boolean;
aux:char;
begin

repeat
trier:=true;
for i:=1 to n-1 do
begin

if t[i] >t[i+1] then
begin
trier :=false;
aux:=t[i];
t[i]:=t[i+1];
t[i+1]:=aux;

end;
end;

until (trier=true);
end;
procedure saisie_v (var v:char);
begin
writeln('taper v = ');
read(v);
end;
function rech_dich (n:integer;var v:char;var t:tab):boolean;
var
i,d,g:integer;
existe:boolean;
begin
g:=1;
d:=n;
repeat
i:=(g+d) div 2;
if t[i]> v then
d:=i-1
else
g:= i+1;
until (t[i]=v) or (g>d);
if t[i]=v then
existe:=true
else
begin
existe:=false;
rech_dich:= existe;
end;
end;
begin
saisie_n ( n);
remplir_t (n,t);
affiche_t (n,t);
tri_b (n,t);
affiche_t (n,t);
saisie_v (v);
if rech_dich (n,v,t) then
writeln (v,' existe')
else
writeln (v,' n'' existe pas');
end.

abdellaoui
Prof
Prof

Messages : 22
Date d'inscription : 30/11/2009

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum