Introduction
Dans ce laboratoire, vous apprendrez à simplifier des fractions en utilisant l'algorithme du Plus Grand Commun Diviseur (PGCD) en langage C. Le laboratoire couvre les étapes suivantes : la lecture du numérateur et du dénominateur à partir de l'entrée utilisateur, le calcul du PGCD, puis la division du numérateur et du dénominateur par le PGCD pour obtenir la fraction simplifiée. Ce laboratoire vise à vous aider à comprendre le concept de simplification des fractions et à l'implémenter en utilisant les techniques de programmation C.
Lecture du Numérateur et du Dénominateur
Dans cette étape, vous apprendrez à lire le numérateur et le dénominateur à partir de l'entrée utilisateur dans un programme C pour la simplification de fractions.
Tout d'abord, créons un nouveau fichier C pour notre programme de simplification de fractions :
cd ~/project
nano fraction_simplify.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;
}
Compilons et exécutons le programme :
gcc fraction_simplify.c -o fraction_simplify
./fraction_simplify
Exemple de sortie :
Entrez le numérateur : 12
Entrez le dénominateur : 18
Numérateur : 12
Dénominateur : 18
Explication du code :
scanf()est utilisé pour lire l'entrée entière de l'utilisateur.%dest le spécificateur de format pour les entiers.&numeratoret&denominatortransmettent les adresses mémoire pour stocker les valeurs d'entrée.printf()est utilisé pour afficher le numérateur et le dénominateur saisis.
Calculer le PGCD et Diviser les Deux
Dans cette étape, vous implémenterez l'algorithme du Plus Grand Commun Diviseur (PGCD) et l'utiliserez pour simplifier la fraction.
Modifions le programme précédent pour ajouter une fonction de calcul du PGCD :
cd ~/project
nano fraction_simplify.c
Mettre à jour le code avec l'implémentation suivante :
#include <stdio.h>
// Fonction pour calculer le PGCD en utilisant l'algorithme d'Euclide
int computeGCD(int a, int b) {
// Assurer des valeurs positives
a = (a > 0) ? a : -a;
b = (b > 0) ? b : -b;
// Algorithme d'Euclide
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int numerator, denominator, gcd;
printf("Entrez le numérateur : ");
scanf("%d", &numerator);
printf("Entrez le dénominateur : ");
scanf("%d", &denominator);
// Calculer le PGCD
gcd = computeGCD(numerator, denominator);
// Simplifier la fraction
int simplified_numerator = numerator / gcd;
int simplified_denominator = denominator / gcd;
printf("Fraction originale : %d/%d\n", numerator, denominator);
printf("Fraction simplifiée : %d/%d\n", simplified_numerator, simplified_denominator);
return 0;
}
Compiler et exécuter le programme :
gcc fraction_simplify.c -o fraction_simplify
./fraction_simplify
Exemple de sortie :
Entrez le numérateur : 12
Entrez le dénominateur : 18
Fraction originale : 12/18
Fraction simplifiée : 2/3
Explication du code :
computeGCD()implémente l'algorithme d'Euclide pour trouver le Plus Grand Commun Diviseur.- La fonction gère les nombres positifs et négatifs.
- La fraction est simplifiée en divisant le numérateur et le dénominateur par leur PGCD.
- Gère les cas limites comme les nombres zéro et négatifs.
Afficher la Fraction Simplifiée
Dans cette étape, vous améliorerez le programme de simplification de fractions pour gérer divers scénarios d'entrée et fournir un formatage de sortie clair.
Mettre à jour le programme pour inclure une impression de fraction plus robuste :
cd ~/project
nano fraction_simplify.c
Mettre à jour le code avec l'implémentation suivante :
#include <stdio.h>
// Fonction pour calculer le PGCD en utilisant l'algorithme d'Euclide
int computeGCD(int a, int b) {
a = (a > 0) ? a : -a;
b = (b > 0) ? b : -b;
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
// Fonction pour afficher la fraction avec gestion des cas spéciaux
void printFraction(int numerator, int denominator) {
// Gérer la division par zéro
if (denominator == 0) {
printf("Erreur : La division par zéro n'est pas autorisée.\n");
return;
}
// Calculer le PGCD
int gcd = computeGCD(numerator, denominator);
// Simplifier la fraction
int simplified_numerator = numerator / gcd;
int simplified_denominator = denominator / gcd;
// Gérer le signe
if (simplified_denominator < 0) {
simplified_numerator = -simplified_numerator;
simplified_denominator = -simplified_denominator;
}
// Afficher les résultats
printf("Fraction originale : %d/%d\n", numerator, denominator);
// Sortie différente pour les nombres entiers et les fractions
if (simplified_denominator == 1) {
printf("Fraction simplifiée : %d\n", simplified_numerator);
} else {
printf("Fraction simplifiée : %d/%d\n",
simplified_numerator, simplified_denominator);
}
}
int main() {
int numerator, denominator;
printf("Entrez le numérateur : ");
scanf("%d", &numerator);
printf("Entrez le dénominateur : ");
scanf("%d", &denominator);
// Appeler la fonction d'impression de fraction
printFraction(numerator, denominator);
return 0;
}
Compiler et exécuter le programme :
gcc fraction_simplify.c -o fraction_simplify
./fraction_simplify
Exemples de sorties :
Entrez le numérateur : 12
Entrez le dénominateur : 18
Fraction originale : 12/18
Fraction simplifiée : 2/3
Entrez le numérateur : 15
Entrez le dénominateur : 5
Fraction originale : 15/5
Fraction simplifiée : 3
Entrez le numérateur : -12
Entrez le dénominateur : 18
Fraction originale : -12/18
Fraction simplifiée : -2/3
Explication du code :
- Fonction
printFraction()ajoutée pour gérer l'affichage des fractions. - Gère les cas spéciaux comme la division par zéro.
- Gère le signe de la fraction simplifiée.
- Affiche les nombres entiers lorsque le dénominateur est 1.
- Préserve le signe original de la fraction.
Résumé
Dans ce laboratoire, vous apprendrez à lire le numérateur et le dénominateur à partir de l'entrée utilisateur, à calculer le Plus Grand Commun Diviseur (PGCD) en utilisant l'algorithme d'Euclide, puis à simplifier la fraction en divisant le numérateur et le dénominateur par le PGCD. La fraction simplifiée sera affichée en sortie.
Les étapes clés sont : 1) lire le numérateur et le dénominateur à partir de l'entrée utilisateur, 2) implémenter l'algorithme du PGCD pour trouver le plus grand diviseur commun, et 3) diviser le numérateur et le dénominateur par le PGCD pour obtenir la fraction simplifiée.



