IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Tri des valeurs d'un tableau en ordre croissant


Sujet :

Ada

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 76
    Points : 33
    Points
    33
    Par défaut Tri des valeurs d'un tableau en ordre croissant
    bonjour, j'ai un probleme avec une procedure ou je dois trier les valeurs d'un tableau en ordre croissant
    Voici ce que j'ai fait mais ca m'efface toutes les valeurs de mon tableau


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
       PROCEDURE Tri11 (Stocks_Lus : IN OUT T_Tableau) IS
          -- précondition: Au moins deux éléments dans le tableau
          -- postcondition:  Trie le tableau selon un critere donné en ordre croissant ou décroissant
     
       J,X,k:Integer;
     
     
    begin 
    k := 1;
    while stocks_lus(k).num /= -1 loop 
    k:= k+1; 
    end loop;
           for I in 2..k loop
             x := stocks_lus(i).num;
             j := i-1;
               while j>0 and then stocks_lus(j).num>x loop
                Stocks_Lus(J+1).Num := Stocks_Lus(J).Num;
                 j := j-1;
               end loop;
             stocks_lus(j+1).num := x;
          end loop;
    end tri11;

    PS: stocks_lus(i).num le tableau a trié et la fin du tableau est signalé quand stocks_lus(i).num = -1

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Je te fournis un algorithme de tri, mais il n'est pas très performant. Si les performances sont importantes pour toi, et si tu as besoin d'un tri sur un tableau de grande taille, je te conseillerai de chercher un autre algorithme. Mais celui-ci à le mérite d'être très simple. N'ayant pas le type de ton tableau, j'ai supposé qu'il s'agissait d'Integer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
       type T_Table is array (1 .. 100) of Integer;
     
       procedure Tri (Table : in out T_Table) is
          Tmp : Integer := 0;
       begin
          for I in Table'Range loop
             for J in I + 1 .. Table'Last loop
                if Table (I) > Table (J) then
                   Tmp := Table (I);
                   Table (I) := Table (J);
                   Table (J) := Tmp;
                end if;
             end loop;
          end loop;
       end Tri;

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. Trier par ordre croissant des valeurs dans un tableau
    Par ftrap dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/06/2013, 10h35
  3. [PHP 5.2] [Tableaux] Tri naturel des valeurs d'un tableau
    Par Riko63 dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2009, 08h14
  4. Tri des valeurs dans un tableau
    Par kikiarch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2007, 07h46
  5. Réponses: 5
    Dernier message: 10/08/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo