Mode conversationnel
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Mode conversationnel



  1. #1
    invite2ec0a62b

    Mode conversationnel


    ------

    Bonjour,
    je suis débutante en C, et je voudrai résoudre l'exercice suivant
    Ecrire un programme en C qui permet de saisir deux nombres réels et afficher le résultat d'une opération arithmétique ('+';'-';'*';'/') choisie par l'utilisateur en mode conversationnel sur les deux nombres. Le programme doit asurer le contrôle de la lecture de l'opération : si l'utilisateur tape un caractère différent des 4 symboles ('+';'-';'*';'/'), on doit lui demander de répéter le choix de l'opération car il a fait un mauvais choix.

    Je sais qu'il faut commencer comme suit :

    Code:
    #include<stdio.h>
    main()
    {
    float a,b,c
    printf("saisir la valeur de a :");
    scanf("%f",&a);
    printf("saisir la valeur de b :");
    scanf("%f",&b);
    printf("quelle est l'opération arithmétique que vous voulez effectuer sur ces deux nombres ?");
    je ne sais pas comment continuer, je sais qu'il faut utiliser if et else ...
    pouvez vous m'aider svp..

    -----
    Dernière modification par yoda1234 ; 14/11/2011 à 07h25.

  2. #2
    polo974

    Re : Mode conversationnel

    avant de faire des if(...)
    il faudrait saisir le caractère correspondant à l'opération

    mais avant tout, le déclarer.

    en lisant la doc sur scanf, au rayon %.... il y a de quoi lire juste un char...
    Jusqu'ici tout va bien...

  3. #3
    mp3dux

    Re : Mode conversationnel

    Oui c'est un peu comme l'a dit polo974, il est bien pour toi de réfléchir à la question comme tu l'as déjà commencé...

    as tu déjà réfléchi à la division par zero ? si b==0 tu as un plantage de ton programme. Donc si l'utilisateur choisi la division tu dois
    faire un test pour vérifier si b est égale à zero, bref ça dépend si tu demandes quel type d'opération avant de saisir les nombres ou après les avoir saisis.


    printf("quelle est l'opération arithmétique que vous voulez effectuer sur ces deux nombres ?");
    scanf("%c",&c);

    %c c'est pour les caractères donc tu peux tester
    if (c=='+') alors...
    if(c=='-') alors...
    etc.

    Le problème est que uniquement avec les "if" tu ne pourras pas demander de ressaisir indéfiniment. Donc il te faut une boucle et une structure de test où tu vérifies
    le caractère choisi, ensuite en fonction du caractère tu fais l'opération adéquate *,-, +, /.

    En cela le switch... case est ce qu’il te faut.
    Ensuite tu mets ton switch...case dans une boucle do...while qui permettra de répéter l'opération (que fait le switch) si le caractère est différent des 4 voulues (/, *, -, +)

    do { scanf("%c",&c);}
    while (c différent de /,*,-,+) ;

    voilà dis ce que tu as compris après on t'aidera, tu as tout ce qu'il te faut ici
    http://www.siteduzero.com/tutoriel-3...html#ss_part_3

    bon courage.

Discussions similaires

  1. PIC différence entre le mode iddle et le mode sleep
    Par invitea4daa5e1 dans le forum Électronique
    Réponses: 4
    Dernier message: 18/01/2010, 10h30
  2. Réponses: 1
    Dernier message: 09/09/2009, 16h47
  3. fanuc conversationnel
    Par inviteb73ff7fa dans le forum Technologies
    Réponses: 2
    Dernier message: 27/12/2008, 10h01
  4. Réponses: 4
    Dernier message: 25/10/2008, 06h26
  5. Réponses: 24
    Dernier message: 19/06/2008, 14h48