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 :

[Incompréhension] Exemple C++ Pour les Nuls


Sujet :

C++

  1. #1
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut [Incompréhension] Exemple C++ Pour les Nuls
    Bonsoir,
    Voici tout d'abord le code exemple (source > C++ Pour les nuls "Edition First)

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
     
    // déclaration des prototypes
    int sumArray(int integerArray[], int sizeOfloatArray);
    void displayArray(int integerArray[], int sizeOfloatArray);
     
    int main(int nNumberofArgs, char* pszArgs[])
    {
        // entrée dans la boucle de comptage
        int nAccumulator = 0;
        cout << "Ce programme additionne les valeurs saisies "
             << "par l'utilisateur\n";
        cout << "Quittez la boucle en tapant "
             << "un nombre négatif.\n";
        cout << endl;
     
        // stockage des nombres dans le tableau
        int inputValues[128];
     
        int numberOfValues;
        for(numberOfValues = 0; 
            numberOfValues < 128; 
            numberOfValues++)
        {
            // entrée d'un autre nombre
            int integerValue;
            cout << "Tapez le prochain nombre : ";
            cin  >> integerValue;
     
            // s'il est négatif...
            if (integerValue < 0)
            {
                // ...sortie de la boucle
                break;
            }
     
            // ...sinon, enregistrement du nombre
            // dans le tableau
            inputValues[numberOfValues] = integerValue;
        }
     
        // affichage des valeurs et somme des valeurs
        displayArray(inputValues, numberOfValues);
        cout << "La somme vaut " 
             << sumArray(inputValues, numberOfValues)
             << endl;
     
        // attend pour terminer le programme que l'utilisateur
        // lise le contenu de la fenêtre puis appuie sur une touche
        system("PAUSE");
        return 0; 
    }
     
    // displayArray : affiche les membres du tableau
    //                selon la longueur de sizeOfloatArray
    void displayArray(int integerArray[], int sizeOfArray)
    {
        cout << "Valeur des membres du tableau :" << endl;
        for (int i = 0; i < sizeOfArray; i++)
        {
            cout.width(3);
            cout << i << " : " << integerArray[i] << endl;
        }
        cout << endl;
    }
     
    // sumArray : retourne de la somme des membres d'un
    //            tableau d'entiers
    int sumArray(int integerArray[], int sizeOfArray)
    {
        int accumulator = 0;
        for (int i = 0; i < sizeOfArray; i++)
        {
            accumulator += integerArray[i];
        }
        return accumulator;
    }
    Ce que je ne comprends pas c'est les fonctions sumArray et DisplayArray.
    Que signifie ce qui se trouve entre parenthèse

    -----------------
    sumArray(inputValues, numberOfValues)
    sumArray(int integerArray[], int sizeOfArray)

    Est-ce que inputValues correspond à integerArray[] ? et numberOfValues à sizeOfArray ?
    -----------------

    -----------------
    displayArray(inputValues, numberOfValues)
    displayArray(int integerArray[], int sizeOfArray)

    Est-ce que inputValues correspond à integerArray[] ? et numberOfValues à sizeOfArray ?
    -----------------

    Que signifie le cout.width ? ainsi que le accumulator += integerArray[i];

    ---

    En vous remerciant d'avance,

    Nadd

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Bonjour
    Tu as une fonction dont le prototype est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int sumArray(int integerArray[], int sizeOfArray)
    Celà signifie qu'elle attend en premier argument un tableau d'entiers (dont on fournit l'adresse, c'est-à-dire l'adresse du premier élément) et en deuxième argument la taille de ce tableau (vraisemblablement d'après le nom des arguments). Ceci est "obligatoire" car en C / C++ (j'en suis sûr en C) il est impossible de connaître la taille d'un tableau si on ne donne que son adresse.
    Donc qu'en tu vois l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sumArray(inputValues, numberOfValues)
    et bien sumArray doit effectivement être un tableau d'entiers et numberOfValue la taille du tableau. d'après le prototype, cette foction retourne un entier.
    L'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    accumulator += integerArray[i];
    sest un raccourci pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    accumulator = accumulator + integerArray[i];
    Petite remarque, ce code n'est pas "sécurisé" car la valeur d'un int étant limitée, si dans l'addition on dépasse la limite, on peut se retrouver avec un résultat faux, mais ça on peut supposer que le programmeur y a pensé.
    défini la largeur de sortie des nombres, c-a-d que les nombres sont formatés sur 3 caractères.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Merci beaucoup.

    Donc si je ne me trompe pas, int integerArray[], int sizeOfArray corresponde à inputValues, numberOfValues.

    Encore un grand merci.

    Amicalement

    Nadd

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    mai 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 94
    Points : 82
    Points
    82
    Par défaut
    C'est-à-dire que les noms des arguments ne doivent pas être forcément les mêmes dans le prototype et dans l'appel de fonction.

    D'où certains prototypes sans noms d'arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int getopt (int, char * const *, const char *);
    Et mêmes certaines définitions de fonctions sans noms d'arguments non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void maFonction (int* first, int length, bool) { /* ... */ }
    Ce qui veut dire que le troisième argument n'est pas encore utilisé mais qu'on le met pour la compatibilité future avec un prototype qui le contiendrait.

    Voili voilou...

  5. #5
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Oui mais... Je comprends toujours pas... Est ce qua l'apelle de la Fonction, on établi un rapport entre ce qui est mis dans les parenthèses à l'apelle et ce qui se trouve dans les parenthèses du prototypes ?

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Oui bien sûr.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Merci beaucoup de votre aide à tous

    Amicalement

    Nadd

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

Discussions similaires

  1. VBA pour Excel pour les nuls
    Par doudoudidou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/02/2007, 13h15
  2. Réponses: 2
    Dernier message: 08/02/2007, 13h02
  3. C++ pour les nuls => Linux => Problème
    Par wizardman dans le forum Linux
    Réponses: 6
    Dernier message: 21/09/2005, 01h53
  4. Apprendre le réseau (pour les nuls)
    Par __fabrice dans le forum Développement
    Réponses: 5
    Dernier message: 08/03/2005, 14h49

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