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 :

fonction écrire une


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut fonction écrire une
    bonjour,
    Le programme ci-dessous fonctionne.
    Si on essaye de le transformer en fonction il ne fonctionne plus.
    Deux variables posdeb1 et posfinresul1 n'ont pas de valeur en sortie de fonction même si je les inclue dans la déclaration de fonction.
    Pour tester il faut faire qq modifs:// à supp. ou ajouter.
    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
     
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>
     
    using namespace std;
     
    string raj1 = ".....";                              //espace maxi à occuper
    string resul1="Ab";                                 //chaine à justifier à droite
     
    int main()
    {
        cout <<"raj.tot.:"<< raj1<<"|espace max a occuper"<<endl;
        cout <<"res.ori.:"<< resul1 <<"|   chaine a just a dr."<<endl;
    //long resul1
        int iresul1, tailleresul1 = resul1.size ();
    //long raj1
        int iraj1  , tailleraj1   = raj1  .size ();
    //découp. de raj1
              int posdeb1=0;
              int posfinraj1=tailleraj1-tailleresul1;
              raj1= raj1.substr(posdeb1,posfinraj1);
    //conc.          
              resul1=raj1+resul1;
    //appel fonction just(ajouter//aux lignes précédentes..)          
    //string just (string raj1 ,string resul1);//supprimer les //       
       cout <<"     raj:"<<raj1<<"|  espace a rajouter"<< endl;
       cout <<"     res:"<<resul1<<"|chaine justifiee"<<endl;
    cout << "<E/Quitter>" << endl;
    char c=getchar();switch (c){case '\r':;break;} 
    }   
     
    //déclaration fonction just
    string just (string raj1 ,string resul1)
    {
    //long.resul1
        int iresul1, tailleresul1 = resul1.size ();
    //long.raj1
        int iraj1  , tailleraj1   = raj1  .size ();
    //découp.raj1
              int posdeb1=0;
              int posfinraj1=tailleraj1-tailleresul1;
              raj1= raj1.substr(posdeb1,posfinraj1);
    //conc.          
              resul1=raj1+resul1;
              return resul1;      
    }
    Que voyez-vous de mal fait?
    Avec mes remerciements.

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Salut,
    Sans fanfaronnade aucune, il faudrait que tu consulte des livres ou des cours sur les bases du C++. Comme et plus particulièrement dans ce cas, , voire encore plus précisément .
    Amuses toi bien.

    ...Je te met un peu sur la voie :
    Si tu appel une fonction de cette manière ( ligne 27 ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string just (string raj1 ,string resul1);
    c'est que tu confonds appel de fonction et déclaration de fonction!!!
    Exemple de déclaration, d'appel et de définition 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
     
    int Min(int, int);        /* Déclaration de la fonction minimum */
                              /* définie plus loin. */
    /* Fonction principale. */
    int main(void)
    {
        int i = Min(2,3);     /* Appel à la fonction Min, déjà
                                 déclarée. */
        return 0;
    }
     
    /* Définition de la fonction min. */
    int Min(int i, int j)
    {
        if (i<j) return i;
        else return j;
    }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 19
    Par défaut
    Bonsoir

    Deux variables posdeb1 et posfinresul1 n'ont pas de valeur en sortie de fonction
    C'est normal les variables sont locales à la fonction just() !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/04/2010, 18h14
  2. écrire une liste de fichiers en fonction de leur extension
    Par seb.garcia dans le forum Général Python
    Réponses: 5
    Dernier message: 10/01/2009, 15h06
  3. Réponses: 1
    Dernier message: 26/08/2008, 14h26
  4. écrire une fonction comme first
    Par elliott dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/07/2007, 07h52
  5. [fonction d'Ackermann] Écrire une fonction récursive
    Par java+ dans le forum Mathématiques
    Réponses: 5
    Dernier message: 19/06/2007, 01h14

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