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

  1. Modérateur
    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
    1. C'est 1 fichier d'elements, type record, et les produits ne depassent pas la dizaine. merci.
      0
      1. 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 
        0