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 :

Aide exercice C++ grille tarifaire


Sujet :

C++

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Aide exercice C++ grille tarifaire
    Bonjour je suis en 1ere année en info ! J'ai un exercice à faire je suis totalement bloqué ! voici l'intitulé : Écrire un programme affiche le prix à payer en fonction de la grille de tarifs indiquée dans la table qui suit.
    Le programme commence par demander l'âge de l'individu, s’il est abonné ou non ('o' ou 'n'), et le type de spectacle ('court ou long : c' ou 'l').

    (Ci-joint le pdf pour visualiser le tableau exercice 6)

    Voici ce que j'ai commencé :

    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
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int age, prix;
        char abo, spec;
        cout << "Entrez votre age" << endl;
        cin >> age;
        cout << "Etes vous abonnés? (o/n)" << endl;
        cin >> abo;
        cout << "Type de spectacle ? (c/l)" << endl;
        cin >> spec;
    {
        if (age<=18)
            prix=6;
            else prix=15;
    }
     
        {
            if (abo=='o')
                prix=6;
                else prix=8;
        }
     
            {
                if (spec=='c')
                    prix=6;
                    else prix=12;
            }
     
     
     
        return 0;
     
    }
    Images attachées Images attachées

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Pourrais-tu préciser ce qui te bloque, à quel endroit tu codes tu es bloquée ?

    Sinon, inutile de "up" ton propre sujet, on ne te répondra pas plus rapidement.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Premièrement je ne sais pas si je dois vraiment emboiter les conditions ou utiliser switch avec les differents case

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Personnellement, je verrais bien un tableau à trois dimensions pour stocker tes prix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int prix[2][2][2] = {7,8,8,8,8,9,8,7};
    Puis utiliser simplement le fait qu'une expression logique retourne 0 si faux et 1 si vrai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int prixAPayer = prix[condition1][condition2][condition3];
    Sinon tu peux enchainer les if :
    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
    if(condition1)
    {
           if(condition2)
           {
     
           }
           else
           {
     
            }
    }
    else
    {
           if(condition2)
           {
     
           }
           else
           {
     
            }
    }
    Mais dans cette seconde solution, je vois mal comment factoriser du code vu qu'il ne semble pas y avoir de "liens" entre les différents tarif du type :
    tarifEnfant = 1,5*tarifAdulte + 5;

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut

    Tu as trois conditions, donc, il s'agira de tester les trois, de toutes manières.

    Et chaque condition propose deux valeurs.

    Comme chaque condition est indépendante des autres, tu te retrouve avec 8 possibilité.

    Je vais donc te faire réfléchir un tout petit peu : N'existe-t-il pas une représentation numérique qui permette avec trois "glyphes" (je ne veux pas parler de chiffre pour éviter toutes confusion) de représenter effectivement 8 valeurs, même si elles vont de 0 à 7

    Trouves ce dont je veux parler, tu auras ta solution.

    A partir de là, il te "suffira" de choisir l'ordre dans lequel tu évalue les choses, mais un tableau aussi simple queint tarif[8]={6,8,10,12,15,18,18,22}; fera parfaitement l'affaire.

    Remarque qu'un petite phrase du prof devrait te mettre sur la voie, je la cite ici:
    Attention à ne pas tester 2 fois la même condition.
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Pour information, j'ai réussi à faire ce programme en quelques minutes à peine en moins de 60 lignes tout compris.

    La fonction main se résume, chez moi, à 11 lignes entre l'accolade ouvrante et l'accolade fermante

    Je m'étais avant amusé à ne pas respecter tout à fait les ordres (chaque question permettait de choisir o /oui / n /non, en majuscule ou en minuscule) qui n'était pas plus long (mais plus sécurisant à l'emploi)

    J'ai eu une grosse frayeur quant à mon algorithme parce que j'avais copier les valeurs de mon intervention précédente, et que je m'étais trompé pour l'une d'elle (j'ai mis très longtemps à m'en rendre compte ), mais à part cela, c'est un code qui ne devrait pas prendre plus d'une demi heure à mettre en place
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Remarque qu'un petite phrase du prof devrait te mettre sur la voie, je la cite ici:
    Attention à ne pas tester 2 fois la même condition.
    Même en emboîtant les if, on ne teste pas 2 fois la même condition, on l'écrit juste plusieurs fois.

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Même en emboîtant les if, on ne teste pas 2 fois la même condition, on l'écrit juste plusieurs fois.
    Mais, justement, il y a moyen de n'écrire qu'une seule et unique fois chaque condition

    Je m'étonne presque que tu n'aies d'ailleurs pas pensé à ce à quoi moi je pense (à moins bien sur que tu n'aies simplement pas lu l'énoncé ) car ca semble si évident
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Mais, justement, il y a moyen de n'écrire qu'une seule et unique fois chaque condition

    Je m'étonne presque que tu n'aies d'ailleurs pas pensé à ce à quoi moi je pense (à moins bien sur que tu n'aies simplement pas lu l'énoncé ) car ca semble si évident
    Je n'y ai pas pensé en lisant le sujet, mais ça m'a semblé évident et bien pensé en lisant le post de Neckara.

    Je faisais simplement remarquer que la remarque ne dirige pas forcément vers cette solution (qui d'ailleurs n'est pas forcément évidente pour quelqu'un qui débute).

  10. #10
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Je n'y ai pas pensé en lisant le sujet, mais ça m'a semblé évident et bien pensé en lisant le post de Neckara.

    Je faisais simplement remarquer que la remarque ne dirige pas forcément vers cette solution (qui d'ailleurs n'est pas forcément évidente pour quelqu'un qui débute).
    Je voulais dire que ca semble évident à nous qui avons l'habitude, pour peu que l'on ait pris la peine de lire l'exercice

    Mais je reconnais que ce ne l'est pas forcément pour quelqu'un qui débute, et si tu lis bien ma première intervention, tu remarqueras que je le "poussais" dans la bonne direction
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Aide exercice de math/Algorithmique
    Par laurent2628 dans le forum Mathématiques
    Réponses: 11
    Dernier message: 10/06/2008, 13h24
  2. Aide exercices Java débutant
    Par dalil777 dans le forum Général Java
    Réponses: 9
    Dernier message: 08/02/2008, 22h19
  3. Aide exercice C
    Par lkaiman dans le forum C
    Réponses: 3
    Dernier message: 31/12/2007, 12h57

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