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 :

[en cours] nommé des variable a la suite (var1, var2, var3, ..)


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut nommé des variable a la suite (var1, var2, var3, ..)
    Bonjour,
    je ne sais aps trop comment exposer mon probleme mais je vais essayer d'etre le plu claire possible.
    En gros, je demande a l'utilisateur du logiciel combien de nombre il souhaite rentrer et puis je lui demande de les saisir. Maisla est mon probleme, je voudrais nommé ses valeurs: val1, val2, val3, ..., valx où x et le nombre valeur qu'il a donné au depart.
    Je pensais a une boucle for du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0; i<x; i++){
    int val i;
    cin>>val i;
    mais je ne sais pas comment faire pour que le i qui suit val prenne en fait la valeur donné dans la boucle for et donné ainsi val1, val2...

    Est-ce que quelcu'un pourrais m'aider a mettre en place ce code ou bien m'expliquer une autre facon de le faire?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Pourquoi pas un tableau?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Points : 76
    Points
    76
    Par défaut
    oui, il suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<x;i++)
    {
    int var[x];
    cin>>var[i];
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    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
    #include <iostream>
    #include <vector>
    #include <string>
    #include <sstream>
     
    using namespace std;
     
    main()
     
    {
     
     
        int nbval;
        string chaine = "val";
        vector<string> myvar;
        int uval;
        vector<int> userval;
     
        cout << "Entrez le nombre de valeurs :";
        cin >> nbval;
     
        for (int k=1 ; k<=nbval ; k++) {
     
            cin >> uval;
            userval.push_back(uval);
     
        }
     
        //construire un vecteur contenant les vali
        for (int i=0 ; i<nbval ; i++) {
     
            ostringstream oss;
            oss << chaine << userval[i];
            myvar.push_back(oss.str());
            oss.clear();
     
        }
     
        //myvar contient maintenant var1, var2 jusqu'a varnbval
        for (vector<string>::iterator j = myvar.begin() ; j!=myvar.end() ;j++) {
     
         cout << *j << endl;
     
        }
     
     
    }

  5. #5
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    dadagos, il est impossible de faire ceci en C++, je ne pense même pas que ce soit faisable avec d'autre langages.
    Comme l'a dit seriousme, utilise des tableaux, même mieux encore, des std::vector<>, ou autre conteneur.
    Si tu décide d'utiliser std::vector<> :

    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
     
    #include <iostream>    // std::cin, std::cout
    #incude <vector>       // std::vector
     
    int main(void)
    {
            std::cout << "Combien de valeurs ? " << std::endl;
            size_t NombreDeValeurs;
            std::cin >> NombreDeValeurs;
            std::vector<int> Vector;              // On créé le vector
            Vector.resize(NombreDeValeurs);   // On le dimensionne
            std::cout << "Entrez vos valeurs :" << std::endl;
            for (size_t i = 0; i < NombreDeValeurs; ++i)
            {
                    std::cout << "Valeur " << i << " : ";
                    std::cin >> Vector[i];
            }
            // Et voila tu as maintenant dans ton vector toutes tes valeurs...
            return 0;
    }
    Ca ça pourra t'aider : http://c.developpez.com/faq/cpp/?pag...hoix_conteneur
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Ne veux tu pas stocker dans un tableau : valx ou x est une valeur parmi celles rentrées par l'utilisateur ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    Excusez moi mais je debute et meme si c'est non recommander de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<x;i++)
    {
    int var[i];
    cin>>var[i];
    }
    Je prefere ce code car au moin je le comprend et je peux le manipuler par rapport aux autres.
    Merci beaucoup a tout le monde.

  8. #8
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Ah toi de voir, N'oublie pas le tag résolut si tu penses que ton post est arrivé à ce que tu voulais.
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    j'ai essayer de faires qulque chose avec ce code mais sans résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int nbvaleurs;
        cout<<"rentrz le nombre de valeurs différentes.";
        cin>>nbvaleurs;
        for(int i=0; i<nbvaleurs; i++){
                int * pval[i] = new int;
               int * peffect[i] = new int;
                cout<<"/nrentrez une valeur";
                cin>>*pval[i];
                cout<<"/nrentrez son effectif"<<endl;
                cin>>*peffect[i];
                }
        for(int i=0; i<nbvaleurs; i++){
                cout<<*pval[i]<<*peffect[i]<<endl;
                }
    En gros ca me met 2 erreurs pour chacun de mes pointeur (pval et peffect):
    -- variable-sized object 'pval' may not be initialized
    -- 'pval' undeclared
    j'ai mi en couleur les lignes correspondants aux erreurs.
    Si quelqu'un pouvais m'aider...
    Je suppose que cela vient des pointeurs, c'est la premiere fois que je les utilise et pour la meme raison je ne voit pas vraiment mon erreur.

  10. #10
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int * pval = new int[i];
    et il faut enlever les "*" devant "pval" dans le reste du code.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    ca a avancé.
    Apres avoir les modifications dites je n'ai plus que le message:
    -- 'pval' undeclared.

    Mais peux tu me dire pourquoi il faut enlever le "*" apres cin>> car dans le livre que j'ai acheter il ne l'enleve pas pour affecter la valeur au pointeur:
    Merci

  12. #12
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Mais peux tu me dire pourquoi il faut enlever le "*" apres cin>>
    car:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int * pval = new int[i];
    fait de "pval" un pointeur sur un tableau de "i" "int".
    C'est équivalent à:
    si le tableau était statique.
    Donc pour accéder à un élément du tableau on fait:
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  13. #13
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    ok, je croit que j'ai compri.
    Mais alors d'un vient l'erreur?

  14. #14
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Citation Envoyé par dadagos
    Mais alors d'un vient l'erreur?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int * pval[i] = new int;
    plusieures erreurs:
    -"new int" retourne un pointeur sur un seul "int" alors qu'il faut un tableau de plusieurs "int".
    -"int * pval[i]" est un tableau de pointeurs sur "int", pas un pointeur sur "int".
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  15. #15
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    Mais j'ai fais les modifications que tu m'a dit plus haut.
    Code :
    int * pval = new int[i]

    et il faut enlever les "*" devant "pval" dans le reste du code.
    Mais ca me met toujours la deuxième erreur soit:
    -- 'pval' undeclared.

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Je te conseille de regarder la FAQ C++ aussi.

  17. #17
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    Mais j'ai fais les modifications que tu m'a dit plus haut.
    Oui, ces remarques ne concernent que l'ancien code, pas celui qui ne comporte plus que la dernière erreur.
    D'ailleurs à quelle ligne est cette erreur?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  18. #18
    Expert confirmé
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 4 062
    Points
    4 062
    Par défaut
    OK je voie: "pval" est déclaré dans un bloc "for(...){...}" et donc il n'est valide que entre les accolades "'{}" de la boucle "for".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int * pval = new int[i];
    for(int i=0; i<nbvaleurs; i++){
    devrait régler le problème.

    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  19. #19
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    Citation Envoyé par seriousme
    OK je voie: "pval" est déclaré dans un bloc "for(...){...}" et donc il n'est valide que entre les accolades "'{}" de la boucle "for".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int * pval = new int[i];
    for(int i=0; i<nbvaleurs; i++){
    devrait régler le problème.


    Une petite correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    int * pval = new int[nbvaleurs];
    for(int i=0; i<nbvaleurs; i++)
                {
                 //Saisie de la (ieme+1) valeur
                }
    Bonne continuation !
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  20. #20
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    merci.
    J'essaye des que je rentre chez moi et je vous tien au courant.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/10/2009, 20h24
  2. Réponses: 5
    Dernier message: 30/06/2009, 23h21
  3. Réponses: 3
    Dernier message: 23/07/2007, 18h01
  4. Comment créer des variables nommées A1, A2, A3... An
    Par BLACKDOM dans le forum MATLAB
    Réponses: 6
    Dernier message: 16/04/2007, 17h19
  5. Stocker des variable suite a un fork
    Par gool42 dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 07/01/2007, 19h46

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