Tri d'un tableau en pascal
Fermé
abir.1
Messages postés
21
Date d'inscription
dimanche 13 janvier 2008
Statut
Membre
Dernière intervention
9 février 2008
-
13 janv. 2008 à 18:47
verano - 7 avril 2009 à 23:43
verano - 7 avril 2009 à 23:43
A voir également:
- Tri d'un tableau en pascal
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Turbo pascal download - Télécharger - Édition & Programmation
8 réponses
abir.1
Messages postés
21
Date d'inscription
dimanche 13 janvier 2008
Statut
Membre
Dernière intervention
9 février 2008
8
13 janv. 2008 à 19:05
13 janv. 2008 à 19:05
le tableau est supposé etre trié
salut, j'ai un probléme, je veux savoir comment trier un tableau par selection par la méthode recursive
Voici abir une solution sans tablo a 2 dimensions :
program ex;
uses wincrt;
var i,j,n,x,y:integer;
T:array[1..100] of integer;
BEGIN
repeat
write('n=');readln(n);
until (n>=2);
j:=1;
repeat
readln(T[j]);
until T[j]>=0;
for i:=2 to n do
begin
repeat
writeln('T[',i,']= ');readln(T[i]);
until (T[i]>=0) and (T[i]>T[j]);
j:=i;
end;
for i:=1 to n-1 do
begin
x:=T[i]; y:=T[i+1];
while x<>y-1 do
begin
write(x+1,' ');
x:=x+1;
end;
end;
END.
program ex;
uses wincrt;
var i,j,n,x,y:integer;
T:array[1..100] of integer;
BEGIN
repeat
write('n=');readln(n);
until (n>=2);
j:=1;
repeat
readln(T[j]);
until T[j]>=0;
for i:=2 to n do
begin
repeat
writeln('T[',i,']= ');readln(T[i]);
until (T[i]>=0) and (T[i]>T[j]);
j:=i;
end;
for i:=1 to n-1 do
begin
x:=T[i]; y:=T[i+1];
while x<>y-1 do
begin
write(x+1,' ');
x:=x+1;
end;
end;
END.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici le programme:
Program ex;
Uses wincrt;
Var A:array[1..dim] of integer;
dim,i,j:integer;
B:array[1..dim-1] of integer;
{un tableau dynamique}
C:Array[1..dim,1,dim-1] of integer;
Begin:
write('Donnez le nombre de cases dans le tableau');
read(dim);
for i:=1 to dim-1 do
begin
read(A[i]);
B[i]:=A[i+1]-A[i]-1; // on va determiner les espaces entre les cases
for j:=1 to B[i] do
begin
C[i,j]:=A[i]+j; // les nombres manquant entre la case A[i] et A[i+1]
write(C[i,j]); // afficher les résultats
end;
Program ex;
Uses wincrt;
Var A:array[1..dim] of integer;
dim,i,j:integer;
B:array[1..dim-1] of integer;
{un tableau dynamique}
C:Array[1..dim,1,dim-1] of integer;
Begin:
write('Donnez le nombre de cases dans le tableau');
read(dim);
for i:=1 to dim-1 do
begin
read(A[i]);
B[i]:=A[i+1]-A[i]-1; // on va determiner les espaces entre les cases
for j:=1 to B[i] do
begin
C[i,j]:=A[i]+j; // les nombres manquant entre la case A[i] et A[i+1]
write(C[i,j]); // afficher les résultats
end;
solution sans matrice :
program ex;
uses wincrt;
var i,j,n,x,y:integer;
T:array[1..100] of integer;
BEGIN
repeat
write('n=');readln(n);
until (n>=2);
j:=1;
repeat
readln(T[j]);
until T[j]>=0;
for i:=2 to n do
begin
repeat
writeln('T[',i,']= ');readln(T[i]);
until (T[i]>=0) and (T[i]>T[j]);
j:=i;
end;
for i:=1 to n-1 do
begin
x:=T[i]; y:=T[i+1];
while x<>y-1 do
begin
write(x+1,' ');
x:=x+1;
end;
end;
END.
program ex;
uses wincrt;
var i,j,n,x,y:integer;
T:array[1..100] of integer;
BEGIN
repeat
write('n=');readln(n);
until (n>=2);
j:=1;
repeat
readln(T[j]);
until T[j]>=0;
for i:=2 to n do
begin
repeat
writeln('T[',i,']= ');readln(T[i]);
until (T[i]>=0) and (T[i]>T[j]);
j:=i;
end;
for i:=1 to n-1 do
begin
x:=T[i]; y:=T[i+1];
while x<>y-1 do
begin
write(x+1,' ');
x:=x+1;
end;
end;
END.