Évaluer des expressions rationnelles en C

CBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à évaluer des expressions rationnelles en programmation C. Le laboratoire couvre les étapes fondamentales de la lecture des expressions du numérateur et du dénominateur, du calcul de la valeur de la fraction en gérant les divisions par zéro, et de l'impression du résultat final. Cet exercice pratique vous aidera à développer les compétences nécessaires pour travailler avec des expressions algébriques en utilisant C.

Le laboratoire commence en vous guidant à travers le processus de lecture des entrées du numérateur et du dénominateur de l'utilisateur, en veillant à ce que les valeurs soient correctement stockées dans votre programme. Il introduit ensuite le concept de gestion des divisions par zéro, un problème courant lors du travail avec des fractions, et démontre comment aborder ce scénario. Enfin, le laboratoire couvre le calcul de la valeur de la fraction et l'affichage du résultat final.

Lecture des expressions du numérateur et du dénominateur

Dans cette étape, vous apprendrez à lire les expressions du numérateur et du dénominateur en C, une compétence fondamentale pour évaluer les expressions rationnelles.

Tout d'abord, créez un nouveau fichier C pour implémenter l'entrée d'expression rationnelle :

cd ~/project
nano rational_expressions.c

Maintenant, ajoutez le code suivant pour lire le numérateur et le dénominateur :

#include <stdio.h>

int main() {
    int numerator, denominator;

    printf("Entrez le numérateur : ");
    scanf("%d", &numerator);

    printf("Entrez le dénominateur : ");
    scanf("%d", &denominator);

    printf("Numérateur : %d\n", numerator);
    printf("Dénominateur : %d\n", denominator);

    return 0;
}

Compilez et exécutez le programme :

gcc rational_expressions.c -o rational_expressions
./rational_expressions

Exemple de sortie :

Entrez le numérateur : 10
Entrez le dénominateur : 5
Numérateur : 10
Dénominateur : 5

Décomposons le code :

  • scanf() est utilisé pour lire les entrées entières de l'utilisateur.
  • Le spécificateur de format %d est utilisé pour l'entrée entière.
  • Nous stockons le numérateur et le dénominateur dans des variables entières distinctes.
  • printf() est utilisé pour afficher les valeurs d'entrée.

Calculer la valeur de la fraction

Dans cette étape, vous apprendrez à calculer la valeur de la fraction en toute sécurité en gérant les divisions par zéro potentielles et en effectuant le calcul.

Modifiez le fichier rational_expressions.c précédent pour inclure le calcul de la fraction :

cd ~/project
nano rational_expressions.c

Modifiez le code pour calculer la valeur de la fraction :

#include <stdio.h>

int main() {
    int numerator, denominator;
    float fraction_value;

    printf("Entrez le numérateur : ");
    scanf("%d", &numerator);

    printf("Entrez le dénominateur : ");
    scanf("%d", &denominator);

    // Vérification de la division par zéro
    if (denominator == 0) {
        printf("Erreur : La division par zéro n'est pas autorisée.\n");
        return 1;
    }

    // Calcul de la valeur de la fraction
    fraction_value = (float)numerator / denominator;

    printf("Numérateur : %d\n", numerator);
    printf("Dénominateur : %d\n", denominator);
    printf("Valeur de la fraction : %.2f\n", fraction_value);

    return 0;
}

Compilez et exécutez le programme :

gcc rational_expressions.c -o rational_expressions
./rational_expressions

Exemple de sortie :

Entrez le numérateur : 10
Entrez le dénominateur : 4
Numérateur : 10
Dénominateur : 4
Valeur de la fraction : 2.50

Points clés du code :

  • Ajout d'une vérification de la division par zéro pour éviter les erreurs d'exécution.
  • Utilisation du casting (float) pour garantir une division en virgule flottante.
  • Affichage de la valeur de la fraction avec deux décimales à l'aide de %.2f.

Afficher le résultat ou gérer la division par zéro

Dans cette étape, vous améliorerez le programme d'expression rationnelle pour fournir une gestion d'erreur plus robuste et une présentation des résultats plus complète.

Mettre à jour le fichier rational_expressions.c pour améliorer la sortie et la gestion des erreurs :

cd ~/project
nano rational_expressions.c

Modifiez le code pour inclure une gestion avancée des erreurs et une mise en forme des résultats :

#include <stdio.h>
#include <stdlib.h>

int main() {
    int numerator, denominator;

    // Validation d'entrée et gestion des erreurs
    printf("Entrez le numérateur : ");
    if (scanf("%d", &numerator) != 1) {
        printf("Erreur : Entrée du numérateur invalide.\n");
        return 1;
    }

    printf("Entrez le dénominateur : ");
    if (scanf("%d", &denominator) != 1) {
        printf("Erreur : Entrée du dénominateur invalide.\n");
        return 1;
    }

    // Gestion complète de la division par zéro
    if (denominator == 0) {
        printf("Erreur : Impossible de diviser par zéro. Le dénominateur doit être non nul.\n");
        return 1;
    }

    // Calcul et affichage des résultats avec différents formats
    double fraction_value = (double)numerator / denominator;

    printf("\n--- Résultats de l'expression rationnelle ---\n");
    printf("Numérateur :      %d\n", numerator);
    printf("Dénominateur :    %d\n", denominator);
    printf("Valeur de la fraction : %.2f\n", fraction_value);
    printf("Résultat entier : %d\n", numerator / denominator);
    printf("Reste :      %d\n", numerator % denominator);

    return 0;
}

Compilez et exécutez le programme :

gcc rational_expressions.c -o rational_expressions
./rational_expressions

Exemples de sorties :

Calcul réussi :

Entrez le numérateur : 10
Entrez le dénominateur : 4

--- Résultats de l'expression rationnelle ---
Numérateur :      10
Dénominateur :    4
Valeur de la fraction : 2.50
Résultat entier : 2
Reste :      2

Division par zéro :

Entrez le numérateur : 10
Entrez le dénominateur : 0
Erreur : Impossible de diviser par zéro. Le dénominateur doit être non nul.

Entrée invalide :

Entrez le numérateur : abc
Erreur : Entrée du numérateur invalide.

Améliorations clés :

  • Ajout de la validation d'entrée à l'aide de la valeur de retour de scanf().
  • Messages d'erreur améliorés pour différents scénarios.
  • Présentation de multiples représentations des résultats.
  • Utilisation de double pour des calculs en virgule flottante plus précis.

Résumé

Dans ce laboratoire, vous avez appris à lire les expressions du numérateur et du dénominateur en C, une compétence fondamentale pour évaluer les expressions rationnelles. Vous avez également appris à calculer la valeur de la fraction en toute sécurité en gérant les divisions par zéro potentielles et en effectuant le calcul. Enfin, vous avez implémenté la capacité d'afficher le résultat ou de gérer les divisions par zéro. Ces étapes fournissent une base solide pour travailler avec les expressions rationnelles en programmation C.