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


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* 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;
}