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

Algorithmes et structures de données Discussion :

Trier un tableau en utilisant les procédures


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 22
    Points
    22
    Par défaut Trier un tableau en utilisant les procédures
    Bonjour à tous,

    Je dois faire un algorithme en utilisant les procédures et qui permet de :

    1. remplir un vecteur de 20 éléments ;
    2. afficher les éléments du vecteur ;
    3. trier la liste dans l'orde croissant ;
    4. afficher les éléments du tableau ;
    5. trier le vecteur dans l'orde décroissant ;
    6. afficher les élèments du tableau.


    Mon essai :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    debut
        remplissage
        affichage
        triec
        affichage
        trid
        affichage
    fin
     
    var
    tab(20) entier
    i,j entier
     
    debut
     
    procedure remplissage
    pour i = 1 à 19
         pour j = 1 to 19
             ecrire j
                 ecrire i
           fin pour
      fin pour
     
    fin
     
    procedure affichage
    pour i = 1 à 19
         pour j = 1 à 19
             lire j
                lire i
           fin pour j
      fin pour i
     
    procedure permute
      var
    p:Entier
    debut
    p=t(i)
    t(i)=t(j)
    t(j)=p
    fin
     
    procedure tric
    debut
        pour i=1 à 19
           pour j= 1 à 19
               SI T(i)>t(j) alors
                    permute
           fin pour j
        fin pour i
    fin
     
    procedure affichage
        pour i=1 à 19
           pour j= 1 à 19
               ecrire t(i)
               ecrie t(j)
           fin pour j
        fin pour i
    fin
     
    procedure tried
      debut
        pour i=1 à 19
           pour j= 1 à 19
               SI T(i)>t(j) alors
                    permute
           fin pour j
        fin pour i
    fin
    procedure affichage
     pour i=1 à 19
           pour j= 1 à 19
               ecrire t(i)
               ecrie t(j)
           fin pour j
        fin pour i
    fin
    j'espère que c'est comme ça.

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    J'ai peur qu'il y ait de nombreuses erreurs.

    Un vecteur est un tableau 1D, la plupart de tes algos sont réalisés à l'aide de deux boucles pour imbriqués, ce qui dans pas mal de cas ne sert à rien.

    Essais de procéder en plusieurs étapes (pas forcément dans l'ordre):

    -> Ecris les fonctions une par une, au lieu de tout écrire. Et demande une correction pour chacune d'entre elle.
    -> Penses à n'utiliser qu'une boucle pour (sauf dans certains algos)
    -> Penses le plus simplement possible.
    -> Prends un papier et un crayon et essaie de "dérouler" les algorithmes à la main pour voir ce qui se passe et si tu n'as pas fait d'erreur (il peut toujours en subsister aux bornes des algorithmes mais c'est après que tu verras ça).

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut c'est un tableau a 1d est n'est pas une matrice
    vous avez utilise ici 2compteur i, j et aussi 2boucle imbrique ici on utilise un seul compteur i et une seul boucle
    1-on demande le nombre d'element a remplir
    2-on utilise une boucle pour i de 1 a 20 a titre d'exemple
    3-apres on doit faire une boucle pour affichage de 1 a20 on ajoutant au compteur i:=i+1
    4-ici on utilise une variable deja declare exemple ptoc pour faire une condition et comparaison avec si: si t[i]<= ptoc alors ptoc:= t[i] c'est adir si l'ocurence de t[i] est petit que cel de ptoc alors ptoc reçois cette ocurence est c de suite on avançant ds le vecteur par i:=i+1 jusqua la fin
    5-on affichera on utilisant la meme boucle pour i de1 a20 faire, ecrire t[i],...
    6- on utilise la meme chose comme on n°4 sauf on change notre condition de < = le petit ou egal vers l'autre le plus grand
    7- on affichera comme on n°5

Discussions similaires

  1. [Tableaux] Trier un tableau en gardant les associations
    Par benja507 dans le forum Langage
    Réponses: 5
    Dernier message: 22/10/2008, 11h42
  2. Réponses: 1
    Dernier message: 13/03/2008, 17h56
  3. Réponses: 8
    Dernier message: 27/09/2007, 08h58
  4. Réponses: 5
    Dernier message: 02/04/2007, 17h49
  5. Comment trier un tableau, et repérer les doublon?
    Par danje dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 18h45

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