Ordre alphabetique pascal
Bonjour, je cherche la procedure qui permet de trier par ordre alphabetique les produits d'une boutique, ce sont des enregistrement constitués de nom, code, prix unitaire et quantité. aidez moi svp.
Configuration: Windows visat Internet Explorer 7.0
3 réponses
-
ModérateurIl existe plein d'algorithmes de tri, plus ou moins efficace,s et surtout plus ou moins compliqués à écrire...
Dans ton cas, que faut-il trier ? un fichier d'éléments ? un tableau d'éléments ?
Tant que tu y es précise nous aussi le type de tes produits que tu utilise (type produit=record...)
Et dis nous aussi s'il s'agit d'un tri sur beaucoup d'éléments (>1000) ou juste quelques uns pour tester... -
C'est 1 fichier d'elements, type record, et les produits ne depassent pas la dizaine. merci.
-
ModérateurÀ vrai dire j'attendais un type record un peu plus détaillé enfin tant pis, on va faire sans...
type produit=record nom:string; code,quantite:integer; prix:real; end; fichier=file of produit; function Minimum(var f:fichier;i:integer):integer; var min,aux:produit; begin seek(f,i); result:=i; read(f,min); while not eof(f) do begin read(f,aux); if aux.nom<min.nom then begin min:=aux; result:=filepos(f)-1; end; end; end; procedure Permuter(var f:fichier;i,m:integer); var aux1,aux2:produit; // le même type que produit.nom begin seek(f,i); read(f,aux1); seek(f,m); read(f,aux2); seek(f,m); write(f,aux1); seek(f,i); write(f,aux2); end; procedure Tri(var f:Fichier); var i:integer; begin for i:=0 to filesize(f)-1 do Permuter(f,i,Minimum(f,i)); end; var f:fichier; p:produit; begin assign(f,'D:\KX\hamidas15.ini'); rewrite(f); p.nom:='EFGH'; p.code:=12; p.quantite:=12; p.prix:=1.2; write(f,p); p.nom:='MNOP'; p.code:=34; p.quantite:=34; p.prix:=3.4; write(f,p); p.nom:='IJKL'; p.code:=56; p.quantite:=56; p.prix:=5.6; write(f,p); p.nom:='ABCD'; p.code:=78; p.quantite:=78; p.prix:=7.8; write(f,p); Tri(f); seek(f,0); read(f,p); writeln(p.nom); read(f,p); writeln(p.nom); read(f,p); writeln(p.nom); read(f,p); writeln(p.nom); close(f); writeln; write('Fin du programme. Appuyer sur Entree'); readln; end.--
La confiance n'exclut pas le contrôle