Bac sciences de l'informatique : algorithme

Fermé
coucou_hb21 Messages postés 33 Date d'inscription lundi 8 octobre 2007 Statut Membre Dernière intervention 21 janvier 2008 - 4 nov. 2007 à 18:13
 azouzi - 31 janv. 2008 à 12:54
[ bac sciences de l'informatique ] algorithme
A voir également:

17 réponses

voila quelque méthode de trie en pascal
tri insert1Program triinsertion1;
uses wincrt;
type tab=array[1..20]of integer;
var n:integer;
t:tab;

procedure lecture(var n:integer);
begin
write('N = ');readln(n);
if not(n in[1..20]) then lecture(n);
end;
procedure remplir(k,n:integer; var t:tab);
begin
if k<=n then begin
t[k]:=random(21);
remplir(k+1,n,t);
end;
end;
procedure affiche(k,n:integer; t:tab);
begin
if k<=n then begin
write(t[k]:3); 
affiche(k+1,n,t);
end;
end;
procedure tri(n:integer; var t:tab);
var j,x,i:integer;
begin
for i:=2 to n do
begin
X:=t[i];
j:=i;
while(x<t[j-1]) and (j>1) do
begin
t[j]:=t[j-1];
j:=j-1;
end;
IF j<i then t[j]:=x;
end;
end;
begin
lecture(n);
randomize;
remplir(1,n,t);
affiche(1,n,t);writeln;
tri(n,t);
affiche(1,n,t);
end.

tri insertion 2
Program triinsertion1;
uses wincrt;
type tab=array[1..20]of integer;
var n:integer;
t:tab;

procedure lecture(var n:integer);
begin
write('N = ');readln(n);
if not(n in[1..20]) then lecture(n);
end;
procedure remplir(k,n:integer; var t:tab);
begin
if k<=n then begin
t[k]:=random(21);
remplir(k+1,n,t);
end;
end;
procedure affiche(k,n:integer; t:tab);
begin
if k<=n then begin
write(t[k]:3);
affiche(k+1,n,t);
end;
end;



procedure tri(n:integer; var t:tab);
var p,x,i:integer;
procedure decaler(var t:tab; k:integer; var p:integer);
begin
p:=k;
while (p>0) and (t[p]>x) do begin
t[p+1]:=t[p]; p:=p-1;
end;
end;
begin
for i:=2 to n do
if t[i]<t[i-1] then begin
x:=t[i];
decaler(t,i-1,p);
t[p+1]:=x;
end;
end;
begin
lecture(n);
randomize;
remplir(1,n,t);
affiche(1,n,t);writeln;
tri(n,t);
affiche(1,n,t);
end.
33