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

 C++ Discussion :

Tri dans un tableau


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut Tri dans un tableau
    Bonjour,
    dans le cadre de la fac de maths-info, je dois apprendre à programmer en c++.
    Là, je dois faire un programme qui utilise les procédures permutation et recherche de minimum pour Trier un les éléments de manière croissante dans un tableau en une dimension.
    Donc voilà ce que j'ai fait (et qui ne marche évidement pas, mon chargé de td n'a pas réussi a trouver ce que j'ai foiré)

    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
     
    #include <iostream>
    using namespace std;
    const int TAILLE=100;
     
    void tabREMPLIR(int T[TAILLE], int tailleT)
    {
         int i;
         for(i=0; i<tailleT; i++){
                             cout<<"Donnez la valeur du tableau a l'indice "<<i<<endl;
                             cin>>T[i];
                             }
    }
     
    void tabPermute(int T[TAILLE], int a, int b)
    {
         int t;
         t=T[a];
         T[a]=T[b];
         T[b]=t;
    }
     
    void tabAff(int T[TAILLE], int tailleT)
    {
         int i;
         for(i=0;i<tailleT;i++){
                          cout<<T[i]<<" ";
                          }
    }
     
    void tabRechPosMin(int T[TAILLE], int tailleT, int&m, int debut, int&i1)
    {
        int j;
        m=T[debut];
        i1=debut;
        for(j=0;j<tailleT;j++){
                               if(T[j]<m){
                                          m=T[j];
                                          i1=j;
                                          }
                               }
    }
     
    void Trimin(int T[TAILLE], int tailleT)
    {
         int i, m, i1;
         for(i=0;i<tailleT;i++){
                                tabRechPosMin(T, tailleT-i, m, i, i1);
                                tabPermute(T, T[i], T[i1]);
                                }
         tabAff(T, tailleT);
    }
     
    int main()
    {
        int Tab[TAILLE], tailleT;
        cout<<"Combien d'elements dans le tableau ?"<<endl;
        cin>>tailleT;
        tabREMPLIR(Tab, tailleT);
        Trimin(Tab, tailleT);
        cout<<endl;
        system("PAUSE");
        return 0;
    }
    Voila, merci de bien vouloir m'aider

  2. #2
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    Bonjour hazaki,

    Si tu as le droit d'utiliser des fonctions préexistante standard. tu devrais utiliser la fonction std::sort.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    bool OrdreCroissant(int i, int j)
    {
        return (i < j) ;
    }
    sort(Tab, Tab+TAILLE, OrdreCroissant)
    Pour trouver le minimum, tu devrais utiliser la fonction min_element.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int minimum = min_element(Tab, Tab+TAILLE);
    Si tu n'a pas le droit de les utiliser, tu peux fortement t'en inspirer
    Homer J. Simpson


  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Rebonjour,
    Je dois juste utiliser les procédures permutation et Recherche de position minimum. Donc j'ai essayé de faire une troisième procédures mais elle marche pas. Si tu pouvais essayer de me corriger, ca m'aiderait plus.

  4. #4
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    J'ai du mal à comprendre ton code ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void tabRechPosMin(int T[TAILLE], int tailleT, int&m, int debut, int&i1)
    {
        int j;
        m=T[debut];
        i1=debut;
        for(j=0;j<tailleT;j++){
                               if(T[j]<m){
                                          m=T[j];
                                          i1=j;
                                          }
                               }
    }


    Que sont les paramètres m, debut et i1?
    Homer J. Simpson


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    m, c'est la valeur minimal
    début, c'est la variable qui définit à quel indice commence la recherche du minimum.
    i1 est l'indice de l'element minimum

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonsoir,

    j'ai regardé un rapide coup d'oeil mais il me semble que l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tabPermute(T, T[i], T[i1]);
    devrait être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tabPermute(T, i, i1);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    C'etait ça, merci pour l'aide

Discussions similaires

  1. Tri dans un tableau à deux dimensions
    Par Neuromancien2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/08/2007, 12h59
  2. Tri dans un tableau
    Par MegaNam dans le forum Fortran
    Réponses: 5
    Dernier message: 22/03/2007, 14h43
  3. [Tableaux] question recherche et tri dans un tableau
    Par nicopoal dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2007, 16h41
  4. [Tableaux] Tri dans un tableau
    Par ssebuser dans le forum Langage
    Réponses: 11
    Dernier message: 12/12/2006, 20h29
  5. Tri dans un tableau et indices
    Par size_one_1 dans le forum C
    Réponses: 10
    Dernier message: 16/05/2006, 00h17

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