đ„ Level 8 : Calculatrice Basique đ§źđ
Objectif :
CrĂ©er un mini-programme en C oĂč lâutilisateur peut effectuer des opĂ©rations mathĂ©matiques de base : addition, soustraction, multiplication et division.
Concepts révisés :
- Les conditions (
if/else
ouswitch
). - Lâusage de
scanf
etprintf
pour interagir avec lâutilisateur. - Gestion des opĂ©rations de base (addition, soustraction, multiplication, division).
- Optionnel : lâusage dâune boucle pour rĂ©itĂ©rer les calculs jusquâĂ ce que lâutilisateur quitte.
ActivitĂ© 1 : Squelette du programme đ€
Exercice : Commencez par Ă©crire un programme minimal qui :
- Inclut la bibliothĂšque
<stdio.h>
. - Affiche un message de bienvenue.
- Demande Ă lâutilisateur une opĂ©ration Ă effectuer.
// Activité 1 : Squelette du programme
#include
int main() {
char operation;
printf("=== Calculatrice Basique ===\n");
printf("Choisissez une operation (+, -, *, /) : ");
scanf(" %c", &operation); // espace avant %c pour ignorer le retour chariot
printf("Vous avez choisi : %c\n", operation);
return 0;
}
Indices :
- Indice 1 : Utilise
scanf(" %c", &operation)
plutĂŽt quescanf("%c", &operation)
pour éviter le problÚme du caractÚre « retour chariot » restant en mémoire. - Indice 2 : Vérifie avec
printf
que lâopĂ©ration lue est correcte.
ActivitĂ© 2 : Saisir deux nombres đ§ź
Exercice : Modifie le programme pour lire deux nombres (entiers ou réels) et afficher ces valeurs.
// Activité 2 : Saisie des nombres
#include
int main() {
char operation;
float nombre1, nombre2;
printf("=== Calculatrice Basique ===\n");
printf("Choisissez une operation (+, -, *, /) : ");
scanf(" %c", &operation);
printf("Entrez le premier nombre : ");
scanf("%f", &nombre1);
printf("Entrez le second nombre : ");
scanf("%f", &nombre2);
printf("Operation : %c\n", operation);
printf("Nombre 1 : %.2f, Nombre 2 : %.2f\n", nombre1, nombre2);
return 0;
}
Indices :
- Indice 1 : Remplace
float
parint
si tu ne veux gérer que des entiers.float
permettra la division réelle. - Indice 2 : Avec
printf
,%.2f
affiche 2 dĂ©cimales. Tu peux lâajuster selon tes besoins.
ActivitĂ© 3 : Effectuer lâopĂ©ration et afficher le rĂ©sultat đïž
Exercice : Compare la variable operation
Ă '+'
, '-'
, '*'
, '/'
et fais le calcul correspondant. Affiche ensuite le résultat.
// Activité 3 : Calcul du resultat
#include
int main() {
char operation;
float nombre1, nombre2, resultat;
printf("=== Calculatrice Basique ===\n");
printf("Choisissez une operation (+, -, *, /) : ");
scanf(" %c", &operation);
printf("Entrez le premier nombre : ");
scanf("%f", &nombre1);
printf("Entrez le second nombre : ");
scanf("%f", &nombre2);
if (operation == '+') {
resultat = nombre1 + nombre2;
} else if (operation == '-') {
resultat = nombre1 - nombre2;
} else if (operation == '*') {
resultat = nombre1 * nombre2;
} else if (operation == '/') {
// Verifier la division par zero
if (nombre2 == 0) {
printf("Erreur : Division par zero !\n");
return 0;
}
resultat = nombre1 / nombre2;
} else {
printf("Operation invalide !\n");
return 0;
}
printf("Resultat : %.2f\n", resultat);
return 0;
}
Indices :
- Indice 1 : GÚre la division par zéro : si
nombre2 == 0
etoperation == '/'
, affiche un message dâerreur et arrĂȘte le programme. - Indice 2 : Utilise
else if
pour enchaßner les différentes opérations, ou unswitch
si tu prĂ©fĂšres. - Indice 3 : Si lâopĂ©ration est invalide, affiche un message et quitte le programme.
ActivitĂ© 4 : Rendre la calculatrice itĂ©rative đ§ (Optionnel)
Exercice : Propose Ă lâutilisateur de faire plusieurs calculs de suite, tant quâil nâentre pas une commande pour quitter.
// Activité 4 : Rejouer plusieurs calculs
#include
int main() {
char operation, continuer = 'o';
float nombre1, nombre2, resultat;
while (continuer == 'o' || continuer == 'O') {
printf("=== Calculatrice Basique ===\n");
printf("Choisissez une operation (+, -, *, /) : ");
scanf(" %c", &operation);
printf("Entrez le premier nombre : ");
scanf("%f", &nombre1);
printf("Entrez le second nombre : ");
scanf("%f", &nombre2);
if (operation == '+') {
resultat = nombre1 + nombre2;
} else if (operation == '-') {
resultat = nombre1 - nombre2;
} else if (operation == '*') {
resultat = nombre1 * nombre2;
} else if (operation == '/') {
if (nombre2 == 0) {
printf("Erreur : Division par zero !\n");
// On ne calcule pas de resultat, on sort de la boucle
goto suite;
}
resultat = nombre1 / nombre2;
} else {
printf("Operation invalide !\n");
goto suite;
}
printf("Resultat : %.2f\n", resultat);
suite:
// Propose de continuer
printf("Voulez-vous faire un autre calcul ? (o/n) ");
scanf(" %c", &continuer);
}
printf("Fin de la session Calculatrice.\n");
return 0;
}
Indices :
- Indice 1 : DĂ©clare une variable
continuer
(de typechar
) qui vaut âoâ ou âOâ pour continuer. - Indice 2 : Un
while
permet de boucler tant que lâutilisateur souhaite poursuivre. - Indice 3 : GĂšre toujours la division par zĂ©ro en vĂ©rifiant
nombre2 == 0
.
BRAVO, tu viens de terminer le niveau 8 ! đ
Tu as maintenant une calculatrice basique qui te permet dâeffectuer des opĂ©rations arithmĂ©tiques simples :
- Addition (+)
- Soustraction (-)
- Multiplication (*)
- Division (/)
Continue Ă lâamĂ©liorer (ajouter un menu, gĂ©rer dâautres opĂ©rations, personnaliser lâaffichageâŠ) et amuse-toi avec le code ! đ