Niveau 8 : Projet Calculatrice Basique

đŸ”„ 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 ou switch).
  • L’usage de scanf et printf 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 que scanf("%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 par int 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 et operation == '/', affiche un message d’erreur et arrĂȘte le programme.
  • Indice 2 : Utilise else if pour enchaĂźner les diffĂ©rentes opĂ©rations, ou un switch 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 type char) 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 ! 🚀