Exercice pascal"trie"

abdel2007 Messages postés 34 Statut Membre -  
 hayet -
Bonjour,
je veux trie un tableau d'entiers de 20 par exemple pettent m'expliquer comment faire ou je peut trouver sur internet la solution
Configuration: Windows XP
Internet Explorer 6.0

38 réponses

  • 1
  • 2
Résumé de la discussion

On cherche à trier un tableau de 20 entiers et à identifier des méthodes pratiques pour obtenir un ordre croissant ou décroissant, en s'appuyant sur des exemples concrets.
Plusieurs solutions y sont évoquées, notamment le tri à bulle, le tri par insertion et le tri par sélection, avec des exemples en Pascal et des variantes simplifiées.
Des extraits de code illustrent ces approches, des procédures en Pascal pour chaque méthode et des indications sur le rangement des éléments et les échanges entre positions.
En cas de petites tailles comme vingt éléments, le choix peut privilégier la simplicité ou la clarté du code plutôt que l'optimisation pure, car les gains de complexité ne justifient pas toujours l'effort.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. king_taba Messages postés 1 Statut Membre 10
     
    ona trois types d'algorithmes de trie par sélection ,par insertion ou a bull
    procedure trie_par_selection(var t:tab ; n:integer);
    var
    i,j,y,m:integer;
    begin
    for i := 1 to n-1 do
    begin
    m:=i;

    for j := i to n do
    begin
    if t[j]<t[m] then
    begin
    y:=t[i];
    t[i]:=t[m];
    t[m]:=y;
    end;
    end;

    end;
    end;
    10
    1. dadou
       
      j'ai rien compris!!!!!!!!!!!!!!!!
      0
    2. hayet
       
      c'est trés bon
      0
  2. AMOULA_info Messages postés 3 Statut Membre 9
     
    bonjour abdel2007
    il existe plusieurs methode pour le tri d'un tableau ( à bulle, par insertion par selection ....)
    voila la methode de tri à bulle en pascal
    procedure tri(var t: vecteur; n : integer);
    var e: boolean;
    i,z: integer;
    begin
    repeat
    e:= false;
    for i := 1 to n-1 do
    if t[i]>t[i+1] then
    begin
    z:=t[i];
    t[i]:=t[i+1];
    t[i+1]:=t[i];
    e:= true;
    end;
    until e = false;
    end;
    8
    1. Rageo
       
      salut merci pour l'exercice de tri.je suis un etudiant en premiere année de genie informatique à l'université de bangui.j'ai un exercice de programation en turbo pascal :ecrire un programe qui consiste à trier les voyelles d'un mot entré au clavier.pouvez vous m'envoyer la reponse à mon email? Laouletgerard@yahoo.fr
      0
    2. FIRAS_!nfO
       
      on peu le faire sans booléen


      procedure tri(var t: vecteur; n : integer);
      var
      i,z,e: integer;
      begin
      repeat
      e:= 0;
      for i := 1 to n-1 do
      if t[i]>t[i+1] then
      begin
      z:=t[i];
      t[i]:=t[i+1];
      t[i+1]:=t[i];
      e:= 1;
      end;
      until e = 0;
      end;



      ;)
      0
    3. slapdown
       
      salut, je m'appelle sabri et je suis en 2eme année technologie de l'informatique
      0
    4. info
       
      le code est bien écrit sauf pour la permutation t[i+1]:=z;
      0
  3. informatique4_taba Messages postés 17 Statut Membre 45
     
    on peut trier un tableau de 20 elements:par la methode de tri par selection.
    algrithme suivant
    program tri_selection;
    uses wincrt;
    type
    tab=array [1..20]of integer;
    var
    {declararation des objets globeaux}
    procedure saisie(t,n)
    procedure tri(t:tab,n:integer);
    var
    i:integer;
    for i:=2 to n do
    if t[1]<t[i] then
    t[1]:=t[i];
    end;
    procedure affichage(t,n);
    4
  4. informatique4_taba Messages postés 17 Statut Membre 45
     
    on utikise la methode de trie à bulle on compare le premier element avec le suivant et si le deuxieme est superieure au premier on affecte la permutation en fesant l'appel au fonction permuter.
    Selmi Rochdi
    2
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hardouz Messages postés 196 Date d'inscription   Statut Membre Dernière intervention   2
     
    Bonjour;
    Pour tier un tableau de 20 entiers on a plusieurs methode de tries dont on peut cité le trie par insertion le trie a bulle le trie par selection , shell ...
    Exemple ;
    on va esseyer de faire un algorithme de trie croissant ensemble pour cela ehhh... on va chercher le plus petit element dans le tableau on le placent dans la premiére case et jetter la valeur de la premiére case du tableau dans celle dont on va permutter ... Mais il ya un probléme non ? si on met la valeur minimale dans la premiére cette derniére elle s'ecrase !!!! alors on doit la stocker dans une variable :)
    alors on resume !

    0/parcour du tableau de 1 a la case n
    1/on cherche la valeur minimale ( le plus petit element dans le tableau ) {avec determination d'indice}
    3/on le stoque dans une variable X
    4/ on permute cette valeur avec la premiére case
    {x<---T[min]
    T[min]<---T[i]
    T[min]<---x}
    5/FIN

    Pour un truc recursive il suffit de repeter la meme chose en cherchon le minumum a chaque foix il se stoque dans les registre du processeur virtuellement a la du trie la fonction reprend elle meme les valeur stoquer dans le registre et alors il suffit de réinitialiser les cases de ton tableau !

    Exemple ;
    soit le principe est que la fonction récursive scinde le tableau en 2 et pour chaque partie appelle de nouveau le tri récursif, la condition d'arrêt survient quand le dernier élément est < ou = au premier.
    Dans un premier temps on range le tableau de telle sorte que tous les éléments inférieurs à l'élément d'indice pivot se trouvent placés à la gauche de celui-ci et donc tous les éléments supérieurs à sa droite.Ensuite on appelle à nouveau (récursivement) la procédure MahdyTrie pour chacun des deux sous-tableaux.
    Et d'aprés les procedures precedentes je pense que c'est suffisant !
    pour plus d'informations tu peut consulter les sites suivant
    https://pascal.developpez.com/cours/cyberzoide/chap21.php3
    http://lwh.free.fr/pages/prog/logo/logo.htm {conceillé}
    vous pourrez trouver d'autres informations intéressantes à l'adresse http://Olivier.sc.free.fr/
    et bonne programmation
    Ciao Mahdy :)
    2
  7. informatique4_taba Messages postés 17 Statut Membre 45
     
    procedure trie_par_selection(var t:tab ; n:integer);
    var
    i,j,y,m:integer;
    begin
    for i := 1 to n-1 do
    begin
    m:=i;

    for j := i to n do
    begin
    if t[j]<t[m] then
    begin
    y:=t[i];
    t[i]:=t[m];
    t[m]:=y;
    end;
    end;

    end;
    end;

    {Ahmed Saidi 4SI}
    1
  8. informatique4_taba Messages postés 17 Statut Membre 45
     
    on utilise le methode trie abule on compare le premie par le deusime et on faire la permutation
    1
  9. abdel2007 Messages postés 34 Statut Membre 3
     
    merci mais je cherche des solutions avancer on a depaser en cours les traitement iterative et en cherche des solution recursif des programme qui s'appelle elle meme.
    1
  10. informatique4_taba Messages postés 17 Statut Membre 45
     
    {saidi meryem :je souhaite que ma solution est correcte n'est ce pas?????????????, }
    { la solution:}
    k:=t[1];
    { pour i de 1 a 20 faire
    begin
    if t[i]<k then
    permut (k,t[i]);

    }

    { mais non je sais que je ne trouve pas la solution maintenant et je veus chercher autre fois}
    *****merci *****
    ***********merci ***************
    1
  11. informatique4_taba Messages postés 17 Statut Membre 45
     
    program exercice;
    uses wincrt;
    type
    tab=array[1..20]of integer;
    var
    t:tab;
    n:integer;
    procedure saisie(var n:integer);
    begin
    repeat
    read(n)
    until(n >20);
    end;
    procedure trie (var t;tab;n:integer)
    var
    i:integer;
    begin
    for i:=1 to n-1 do
    begin
    if t[i+1]>t[i] then
    begin
    permiter (t[i],t[i+1]);
    end;
    end;

    begin
    saisie(n);
    trie(t,n);
    permeter(t,n);
    end.
    1
    1. Royal88
       
      pouvez_vous m'aider à resoudre ces problemes svp et merci d'avance:

      ex1

      ecrire un programme qui permet de trier par ordre décroissant les éléments d'un tableau Ade n entiers positifs dans un nouveau tableau Bde meme dimension :1-rchercher le maximum de A ,puis , placer ce maximum dans B, ensuite remplacer le maximum par -1

      ex2

      soit le tableau T1 contenant n lettre majuscule (de A à Z), n étant un entier compris entre 5 et 20
      * on désire trier en ordre croissant les éléments de T1 et les ranger dans un tableau T2, 1- chercher la lettre qui a le petit cod ASCII dans T1,et ranger cette lettre dans T2, ensuite remplacer cette lettre par '*' dans T1:
      ecrire un prgramme qui permet de : *saisir les éléments T1
      *trier les éléments deT1 et les ranger dans T2
      *afficher les éléments de T2
      0
  12. 'randa'_taba Messages postés 1 Statut Membre 1
     
    on a plusiers type de tri tel que :tri a bille,insertion,selection...
    par exemple on utilise le tri a bulle:
    procedure bulle(var t:tab;n:integer);
    var
    i:integer;
    repeat
    k:=false;
    for i:=1 to n-1 do ;
    if t[i]>t[i+1] then
    t[i]:=t[i+1];
    t[i+1]:=t[i];
    until(k=true) and(i>=n);
    end;
    1
  13. ahm_taba Messages postés 2 Statut Membre 1
     
    on peut trier le tableau du minimum au maximum ou inversement on utilison une methode de trie comme par exemple le trie a bulle explication de cette methode:
    on doit comparer le premier element par le deuxième si le premier et inferieure au deuxième on appelle une procedure permuter les deux élément et répète ce traitement jusqu'a avoir un tableau trié.
    procedure trie (var t:tab,n:integer);
    var
    i:integer;
    begin
    for i:=1 to n do
    begin
    repeat
    k:=false;
    if t[i]<t[i+1] then
    begin
    procedure permuter (t[i],t[i+1]);
    until
    k:=true;
    end;
    1
  14. AMOULA_info Messages postés 3 Statut Membre 9
     
    Salut
    voila une methode recursive de tri par selection
    procedure permuter( var x, y : integer);
    var z : integer;
    begin
    z:=x;
    x:=y;
    y:=z;
    end;

    function posmin ( t: vect; d,f : integer): integer;
    var pm : integer;
    begin
    if d= f then posmin := d
    else
    begin
    pm := posmin(t,d+1,f);
    if t[d]<t[pm] then posmin:= d
    else posmin:=pm;
    end;
    end;

    procedure trier ( var t : vect; d,f: integer);
    var pm : integer;
    begin
    if d<>f then
    begin
    pm := posmin(t,d,f);
    if d<>pm then permuter(t[d],t[pm]);
    trier(t,d+1,f);
    end;
    end;
    1
  15. informatique4_taba Messages postés 17 Statut Membre 45
     
    on peut faire le trie d'un tableau selon plusieurs methode : trie par insertion , trie à bulle, trie par selection ,trie à shell
    le plus simple c'est le trie à bulle
    procedure bulle (var t:tab;n:integer);
    var
    k: boolean;
    i,r:integer;
    begin
    repeat
    r:=false;
    for i:= 1 to n-1 do
    begin
    if t[i]>t[i+1] then
    begin
    k:=t[i];
    t[i]:=t[i+1};
    t[i+1]:=t[i];
    k:=true;
    end;
    until(k=false);
    end;
    0
  16. informatique4_taba Messages postés 17 Statut Membre 45
     
    on peut le trier par l'Analyse suivante:

    pour i de 1 à n faire
    si t[i+1]>t[i] alors
    permuter(t[i],t[i+1]
    fin si
    fin pour
    0
  17. abdel2007 Messages postés 34 Statut Membre 3
     
    je veux avoir d'autre de tri avancer oui je connaus les solution iterative comme la selction ou bull tu peu m'aider à une solution recurssiev pour le tri par selection
    0
  18. informatique4_taba Messages postés 17 Statut Membre 45
     
    on peut realiser le tri d'un tableau par plusieurs méthodes citons le tri à bulle, le tri par selection, le tri par insertion, le tri à shell...
    voici une simple methode: vous pouvez affecter la recherche du maximum de ce tableau , le stocker dans un nouveau tableau puis effacer cet élément du premier tableau et ainsi de suite.

    {MK 4SI_taba}
    0
    1. 209840
       
      j ai besoin de votre aide stp envoie moi ton adresse email
      0
    2. Utilisateur anonyme
       
      j ai besoin de votre aide stp envoie moi ton adresse email
      0
  19. 'rim'_taba Messages postés 2 Statut Membre
     
    Hi;
    sorry i don't know it .
    0
    1. 23232
       
      212121
      0
  20. ahm_taba Messages postés 2 Statut Membre 1
     
    salu Ms Adel
    bon pour les programme de tries qui utilisent des methodes recursives, je suis en cour de recherche une methode lorsque je la trouve j'vai l'ecrire mais pour le moment vous pouvez consultez www.developper.com
    0
  21. hajersoumri_taba Messages postés 1 Statut Membre
     
    procedure trie (t:tab;n:integer);
    var
    i:integer;
    begin
    for i := 1 to n-1 do
    begin
    if t[i] >t[i+1]then
    begin
    y:=t[i];
    t[i]:=t[i+1];
    t[i+1]:=y;
    end;
    end;
    0
  • 1
  • 2