Ordre alphabetique pascal

hamidas15 Messages postés 33 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. hamidas15 Messages postés 33 Statut Membre
     
    C'est 1 fichier d'elements, type record, et les produits ne depassent pas la dizaine. merci.
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    À 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