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 :

Correction de mes exercices en C++ moderne


Sujet :

C++

  1. #21
    Expert confirmé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 888
    Par défaut
    Bjarne Stroustrup c'est effectivement la référence, il est trouvable par exemple sur amazon ici (ainsi que ses autres excellents livres C++).

    Citation Envoyé par toto81 Voir le message
    J'ai pas envie de lâcher, j'ai vraiment trouvé un truc qui me passionne, c'est rageant que tout soit en anglais partout!
    Si tu veux sérieusement devenir développeur C++ apprends l'anglais parce qu'il à de fortes chances que tu aura besoin d'utiliser des outils ou des bibilothèques documentées en anglais...

  2. #22
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Je suis actuellement en train d'apprendre l'anglais en parallèle du C++ mais ca ne va clairement pas a la même vitesse...

    En plus c'est de l'anglais technique dans les bouquins. Ca fait beaucoup de chose a apprendre tout seul ^^

  3. #23
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Oui, je comprends.

    L'anglais technique est plutôt plus facile à apprendre que l'anglais courant car beaucoup de mots sont semblables à des mots français: ils ont des racines latines ou françaises. Et il y a un vocabulaire spécialisé qu'il faut apprendre même en français (et n'est pas toujours traduit d'ailleurs).

    Tu peux te fixer l'anglais comme objectif de long terme, c'est en effet indispensable pour la programmation, pas pour apprendre un langage mais pour accéder à l'ensemble des ressources (bibliothèques, articles techniques, etc.).

    Il y a une réflexion en cours sur le site pour mettre à jour et compléter les ressources C++. Tes recherches montrent que c'est bien indispensable mais cela prendra du temps pour une mise à niveau.

    En attendant, voici à mon avis le problème. Le C++ a 1) une réputation de difficulté exagérée, 2) est considéré comme orienté "système", "bas niveau" et 3) en train d'évoluer plus rapidement que les ressources d'enseignement qui lui sont consacrées. Pour y répondre en quelques mots:

    1) sur la difficulté: le C++ est en effet un langage très complexe mais principalement parce qu'il est transparent sur le sujet. Il n'y a pas de chemin par défaut. La complexité est cachée dans des langages de plus haut niveau mais elle existe également et apparaît dès qu'on s'écarte des tournures prévues.
    2) sur l'aspect "bas-niveau": le C++ est un langage généraliste. Il permet pour ainsi dire de tout faire. Mais comme, en raison du 1), d'autres langages paraissent plus simples d'emploi sur des sujets plus "haut-niveau", le C++ est souvent utilisé pour des tâches de plus bas niveau.
    3) sur la documentation: c'est le résultat du 1) et du 2). Les débutants qui ne sont pas attirés par la complexité et le "bas-niveau" choisissent d'autres langages, pour lesquels la demande et donc l'offre de tutoriels d'initiation est plus élevée. Au contraire, les tutoriels et articles C++ sont plutôt consacrés au bas-niveau et à des thématiques avancées, type optimisation, méta-programmation, etc.

    Bref, tout cela est un malentendu, qui s'est forgé entre 2003 et 2011: le langage n'a pas évolué à ce moment-là, pendant qu'apparaissaient ou prenaient en importance des langages qui facilitent la vie du programmeur. Le C++ apparaissait alors un peu dépassé. Mais ce n'est plus le cas maintenant.

    Pour ma part, j'ai commencé avec le C++ et je n'ai jamais regretté ce choix.

  4. #24
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Tu penses que je dois remettre à plus tard mon apprentissage tant que je n'ai pas un niveau avancé d’anglais? Si c'est obligatoire, je le ferai...

    Le seul bouquin en français qui met tout le monde d’accord n'est plus trouvable.

    J'ai essayer une vidéo formation : https://www.video2brain.com/fr/forma...entaux-de-c-11 ....mais cette formation n'est juste qu'une suite
    d'informations données sans exercice, ni proposition de participer. Du coup on ne sait pas trop quoi faire de toutes
    ces infos qui s'empilent dans le cerveau jusqu'à les confondre sans trop savoir à quoi elles servent..

    Les langages haut niveau ne me disent rien.. Ils ont l'air plus visé dans certain domaine alors que, comme tu le dit, le C++ est plus généraliste.

  5. #25
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Tu penses que je dois remettre à plus tard mon apprentissage tant que je n'ai pas un niveau avancé d’anglais? Si c'est obligatoire, je le ferai...
    Ah non, surtout pas! Je pense que tu peux très bien apprendre le C++, et même à un bon niveau, sans connaître l'anglais trop bien. Mais cela deviendra nécessaire à un moment ou à un autre quand tu voudras t'écarter des tutoriels et autres ressources en français.

    Je pense que ta première idée, trouver un tutoriel avec des exercices, est la meilleure. S'il n'y a pas de bon tuto à jour, alors tu devrais te rabattre sur les exercices, en attendant d'avoir un niveau d'anglais suffisant pour consolider tes connaissances avec une bonne lecture -ou bien qu'un bon tuto généraliste sur le C++ moderne soit disponible sur le site. Je vais en parler au community manager.

    Pour les exercices, je peux t'en donner quelques uns

    Tu me diras qu'il faut des connaissances pour les faire. Certes.
    Voici une première ressource en français (plus ou moins traduit automatiquement, mais ça peut aider): http://fr.cppreference.com/w/
    C'est à consulter quand tu te poses des questions sur un concept ou une partie de la bibliothèque standard.

    Par exemple, voici une piste de travail:

    En programmation, on utilise très souvent des tableaux, c'est-à-dire un conteneur où les valeurs sont stockées de façon contigüe. Le tableau le plus généraliste en C++ est le vector.
    1) vector fait partie de la bibliothèque standard. Tous les membres de la bibliothèque standard sont dans un espace de nommage (namespace) qui s'appelle std. Pour faire référence à un membre de la bibliothèque standard, il faut donc faire précéder son nom de std:: // par exemple std::vector. Pour utiliser un vector, il faut inclure le fichier d'en-tête qui le déclare: #include <vector>2) vector est un type générique: il doit être paramétré par le type de ses éléments. Le paramétrage se fait entre les balises < et >. // par exemple: std::vector<int>, std::vector<char>, std::vector<bool>, std::vector<std::vector<int>>
    3) vector est une classe: une classe définit une interface pour accéder aux informations qu'elle contient. La documentation sur l'interface de std::vector est disponible dans la référence pour laquelle je t'ai donné un lien: http://fr.cppreference.com/w/cpp/container/vector

    Un exemple:
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::vector<int> vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    std::cout << "vec est un tableau de " << vec.size() << " éléments\n";
    std::cout << "le 2eme élément de vec est: " << vec[1] << std::endl; // les éléments de vector sont numérotés de 0 à vec.size()-1

    Exercices:
    a. préparation (facile)
    1) feuilleter la documentation de std::vector
    2) rajouter un nouvel élément de valeur 10 à vec
    3) écrire une fonction qui crée un vector contenant les n premiers entiers positifs
    4) créer une fonction qui affiche les éléments d'un vector d'entiers au format suivant: {e0, e1, ..., en-1}

    b. le crible d’Ératosthène (moyen-difficile)
    Le crible d’Ératosthène est un algorithme permettant de détecter les nombres premiers entre 2 et n.
    - On crée un tableau contenant les entiers positifs entre 2 (inclus) et n (exclus) et un tableau de booléens de même taille, initialisé à true.
    - On commence par le premier élément: 2; tous les multiples de 2 ne sont pas premiers, par définition. Donc on passe à false tous les éléments du tableau de booléen correspondant aux multiples de 2.
    - On poursuit avec le deuxième élément: 3: on vérifie dans le tableau de booléens qu'il n'est pas false; s'il est false, on passe au prochain élément, etc. S'il est vrai, en passe à false tous les multiples de 3
    - etc.
    - les nombres premiers sont ceux restés à true à la fin de la boucle
    1) implémenter l'algorithme d’Ératosthène avec un std::vector<int> et un std::vector<bool> // attention, vector<bool> est un cas un peu particulier, la lecture de la référence est une bonne idée
    2) (optionnel) implémenter l'algorithme d'Eratosthène avec uniquement un std::vector<bool>
    3) implémenter un jeu des nombres premiers, qui interroge le joueur sur le caractère premier ou non d'un nombre
    4) (optionnel) le jeu des nombres premiers est appelé avec en paramètre le nombre maximal sur lequel le joueur peut-être interrogé (windows: premier.exe 256 / linux: ./premier 256)

    Tu peux demander de l'aide au fur et à mesure, questionner sur les bonnes pratiques, etc.

  6. #26
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Je te remercie du mal que tu te donne pour m'aider mais le probleme j'ai que je n'y connais pas grand chose en algo.. Tes notions de nombres
    premiers, n, crible d’Ératosthène me sont inconnues.

    Je me suis aider de ces sites pour essayer de comprendre:

    - http://www.les-suites.fr/somme-des-n...rs-entiers.htm
    - http://www.mathematiquesfaciles.com/...rs_2_24936.htm
    - https://fr.wikipedia.org/wiki/Crible_d'%C3%89ratosth%C3%A8ne

    J'ai compris on va dire 50% de tout ca mais le mélanger au système du vector ca me faire trop de choses incomprises pour pour effectuer tes exos. J'y suis
    depuis 13h00 dessus mais je capte pas trop, je but à ces deux exos:

    3) écrire une fonction qui crée un vector contenant les n premiers entiers positifs
    4) créer une fonction qui affiche les éléments d'un vector d'entiers au format suivant: {e0, e1, ..., en-1}

    "Les n premiers entiers positifs" et "{e0, e1, ..., en-1}" WTF? ^^

  7. #27
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    les n premiers entiers positifs, c'est 0, 1, 2, 3, .. n.
    Une des solutions possible passera par une boucle, c'est la plus usuelle. Une autre pourrait être de se servir d'une fonction bien choisis de algo, dont tu trouvera la liste sur cppreference.com.

    et l'affichage proposé dans le 4), c'est que pour un vecteur contenant 1, 7 et 12, tu dois produire "{1, 7, 12}" soit dans une chaine, si tu sais comment t'y prendre, soit à l'écran.

  8. #28
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    J'ai du mal à voir pourquoi on aurait besoin de deux tableaux dans le crible, alors que le "second tableau", si l'on insère le zéro au début, devient juste un tableau invariable dont chaque valeur est égale à son index! Du coup, on n'a pas besoin de ce tableau, le tableau de booléens suffit.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Pour l'exercice 3:

    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
    #include <iostream>
    #include <vector>
     
    void nombresPremiers(int n)
    {
        std::vector<int> nPremiers;
     
        for(int i= 0; i <= n; i++)
        {
            nPremiers.push_back(i);
            std::cout << i << " a ete ajoute au tableau." << std::endl;
        }
     
        std::cout << "mon tableau contient " << nPremiers.size() << " element(s)." << std::endl;
    }
     
    int main()
    {
        nombresPremiers(10);
     
        return 0;
    }

  10. #30
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Pour l'exercice 3:
    C'est bien! Enfin c'est presque ça.
    - il y a une petite modification à faire, pour que la fonction soit utile, c'est de retourner le vecteur que tu as créé...
    - 0 n'est pas un nombre entier positif

    Pour les autres je pense leternel a répondu à tes questions, non?

    J'ai du mal à voir pourquoi on aurait besoin de deux tableaux dans le crible, alors que le "second tableau", si l'on insère le zéro au début, devient juste un tableau invariable dont chaque valeur est égale à son index! Du coup, on n'a pas besoin de ce tableau, le tableau de booléens suffit.
    En effet! c'est pour ça que je le proposais en b.2.

  11. #31
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Une fonction ne peut pas retourné un tableau il me semblait avoir lu, nn? Une fonction ne peut retourner qu'une valeur, du moins c'est ce que j'avais compris... :/

    Pour l'exercice 4, il me suffit de faire une fonction qui affiche le contenu de mon tableau à l'écran?

  12. #32
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Une fonction peut retourner un vecteur (exemple: std::vector<int> maFonction()).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #33
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Ok!! Super ça! En fait c'est les tableaux statiques qui ne peuvent pas être retourné par une fonction?

    J'ai modifié mon code et je pense que j'ai bon!

    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
    #include <iostream>
    #include <vector>
     
    std::vector<int> nombresPremiers(int n)
    {
        std::vector<int> nPremiers;
     
        for(int i= 1; i <= n; i++)
        {
            nPremiers.push_back(i);
            std::cout << i << " a ete ajoute au tableau." << std::endl;
        }
        return nPremiers;
    }
     
    int main()
    {
        std::vector<int> tabNombresPremiers(nombresPremiers(10));
        std::cout << "mon tableau contient " << tabNombresPremiers.size() << " element(s)." << std::endl;
     
        return 0;
    }

  14. #34
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Parfait!

    Alors oui, on peut retourner un vector, tout à fait. Le tableau de type C, dans le genre char buffer[500], on ne peut pas. Pour donner un exemple où C++11 est un pas en avant, il y a une nouvelle classe std::array<type, size> qui est tout aussi performante qu'un tableau statique de type C mais qui elle peut être retournée par une fonction.

    J'ajoute une petite notion à la leçon du jour: on distingue:
    - les tableaux statiques, dont la taille est connue à la compilation. C'est le type d'allocation le plus performant, mais la taille ne peut pas être modifiée.
    - les tableaux dynamiques, dont la taille n'est pas connue à la compilation. L'allocation est moins performante mais la taille peut être modifiée à volonté.

    En c++11:
    - statique: std::array<size, type> // ex: std::array<char, 500> buffer; dans le header <array>
    - dynamique: std::vector<type> // que tu connais bien désormais.

  15. #35
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Ha super! Tout à l'heure je me demandais quel différence il y avait entre le tableau statique et le array à part la syntaxe... Maintenant j'ai compris ^^

  16. #36
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Salut!

    J'ai une question: Pour les types short int, int, long int, lon long int, etc.. Il est préférable de toujours bien choisir ou est-ce qu'a notre époque, vu les
    PC puissants que nous disposons, on regarde plus trop les tailles?

    Pour le moment j'ai toujours utilisé des int sans m'en préoccuper et je ne voudrais pas prendre une mauvaise habitude.

    Merci !

  17. #37
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Avec la démocratisation des architectures 64 bits, je tends à diviser les nombres en deux catégories:
    • Ceux qui peuvent être utilisés pour des indices/tailles de tableau/pointeurs (intptr_t, size_t, etc.)
    • et les autres. Je tends à utiliser le simple int pour "les autres", mais c'est un peu déformé par mon habitude des architectures 32 bits; en théorie, il faudrait toujours utiliser long (ou int32_t, ou int_least32_t, int_fast32_t, etc.) pour tout nombre pouvant en théorie être plus grand que 32767.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #38
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Super, merci pour la précision Médinoc

    Voilà pour ma réponse à l'exo 4:

    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
    #include <iostream>
    #include <vector>
     
    // nombresPremiers: Fonction de l'exo 3
     
    std::vector<int> nombresPremiers(int n)
    {
        std::vector<int> nPremiers;
     
        for(int i= 1; i <= n; i++)
        {
            nPremiers.push_back(i);
        }
        return nPremiers;
    }
     
    // affContenuTab: Fonction de l'exo 4
     
    void affContenuTab(std::vector<int> tab)
    {
        for(int i= 0; i < tab.size(); i++)
        {
            std::cout << tab[i] << ", ";
        }
    }
     
     
    int main()
    {
        std::vector<int> tabNombresPremiers(nombresPremiers(10));
     
        std::cout << "mon tableau contient " << tabNombresPremiers.size() << " element(s)." << std::endl;
     
        affContenuTab(tabNombresPremiers);
     
        return 0;
    }
    Je suis pas sur d'avoir bien compris mais vous me direz ^^

  19. #39
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Pas tout à fait. Ta fonction affiche une virgule après le dernier chiffre et il manque les accolades de début et de fin...
    Le résultat doit être : {0,1,2,3,4}

  20. #40
    Membre averti Avatar de toto81
    Homme Profil pro
    Agent TNT Express
    Inscrit en
    Mai 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agent TNT Express
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2012
    Messages : 67
    Par défaut
    Ok c'est modifié ^^

    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
    #include <iostream>
    #include <vector>
     
    // nombresPremiers: Fonction de l'exo 3
     
    std::vector<int> nombresPremiers(int n)
    {
        std::vector<int> nPremiers;
     
        for(int i= 1; i <= n; i++)
        {
            nPremiers.push_back(i);
        }
        return nPremiers;
    }
     
    // affContenuTab: Fonction de l'exo 4
     
    void affContenuTab(std::vector<int> tab)
    {
        std::cout << "{";
        for(int i= 0; i < tab.size()-1; i++)
        {
            std::cout << tab[i] << ", ";
        }
        std::cout << tab[tab.size()-1] << "}";
    }
     
     
    int main()
    {
        std::vector<int> tabNombresPremiers(nombresPremiers(10));
        std::cout << "mon tableau contient " << tabNombresPremiers.size() << " element(s)." << std::endl;
     
        affContenuTab(tabNombresPremiers);
     
        return 0;
    }
    Et pourrais-tu me dire ce qu'il ne va pas dans ce code? C'est un exo d'un bouquin que j'ai mais je bute la dessus...

    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
    #include "stdafx.h"
    #include <iostream>
    #include <string>
     
    int main()
    {
    	char prenom[] = "Jojo";
    	char initiales[] = "J";
    	char nom[] = "Lapatate";
    	char nomcomplet[50];
    	int offset = 0;
     
    	strcpy_s(nomcomplet, prenom);
    	offset = strlen(prenom);
    	strcpy_s(nomcomplet + offset, " ");
    	offset++;
    	strcpy_s(nomcomplet + offset, initiales);
    	offset += strlen(initiales);
    	strcpy_s(nomcomplet + offset, ". ");
    	offset += 2;
    	strcpy_s(nomcomplet + offset, nom);
    	std::cout << "Vous vous appelez: " << nomcomplet << std::endl;
     
    	return 0;
    }
    Merci

Discussions similaires

  1. Problème dans la page de correction d'un exercice?
    Par menoulette dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2009, 23h57
  2. Réponses: 11
    Dernier message: 04/02/2008, 20h37
  3. Correction d'un exercice en C++
    Par aniscpp dans le forum C++
    Réponses: 2
    Dernier message: 07/12/2006, 14h01
  4. besoin d'une correction sur un exercice.
    Par phakso dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 03/03/2006, 10h01

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