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