A voir également:
- Trier une liste chainée en c
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Application gratuite pour trier les photos - Guide
2 réponses
salut
voici mon prog et j'ai 1 prblm ds ce prog,ds la procedure d'affichage (il fait l'inverse) je ne sais pas ou est le probléme, et pour le tri aussi (je ne sais pas exactement ou est le probléme),svp aidez moi j'ai besoin de ce program urgent
un grand MERCI.
program liste_chainee;
uses wincrt;
type ptrElem= ^Element;
Element= record
mot:string[20];
suivant:ptrElem;
end;
var f:text;
liste,liste2:ptrElem;
procedure insertion_tete(var f:text);
var i,n:integer;
nom:string;
mot:string[20];
begin
writeln (' combien de mots que vous voulez entrer:');
readln(n);
writeln(' Entrer le nom de ce fichier:');
readln(nom);
assign (f,nom);
rewrite(f);
writeln(' entrer les mots: ');
i:=0;
repeat
begin
readln(mot);
writeln(f,mot);
i:=i+1;
end;
until i=n;
close(f);
end;
procedure inserer_liste(var listeC:ptrElem);
var elem:ptrElem;
n,i:integer; mot:string;
begin
reset (f);
elem:=nil;
REPEAT
begin
new(listec);
readln(f,mot);
listec^.mot:=mot;
listec^.suivant:=elem;
elem:=listec;
end;
UNTIL eof(f);close(f);
end;
procedure Affichage (var listeA:ptrElem);
var elem:ptrElem; mot:string;
begin
elem:=listeA;
write (' inversement l`ordre de la liste : ');
while( elem<>nil) do
begin
write('',elem^.mot,'');
elem:=elem^.suivant;
end;
end;
PROCEDURE recherche(var l:ptrelem);
var p:ptrelem;b:boolean;motE:string;
begin
write (' entrer mot,por le trouver ou non : ');
p:=l;
b:=false;
read (motE);
while (p<>nil) and( b=false) do
begin
if p^.mot =motE then BEGIN b:=true ;writeln(' ce mot existe dans la liste'); END
else
begiN
p:=p^.suivant;
end;
end;
end;
procedure tri (l1:ptrelem);
var t:string ; n,i:integer;
echange:boolean;
begin
echange:=true;
writeln (' combien de mot que vous avez entrer:');
readln (n);
while echange =true do
begin
for i:=0 to n-2 do
begin
if (l1^.mot)>(l1^.suivant^.mot) then
begin
write ('******************');
t:=l1^.mot;
l1^.mot:=l1^.suivant^.mot;
l1^.suivant^.mot:=t;
end;
l1:=l1^.suivant;
writeln (l1^.mot);
end;
echange:=false;
end;
end;
begin
insertion_tete(f);
inserer_liste(liste);
Affichage(liste);
recherche(liste);
tri(liste);
end.
voici mon prog et j'ai 1 prblm ds ce prog,ds la procedure d'affichage (il fait l'inverse) je ne sais pas ou est le probléme, et pour le tri aussi (je ne sais pas exactement ou est le probléme),svp aidez moi j'ai besoin de ce program urgent
un grand MERCI.
program liste_chainee;
uses wincrt;
type ptrElem= ^Element;
Element= record
mot:string[20];
suivant:ptrElem;
end;
var f:text;
liste,liste2:ptrElem;
procedure insertion_tete(var f:text);
var i,n:integer;
nom:string;
mot:string[20];
begin
writeln (' combien de mots que vous voulez entrer:');
readln(n);
writeln(' Entrer le nom de ce fichier:');
readln(nom);
assign (f,nom);
rewrite(f);
writeln(' entrer les mots: ');
i:=0;
repeat
begin
readln(mot);
writeln(f,mot);
i:=i+1;
end;
until i=n;
close(f);
end;
procedure inserer_liste(var listeC:ptrElem);
var elem:ptrElem;
n,i:integer; mot:string;
begin
reset (f);
elem:=nil;
REPEAT
begin
new(listec);
readln(f,mot);
listec^.mot:=mot;
listec^.suivant:=elem;
elem:=listec;
end;
UNTIL eof(f);close(f);
end;
procedure Affichage (var listeA:ptrElem);
var elem:ptrElem; mot:string;
begin
elem:=listeA;
write (' inversement l`ordre de la liste : ');
while( elem<>nil) do
begin
write('',elem^.mot,'');
elem:=elem^.suivant;
end;
end;
PROCEDURE recherche(var l:ptrelem);
var p:ptrelem;b:boolean;motE:string;
begin
write (' entrer mot,por le trouver ou non : ');
p:=l;
b:=false;
read (motE);
while (p<>nil) and( b=false) do
begin
if p^.mot =motE then BEGIN b:=true ;writeln(' ce mot existe dans la liste'); END
else
begiN
p:=p^.suivant;
end;
end;
end;
procedure tri (l1:ptrelem);
var t:string ; n,i:integer;
echange:boolean;
begin
echange:=true;
writeln (' combien de mot que vous avez entrer:');
readln (n);
while echange =true do
begin
for i:=0 to n-2 do
begin
if (l1^.mot)>(l1^.suivant^.mot) then
begin
write ('******************');
t:=l1^.mot;
l1^.mot:=l1^.suivant^.mot;
l1^.suivant^.mot:=t;
end;
l1:=l1^.suivant;
writeln (l1^.mot);
end;
echange:=false;
end;
end;
begin
insertion_tete(f);
inserer_liste(liste);
Affichage(liste);
recherche(liste);
tri(liste);
end.