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 :

programme très simple en .cpp


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut programme très simple en .cpp
    Bonjour à tous, j'ai un petit programme à faire et je n'ai pas pu installer le logiciel sur mon pc alors j'aimerais vous montrer ce que j'ai fais pour savoir si ca va marcher en cours lors de l'interro.


    En fait, c'est un programme très simple pour vous je pense, mais bien assez complexe pour moi lol. Le but est lorsque l'on tape le numéro du département (j'ai choisi 71, 89, 21, 58) le programme nous affiche le nom du département.


    Alors voila ce que j'ai fais :
    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
     
    #include<stdio.h>
    void main ()
    {char code [20];
    float 71 21 58 89 region
     
    {code=France;
    while(code!=France);
    printf("Entrer le nom du pays ");
    scanf("%s", &code);
    }
     
    {code=Bourgogne;
    while(code!=Bourgogne);
    printf("Entrer le nom de la région ");
    scanf("%s", &code);
    }
     
     
    {printf("Entrer le numéro du département : %f \n", region);
    if(region=71)
    printf("Ce numéro correspond au département de la Saone et Loire \n");
     
    if(region=21)
    printf("Ce numéro correspond au département de la Cote dOr \n");
     
    if(region=58)
    printf("Ce numéro correspond au département de la Nievre \n");
     
    else printf("Ce numéro correspond au département de lYonne \n");
     
     
    }
    }
    Merci de me dire si mon programme fonctionne ou non, et si possible me dire ce qui ne va pas.


    Merci beaucoup d'avance.
    Benjamin

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Aïe !

    Non, désolé, ce code n'est ni du C++ ni même du C, ce vers quoi tu sembles te diriger plutôt (à déplacer le cas échéant dans le bon forum).




    Ok, donc tu cherches à faire du C.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float 71 21 58 89 region
    Ça ne veut rien dire en C, et ne compilera certainement pas. D'ailleurs, ça ressemble plus à des numéros de département qu'à des numéros de région.

    Ce qui peut suivre un nom de type en C, c'est une fonction ou une variable qui, elle, pourra prendre toutes les valeurs que le type permet de représenter. Si toutefois, tu cherches à déclarer une variable qui ne peut accepter que des valeurs prédéfinies, tu peux voir du côté de enum. Et en plus, il manque un point-virgule final.

    France n'est déclarée nulle part. Si tu cherches à copier le mot « France » à l'intérieur de ton tableau, il faut d'une part utiliser les guillemets autour du mot, pour créer une chaîne, d'autre part utiliser une fonction de copie pour la dupliquer à l'intérieur du tableau que tu as déclaré : strncpy. Et il faudra faire un #include <string.h> pour pouvoir utiliser ces fonctions.

    Ça ne marchera pas non plus pour les mêmes raisons. Il faudra utiliser strcpy(). En plus, ton point-virgule, ici, arrive trop tôt. Tu vas entrer dans une boucle infinie et ton programme va bloquer.

    Ça, c'est presque bon. C'eût été valable dans le cas d'un nombre, par exemple, mais dans le cas d'un tableau, son symbole fait déjà office de pointeur sur la première case. Donc, le « & » est inutile dans ce cas précis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {code=Bourgogne;
    while(code!=Bourgogne);
    printf("Entrer le nom de la région ");
    scanf("%s", &code);
    }
    Les trois mêmes remarques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("Entrer le numéro du département : %f \n", region);
    Correct au niveau de la syntaxe, mais si tu invites l'utilisateur à saisir un code, tu ne fais en revanche aucune saisie derrière (avec scanf() ou autre).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(region=71)
    printf("Ce numéro correspond au département de la Saone et Loire \n");
    Erreur extrêmement répandue : « = » est l'opérateur d'affectation qui, ici, va placer la valeur 71 dans la variable « région ». Ce que tu cherches à faire est une comparaison, et ça se fait avec « == ». Même chose pour les deux suivants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else printf("Ce numéro correspond au département de lYonne \n");
    Deux remarques :

    1) Cette approche n'est valable que si tu es sûr que ta variable ne pourra pas prendre une autre valeur que les quatre que tu as traitées, ce qui est faux à moins d'utiliser une énumération.

    2) Ton « else » prendra effet à partir du moment où la dernière condition est fausse. Pas les trois dernières. À la place, il faut les chaîner avec « else if ».



    Désolé, tu ne maîtrises pas encore suffisamment le C pour passer en examen, mais ta manière de rédiger ton programme montre que tu pourras très vite t'en sortir ... à condition d'avoir les cours adéquats.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse rapide et détaillée, je sais pas si ca vient de ma prof ou quoi mais ce soir je vous montrerais un exemple que l'on a traité en cours (résolution d'équation du second degré) et tu verras la manière dont elle procède.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gao,
    Citation Envoyé par benjamin71 Voir le message
    Merci de ta réponse rapide et détaillée, je sais pas si ca vient de ma prof ou quoi mais ce soir je vous montrerais un exemple que l'on a traité en cours (résolution d'équation du second degré) et tu verras la manière dont elle procède.
    Peut-être, mais je doute qu'elle ait écrit du code comme le tien, qui ne peut même pas compiler.

    Ou alors, change de prof, ou porte plainte...
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Voila le début d'un programme fait en cours :


    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
    #include<stdio.h>
    #include<math.h>
    void main ()
     
    {float A, B, C, delta, x1, x2;
     
    printf("Entrer A : ");
    scanf("%f", &A);
     
    printf("Entrer B : ");
    scanf("%f", &B);
     
    printf("Entrer C : ");
    scanf("%f", &C);
     
     
    if(A==0)
    {
    if(B==0)
    {if(C==0)
    printf("Infinite de solution \n");
     
    else printf ("impossible \n");
    }
     
    else { printf("Equiation de degré 1 \n");
    x1=-C/B;
     
    printf("Solution x=%6.1f \n", x1);
    }
    }
     
    else {delta=B*B-4*A*C;
    if(delta<0)
    printf("racines complexes \n");
     
    else if(delta==0)
    {x1=-B/2/A;
    printf("solution double x=%6.2f, \n", x1);
    }
     
    else {x1=(-B+sqrt(delta)/2/A);
    printf("deux solutions , x1=%6.2f, \n", x1);
    x2=(-B-sqrt(delta)/2/A);
     
    printf("x2=%6.2f, \`n",x2);
     
    }
    }
    }
    Voila le programme que l'on a fait pour la résolution d'une équation du second degré;, mais comme tu peux le constater, ca ne ressemble pas tellement au programme que tu as modifié, non ?

  6. #6
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Salut,

    Obsidian t'a expliqué tes erreurs.
    Je ne vois pas le programme d'origine modifié.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    @benjamin71 :
    1. Ce code n'est pas du C++, mais du C.
    2. main() retourne un int. Toujours.
    3. Sans l'indentation, c'est vraiment dur à lire...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    A mon sens, on ne compare pas les float strictement, mais on utilise FLT_EPSILON.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon c'est bon, j'ai pu installer un programme permettant de compiler les .cpp et j'ai pu rentrer et modifier mes programmes.


    Je vous remercie de m'avoir accordé un peu de votre temps.



    Merci
    Cordialement Benjamin

Discussions similaires

  1. Requète d'un programme très simple
    Par Giovanni858 dans le forum Général Java
    Réponses: 1
    Dernier message: 26/05/2012, 10h57
  2. Réponses: 4
    Dernier message: 27/04/2009, 19h33
  3. Améliorer un programme très simple
    Par Alp dans le forum Prolog
    Réponses: 6
    Dernier message: 15/03/2008, 11h17
  4. Application Web Client/Serveur très très simple
    Par n_tony dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/03/2006, 14h29
  5. Demarage des programmes très long
    Par venegan dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 02/03/2006, 16h50

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