Enregestrement et pascal
Fermé
hajemido
Messages postés
1
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
24 juillet 2008
-
24 juil. 2008 à 10:37
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 24 juil. 2008 à 12:33
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 24 juil. 2008 à 12:33
A voir également:
- Enregestrement et pascal
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev-pascal - Télécharger - Édition & Programmation
- Pascal le grand frere streaming ✓ - Forum Cinéma / Télé
- Algorithme triangle de pascal - Forum Pascal
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
24 juil. 2008 à 12:33
24 juil. 2008 à 12:33
Bonjour,
Grosse erreur sur la procedure Permut, qui prend (x,y) et renvoie (y,y) au lieu de (y,x) !
Grosse erreur sur la procedure maximum, qui calcule toujours indice=n !
Sinon quelques défauts ici ou là...
Remarques :
L'unité wincrt est inutile ici !
Il est inutile de déclarer t et n en variables globales puisque tu les passes à chaque fois en paramètres !
Pourquoi mettre n entre 2 et 26 et en même temps configurer tab pour aller jusqu'à 50 ?
De la façon dont est fait le tri, l'ordre est décroissant (voir ma note dans affiche)
Je me suis permis quelques amélioration de présentation...
Grosse erreur sur la procedure Permut, qui prend (x,y) et renvoie (y,y) au lieu de (y,x) !
Grosse erreur sur la procedure maximum, qui calcule toujours indice=n !
Sinon quelques défauts ici ou là...
Remarques :
L'unité wincrt est inutile ici !
Il est inutile de déclarer t et n en variables globales puisque tu les passes à chaque fois en paramètres !
Pourquoi mettre n entre 2 et 26 et en même temps configurer tab pour aller jusqu'à 50 ?
De la façon dont est fait le tri, l'ordre est décroissant (voir ma note dans affiche)
Je me suis permis quelques amélioration de présentation...
program ex; type livre=record nom_livre,nom_auteur :string; isbn:integer; end; tab=array[1..50] of livre; procedure saisie(var n:integer;var t:tab); var i:integer; begin repeat write('Entrer le nombre de cases : '); readln(n); writeln; until n in [2..26]; for i:=1 to n do begin with t[i] do begin write('Nom du livre....... '); readln(nom_livre); write('Nom de l''auteur.... '); readln(nom_auteur); write('Code ISBN.......... '); readln(isbn); writeln; end; end; end; procedure permut(var x,y:livre); var z:livre; begin z:=x; x:=y; y:=z; end; procedure maximum(i,n:integer;t:tab;var indice:integer); var j,max:integer; begin indice:=i; max:=t[i].isbn; for j:=i+1 to n do if t[j].isbn>max then begin indice:=j; max:=t[j].isbn; end; end; procedure tri(n:integer;var t:tab); var i,indice:integer; begin for i:=1 to n-1 do begin maximum(i,n,t,indice); if t[indice].isbn>t[i].isbn then permut(t[i],t[indice]); end; end; procedure affiche(n:integer;t:tab); var i:integer; begin for i:=1 to n do // affiche dans l'ordre décroissant {for i:=n downto 1 do} // affiche dans l'ordre croissant with t[i]do writeln(isbn,' ',nom_livre,' (',nom_auteur,')'); end; {programme principal} var n:integer; t:tab; begin saisie (n,t); tri(n,t); affiche(n,t); writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.Bonne continuation...