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 :

Exercice - les fonctions


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Exercice - les fonctions
    Bonjour

    C'est la première fois que je viens sur le forum C++, j'espère y découvrir des choses intéressantes pour moi et de fil en aiguille de mon parcours, pouvoir basculer de l'autre coté de la barrière, c'est à dire, pouvoir aider les autres personnes comme moi qui débuterons.Mais pour l'instant je suis tout en bas de l’échelle....
    Débutant en C++, je suis donc un cour de langage C++ sur un livre. Je fais donc étape par étape. Et là, je bloque sur un exercice.Alors voila, je ne veux pas la réponse, je veux juste une piste qui pourrait me mettre sur la voie.Voici un code pour faire un rectangle de ****. On me demande de modifier la fonction pour que cela n'accepte pas les nb négatifs. J'ai essayé avec IF else mais le soucis réel, est que je ne sais pas a quel endroit précis je dois insérer mon code....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
    26
    #include <iostream>
    using namespace std;
     
    void dessineRectangle(int l, int h)
    {
        for(int ligne(0); ligne < h; ligne++)
        {
            for(int colonne(0); colonne < l; colonne++)
            {
                cout << "*";
            }
            cout << endl;
        }
     
    }
     
    int main()
    {
        int largeur, hauteur;
        cout << "Largeur du rectangle : ";
        cin >> largeur;
        cout << "Hauteur du rectangle : ";
        cin >> hauteur;
        dessineRectangle(largeur, hauteur);
        return 0;
    }

  2. #2
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    Bonjour !

    Les nombres négatifs peuvent être reperés dès la réception des paramètres, donc en tout début de la fonction.

    Ensuite il faut voire comment prévenir que les paramètres ne sont pas corrects :
    • Ne rien faire du tout : utiliser le if et mettre dans l'accolade toute la fonction.
    • Afficher un message d'erreur : utiliser if et else
    • Faire "planter" l'application : via assert
    • ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void fonction(parametre)
    {
        if(contition == parametre)
        {
            leCode
        }
        else
        {
            leCodeErreur
        }
    }
    faire un rectangle de ****
    Je l'avais lu différemment

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci pour l'aiguillage.
    En effet après relecture, je confirme la confusion du :
    un rectangle de ****
    je m'en excuse, ferais plus attention par la suite...
    Sinon voici mon code pour la 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
     
    void dessineRectangle(int l, int h)
    {
        if (l  &&  h > 0)
        {
        for(int ligne(0); ligne < h; ligne++)
        {
            for(int colonne(0); colonne < l; colonne++)
            {
                cout << "*";
            }
            cout << endl;
        }
        }
        else
        {
            cout << " Erreur !" << endl;
        }
    }
    Par contre, quand je tape un nombre négatif, je n'ai pas mon message d'erreur qui apparaît? sinon cela fonctionne.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Cette ligne if (l || h < 0) ne se traduit pas par
    SI l est négatif OU h est négatif
    mais par
    SI l est non nul OU h est négatif
    if (l < 0 || h < 0).
    Par contre dans le cas négatif, je pense que tu souhaiterais plutôt afficher l'erreur et non passer par les boucles.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci.
    Au final j'ai mis ça :
    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
    void dessineRectangle(int l, int h)
    {
        if (l > 0 && h > 0)
        {
        for(int ligne(0); ligne < h; ligne++)
        {
            for(int colonne(0); colonne < l; colonne++)
            {
                cout << "*";
            }
            cout << endl;
        }
        }
        else
        {
            cout << " Erreur !" << endl;
        }
    }
    et ça fonctionne nickel.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Rajoute l'indentation relative au bloc if { ... } et ce sera parfait

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

Discussions similaires

  1. Exercice sur les fonctions
    Par yoelhazan dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 06/12/2014, 19h25
  2. Réponses: 14
    Dernier message: 26/06/2013, 18h03
  3. exercice sur les fonctions
    Par goldensun dans le forum Débuter
    Réponses: 6
    Dernier message: 26/10/2008, 15h57
  4. Exercice sur les fonctions
    Par jeje-2309 dans le forum Mathématiques
    Réponses: 7
    Dernier message: 01/10/2007, 12h04

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