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

Langage C++ Discussion :

Pseudo-code vers un code réel


Sujet :

Langage C++

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut Pseudo-code vers un code réel
    Bonjour,

    Je dois traduire cela en code, je l'ai fait mais je ne suis pas sûr du résultat. Pourriez-vous m'aider svp? Merci

    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
     fonction TriInsertion(elements < a0, ..., an−1 >) retourner rien, on trie le tableau
    pour i = 1 `a n − 1 faire
    elementCourant = elements[i]
    j = i - 1
    tant que j >= 0 et elementCourant < elements[j] faire
    elements[j + 1] = elements[j]
    j = j − 1
    fin tant que
    elements[j + 1] = elementCourant
    fin pour
    fin fonction
     
     
        void trier() 
        {
            int temp;
            int j = 0;
             int n = 0;
              int tab[];
                for(int i=0; i<n-1; i++)
            {
                temp = tab[i];
                j = i-1;
                while(j>=0 && temp < tab[j])
                {
                    tab[j+1] = tab[j];
                    j=j-1;
                }
                tab[j+1]=temp;
            }
        }

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut
    Peut-être un bon exercice d’algorithmie ou de C mais un très mauvais pour du C++.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements < a0, ..., an−1 >
    Où qu'il est ?

    Ca vous évitera de faire nimp avec la variable même pas initialisée "tab".

    J'espère qu'on vous a appris la différence entre le passage de paramètre par valeur et par référence. (because le C++, c'est pas du C with class)

    Sinon, sans les conneries avec "tab", c'est une bonne transposition.

    En C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::sort (myvector.begin(), myvector.end());
    https://cplusplus.com/reference/algorithm/sort/

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Peut-être un bon exercice d’algorithmie ou de C mais un très mauvais pour du C++.


    Où qu'il est ?

    Ca vous évitera de faire nimp avec la variable même pas initialisée "tab".

    J'espère qu'on vous a appris la différence entre le passage de paramètre par valeur et par référence. (because le C++, c'est pas du C with class)

    Sinon, sans les conneries avec "tab", c'est une bonne transposition.

    En C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::sort (myvector.begin(), myvector.end());
    https://cplusplus.com/reference/algorithm/sort/
    Merci ))) Je ne sais pas quoi faire avec "tab". Qu'est-ce que vous me proposez de mettre à sa place ?

    Citation Envoyé par bacelar Voir le message
    Peut-être un bon exercice d’algorithmie ou de C mais un très mauvais pour du C++.

    Où qu'il est ?
    Aucune idée ce que c'est. Faut-il que j'ajoute qch ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void trier(std::vector<int>& tab) 
    {
    ....
    =

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void trier(std::vector<int>& tab) 
    {
    ....
    =

    Merci pour votre réponse.

    Donc, en résumé,
    1. j'ai dû supprimer tab sinon cela me donnait une erreur
    2. Dans main() j'ai appelé trier(std::vector<int>& tab), mais ça me donne une erreur comme quoi tab n'est pas déclaré.

    J'ai un tableau étudiants à trier.

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 748
    Par défaut
    En regardant la page wikipedia du tri par insertion

    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
    #include <iostream>
    #include <vector>
     
    void tab_print(const std::vector<int>& tab, const std::string& end_str) {
        size_t size = tab.size();
     
        switch(size) {
        case 0: std::cout << "[ ]" << end_str; break;
        case 1: std::cout << "[ " << tab[0] << " ]" << end_str; break;
        case 2: std::cout << "[ " << tab[0] << ", " << tab[1] << " ]" << end_str; break;
        default:
            std::cout << "[ " << tab[0];
     
            for(size_t i=1; i < size; ++i) { std::cout << ", " << tab[i]; }
     
            std::cout << " ]" << end_str;
            break;
        }
    }
     
     
    void tab_sort(std::vector<int>& tab) {
        size_t size = tab.size();
        int val;
     
        for(size_t i=1, j; i < size; ++i) {
    //      Mémoriser T[i] dans val
            val = tab[i];
     
    //      Décaler les éléments T[0]..T[i-1] qui sont plus grands que val, en partant de T[i-1]
            for(j=i; ((j > 0) && (tab[j - 1] > val)); tab[j]=tab[j - 1], --j);
     
    //      Placer val dans le "trou" laissé par le décalage
            tab[j] = val;
        }
    }
     
     
    int main()
    {
        std::vector<int> tab;
     
        tab.push_back(158);
        tab.push_back(98);
        tab.push_back(-20);
        tab.push_back(38);
        tab.push_back(18);
        tab.push_back(-40);
     
        tab_print(tab, "\n");
        tab_sort(tab);
        tab_print(tab, "\n");
     
     
        return EXIT_SUCCESS;
    }
    Citation Envoyé par Nigush Voir le message
    J'ai un tableau étudiants à trier.
    Et tu comptes faire comment déjà que trier juste des nombres c'est très compliqué.
    Avec des étudiants : étudiant est bien 1 classe ? c'est quoi le critère ?

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    [QUOTE=foetus;11898093]En regardant la page wikipedia du tri par insertion

    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
    #include <iostream>
    #include <vector>
     
    void tab_print(const std::vector<int>& tab, const std::string& end_str) {
        size_t size = tab.size();
     
        switch(size) {
        case 0: std::cout << "[ ]" << end_str; break;
        case 1: std::cout << "[ " << tab[0] << " ]" << end_str; break;
        case 2: std::cout << "[ " << tab[0] << ", " << tab[1] << " ]" << end_str; break;
        default:
            std::cout << "[ " << tab[0];
     
            for(size_t i=1; i < size; ++i) { std::cout << ", " << tab[i]; }
     
            std::cout << " ]" << end_str;
            break;
        }
    }
    Merci Foetus pour ton aide. Mais il faut juste une seule methode void. Je ne peux pas utiliser les deux . ((( Laquelle choisir?

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 436
    Par défaut
    J'ai un tableau étudiants à trier.
    Et ?
    Vous savez au moins ce qu'est un paramètre ???
    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
     
    void trier(std::vector<int>& tab) 
    {
    ....
    }
    ...
     
    void main() 
    {
    ....
        std::vector<int> etudiants{};
    ....
     
        trier(etudiants);
     
    ....
    }
    @Nigush, faudrait quand même potasser un minimum votre cours, ou en changer.

  9. #9
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 748
    Par défaut
    Citation Envoyé par Nigush Voir le message
    Je ne peux pas utiliser les deux . ((( Laquelle choisir?
    C'est 1 choix cornélien tu as 1 fonction de tri et 1 fonction de debug.

  10. #10
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2022
    Messages : 17
    Par défaut
    Citation Envoyé par foetus Voir le message
    C'est 1 choix cornélien tu as 1 fonction de tri et 1 fonction de debug.
    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
    Parles-tu de cette methode?
     
    void tab_sort(std::vector<int>& tab) {
        size_t size = tab.size();
        int val;
     
        for(size_t i=1, j; i < size; ++i) {
    //      Mémoriser T[i] dans val
            val = tab[i];
     
    //      Décaler les éléments T[0]..T[i-1] qui sont plus grands que val, en partant de T[i-1]
            for(j=i; ((j > 0) && (tab[j - 1] > val)); tab[j]=tab[j - 1], --j);
     
    //      Placer val dans le "trou" laissé par le décalage
            tab[j] = val;
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C++ vers pseudo-code
    Par gladiCode dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/06/2015, 12h19
  2. Pseudo-code vers langage C
    Par abde00nnacer dans le forum Débuter
    Réponses: 2
    Dernier message: 28/11/2013, 18h09
  3. [WB14] WLangage vers pseudo code
    Par elmander dans le forum WebDev
    Réponses: 0
    Dernier message: 22/03/2010, 19h03
  4. [Pseudo-Code] Diagramme
    Par gl0be dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 20/04/2006, 17h19
  5. Réponses: 8
    Dernier message: 23/07/2005, 10h24

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