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 :

Cr�er une m�thode avec string.


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 19
    Par d�faut Cr�er une m�thode avec string.
    Bonjour,
    Je reviens encore pour une question que je crois simpliste.
    En fait voici mon code
    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
    #include <iostream>
    #include <string>
    using namespace std;
     
     
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
         while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
     
     
     
        return 0;
    }
    Je voudrais en faire une m�thode que j'utiliserais. J'ai essay� quelque mais �a ne marche pas, voici mon code avec une m�thode.
    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
    #include <iostream>
    #include <string>
    using namespace std;
     
    string validation(string s1,string s2)
    {
      while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
     
    }
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        validation;
     
     
     
        return 0;
    }
    Merci

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    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 503
    Par d�faut
    �a ne marche pas,
    Plus de pr�cision, SVP.

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Citation Envoy� par trainingevth Voir le message
    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
    #include <iostream>
    #include <string>
    using namespace std;
    
    string validation(string s1,string s2)
    {
      while (s2!=s1)
        {
           cout << "La deuxieme chaine est differente de la premiere retapez la deuxieme avec"<<s1.size()<<"caracteres";
           cin>>s2;
        }
        if (s1==s2)
            {
            cout<<"bravo!";
            }
    
    }
    
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        validation;
    
    
    
        return 0;
    }
    Rappelle voir comment on appelle une fonction ?

    + Ta fonction est sens�e retourn�e un string, en tous cas c'est ce que tu �cris.
    + Le passage des param�tres peut �tre am�lior�.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  4. #4
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 19
    Par d�faut
    Ok, je vais voir ce que je peux faire. Merci

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 19
    Par d�faut
    En fait je voudrais savoir si mon programme peut devenir une sorte de fonction.
    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
    #include <iostream>
    #include <string>
    using namespace std;
     
     
     
     
    int main()
    {
        string   s1;
        string   s2;
        cout<<"Entrez la premiere chaine de bits";
        cin>>s1;
        cout<<"Entrez la deuxieme chaine de bits";
        cin>>s2;
        while (s2.size()!=s1.size())
                {
                cout << "* ERREUR! La deuxieme chaine de bits doit avoir la meme longueur"<<endl;
                cout<<"que la premiere chaine de bits avec "<<s1.size()<<" caracteres"<<endl;
                cin>>s2;
                }
                if (s1.size()==s2.size())
                    {
                    cout<<"bravo!";
                    }
     
     
        return 0;
    }

  6. #6
    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
    Tout peut devenir une fonction, il s'agit de comprendre ce qu'est une fonction, comment elle fonctionne, et comment on l'appelle.

    Pour t'aider plus avant, je t'invite d'abord � nous dire en quelque mots:
    • Ce que tu penses qu'est une fonction
    • Ce que sont les param�tres, comment ils fonctionnent en C++
    • Comment on appelle une fonction
    • Ce qu'est main()


    En question subsidiaire, pourrais-tu dire ce que signifie const et ce qu'est une r�f�rence.

  7. #7
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Puisqu'apparemment tu n'as pas lu, ou compris mon message. validation; n'est certainement pas la syntaxe d'appel d'une fonction.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  8. #8
    Membre actif
    Homme Profil pro
    Th�sard
    Inscrit en
    Mars 2013
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Th�sard
    Secteur : Sant�

    Informations forums :
    Inscription : Mars 2013
    Messages : 54
    Par d�faut
    En fait tu as cr�er une fonction qui prend deux arguments (s1 et s2).
    Tu dois donc appeler ta fonction validation comme ceci :
    Par ailleurs je vois que ta fonction nomm�e validation doit te retourner un string mais il n'y a aucun return. Tu n'as pas besoin de return pour ce qu'elle est sens�e faire. Tu peux donc la d�clarer en void :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    void validation(string s1, string s2)
    Pour comparer deux cha�nes, je t'invite � faire � utiliser la m�thode "compare". Si elle te retourne 0, les deux cha�nes sont identiques, si elle te retourne 1, elles ne le sont pas :
    Bon courage !

  9. #9
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 19
    Par d�faut
    Bousk j'ai lu ton message, cependant j'ai fait un programme o� j'appelais une fonction comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    bool valide_entier(char t[],int &e)
    Donc je croyais que pour les types string ce serait la m�me chose.

    Leternel,

    • une fonction est c++ est une de boite qui renvoi une valeur et peut faire plusieurs directives que l'ont a d�finit.
    • les param�tres sont les directives de la fonction
    • le main c'est l� o� le programme commence

  10. #10
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2015
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 19
    Par d�faut
    Merci Betaplus, je vais voir si �a marche cette fois.

  11. #11
    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
    Correction de mes questions:

    Ce que tu penses qu'est une fonction
    une fonction est c++ est une de boite qui renvoi une valeur et peut faire plusieurs directives que l'ont a d�finit.
    Une fonction est un traitement cr�ant une valeur, et pouvant avoir des effets de bord.
    La valeur est celle retourn�e par la fonction, au moyen de l'instruction return.
    Les effets de bords sont les effets perceptibles autres que la valeur retourn�e: affichage ou allocation m�moire, par exemple.

    Si l'instruction est l'atome de fonctionnement du programme, la fonction repr�sente une action plus ou moins complexe.
    Le fait d'avoir un nom permet aux fonctions de clarifier le code qui l'utiliser.

    Il existe un type de fonction particulier, les fonctions membres (ou m�thodes), qui appartiennent � un type d'objets. (c'est le cas de string::size(), que tu as utilis�e).

    Ce que sont les param�tres, comment ils fonctionnent en C++
    les param�tres sont les directives de la fonction
    Les param�tres d'une fonctions sont ce qui permet de d�finir la situation o� travaille la fonction.

    Par exemple, l'op�ration d'addition est d�finie de mani�re g�n�ral, et 2+3 est un cas concret. Dans cet exemple, 2 et 3 d�finissent la situation o� s'applique l'addition.

    Les param�tres sont des variables. Elles sont locales � la fonction, mais cr�� avec des valeurs d�pendantes de son appel.
    Cela signifie que les valeurs sont copi�es dans de nouvelles variables, qui seront d�truites � la fin de l'appel. Cela a son importance.

    Comment on appelle une fonction
    Soit la fonction d�clar�e par int ma_fonction(int a, int b).
    L'appel d'une fonction est une expression constitu�e du nom de la fonction, suivi des valeurs � donner � chaque param�tre.
    Cette expression aura pour valeur la valeur retourn�e par l'appel de la fonction

    Ainsi, on peut avoir ce code-ci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    int main() {
        return ma_fonction(1, 2+3);
    }
    Ceci consiste en une fonction main retournant la valeur de l'appel de ma_fonction pour les arguments 1 et 2+3.

    Ce qu'est main()
    le main c'est l� o� le programme commence
    C'est surtout une fonction retournant un entier.
    Il s'av�re que l'ex�cution d'un programme est int�gralement constitu� de l'appel de cette fonction.

    Elle peut �tre d�finie avec deux arguments permettant de lire les arguments dits de ligne de commande.


    Quant � ton dernier message:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    bool valide_entier(char t[],int &e)
    Ceci n'est pas un appel de fonction, mais une d�claration.
    C'est reconnaissable � plusieurs choses:
    • les param�tres ont un type
    • le nom de la fonction est pr�c�d� d'un type.


    Tu remarqueras d'ailleurs que e est une r�f�rence sur un entier, et qu'il sera donc possible de modifier l'entier que l'appelant utilisera en guise de param�tre.
    En effet, bien que la r�f�rence sera locale � la fonction, toute modification d'une r�f�rence modifie le r�f�r�, donc l'entier poss�d� non pas par la fonction, mais son appelant.

    Pour l'illustration, le programme suivant affiche uniquement "chouette".
    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
    #include <iostream>
    void erreur(int entier) {
        entier *=2;
    }
     
    void doubler(int & entier) {
        entier *=2;
    }
    int main() {
        int i = 2;
        erreur(i);
        if (i==4) std::cout << "perdu" << std::endl;
        doubler(i);
        if (i==4) std::cout << "chouette" << std::endl;
        return 0;
    }

  12. #12
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    bool valide_entier(char t[],int &e)
    Ceci n'est pas plus la syntaxe d'appel d'une fonction... c'est au mieux la syntaxe de ce qui pr�c�de son impl�mentation.

    Que tu passes des int, string, void* ou const Toto&, la syntaxe ne change en rien, faut juste l'�crire correctement..
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 18/11/2011, 16h57
  2. R�ponses: 3
    Dernier message: 01/02/2010, 15h54
  3. R�ponses: 1
    Dernier message: 05/10/2009, 22h13
  4. Cr�er une m�thode avec un timeout
    Par damien77 dans le forum D�buter avec Java
    R�ponses: 35
    Dernier message: 20/02/2009, 16h05
  5. [Image]Cr�er une image avec JAVA 1.1
    Par burno dans le forum 2D
    R�ponses: 4
    Dernier message: 11/08/2004, 09h19

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