Exercice langage C : Réalisation des fonctions et programme calculette

 Il s'agit de reprendre l'exercice de la calculette en le découpant en fonctions.

Ecrire les fonctions suivantes :

- saisir_operande : elle demande de saisir un opérande (un flottant), elle effectue la saisie et elle retourne la valeur saisie

- saisir_operateur : elle demande de saisir un operateur (un caractère), elle effectue la saisie et elle retourne l'opérateur saisi

- afficher_resultat : elle effectue le calcul et elle affiche le résultat; elle a en paramètres les deux opérandes et l'opérateur; elle affiche un message d'erreur dans le cas de la division par zéro ou si l'opérateur est inconnu

-   continuer : elle demande si on veut faire une nouvelle opération, elle saisit la repense et elle retourne 1 si oui et 0 si non.

Ecrire un programme principal qui réalise la calculette en utilisant ces fonctions

/* Calculette simplifiee */
#include
/* Saisie d'un operande au clavier */
double saisir_operande (void)
{
double val;
printf ("operande : "); scanf ("%lf", &val);
return val;
}
/* Saisie d'un operateur au clavier */
char saisir_operateur (void)
{
char op;
printf ("operateur : "); scanf (" %c", &op);
return op;
}
/* Affichage de l'evaluation de l'expression */
void afficher_resultat (double nb1, double nb2, char op)
{
switch (op)
{
case '+' :
printf ("resultat = %f\n", nb1 + nb2);
break;
case '-' :
printf ("resultat = %f\n", nb1 - nb2);
break;
case '*' :
printf ("resultat = %f\n", nb1 * nb2);
break;
case '/' :
if (nb2 == 0)
printf ("divsion par zero\n");
else
printf ("resultat = %f\n", nb1 / nb2);
break;
default :
printf ("operation inconnue\n");
break;
}
}
/* test de continuation */
int continuer (void)
{
char rep;
printf ("continuer ? "); scanf (" %c", &rep);
return (rep == 'o' || rep == 'O');
}
int main ()
{
double x1, x2;
char op;
do
{
x1 = saisir_operande();
op = saisir_operateur();
x2 = saisir_operande();
afficher_resultat (x1, x2, op);
} while (continuer());
return 0;
}

Article publié le 23 Février 2012 Mise à jour le Lundi, 07 Novembre 2022 15:25 par BENKIRANE Fatima Ezzahra