Ordre alphabetique pascal

Fermé
hamidas15 Messages postés 28 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 7 avril 2013 - 23 juil. 2008 à 02:04
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 26 juil. 2008 à 20:11
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.

3 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
23 juil. 2008 à 16:09
Il 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...
0
hamidas15 Messages postés 28 Date d'inscription vendredi 2 mai 2008 Statut Membre Dernière intervention 7 avril 2013
26 juil. 2008 à 17:29
C'est 1 fichier d'elements, type record, et les produits ne depassent pas la dizaine. merci.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juil. 2008 à 20:11
À 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 
0