Les Allergies
Alimentaires
Posez votre question Signaler

Tri d'un tableau en pascal

abir.1 21Messages postés 13 janvier 2008Date d'inscription - Dernière réponse le 7 avril 2009 à 23:43
Bonjour,
Bonjour, j'ai un probleme tres difficile , il m'enerve , et en plus aucun de mes colegues possede une solution
svp aidez moi pour resoudre le probleme suivant:
On veut ecrire un programme qui permet de remplir un tablea T par n enties positifs triés dans l'ordre crissant,
puis d'afficher les entiers manquant entre le premier et le dernier element de ce tablea.
example: si n=7 et si T est le tableau suivant:
5 6 8 9 10 12 15
le programme affichera: les entiers manquants sont 7,11,13,14
et MERCI d'avance....
s'il vous plais en lenguage pascal
Lire la suite 

Tri d'un tableau en pascal »

9 réponses
Réponse
+3
moins plus
le tableau est supposé etre trié
Ajouter un commentaire
Réponse
+3
moins plus
salut, j'ai un probléme, je veux savoir comment trier un tableau par selection par la méthode recursive
Ajouter un commentaire
Réponse
+2
moins plus
Il maque après la dernière lignes 2 end :

end;
end.
Ajouter un commentaire
Réponse
+2
moins plus
J'ai un probleme, je veux savoir comment l'ordi interprete un tableau en pascal lors d'un programme
Ajouter un commentaire
Réponse
+1
moins plus
Est ce que le tableau est supposé etre trié ou on va se charger de le trier ?
Ajouter un commentaire
Réponse
+1
moins plus
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;
fatma - 15 avril 2008 à 13:32
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.
Ajouter un commentaire
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,
suivant la logique du programme,quelles modifications dois je apporter pour la fusion de 2 tableaux?
Ajouter un commentaire
Ce document intitulé « tri d'un tableau en pascal » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?