TP Fraction
Objectif: construction d'une classe fraction.
Une fraction (ou nombre rationnel ) est un ensemble ordonné de deux entiers - numérateur et dénominateur - . Nous nous proposons ici de définir une classe fraction munie de ses principales opérations.
Question 1.
Travail à faire
Question 2.
On désire pouvoir instancier une fraction de trois manières différentes:
Travail à faire.
Pour tester la fraction, vous déclarerez une classe publique AppFraction avec une seule méthode Main. Enregistrer le fichier AppFraction.cs dans un répertoire Fraction. Compiler.
Question 3. Gestion de l'affichage.
Afin de ne pas mélanger ce qui concerne les fractions et leurs opérations d'une part et l'affichage d'autre part on vous propose de créer une classe Ecran qui assurera cette responsabilité d'affichage. Cette classe ne contiendra qu'une seule méthode statique Affiche(Fraction f).
Travail à faire.
class AppFraction{
static void
Main(){
Fraction
f = new Fraction(12,7);
Fraction
f1 = new Fraction(9);
Fraction
f2 = new Fraction();
Ecran.Affiche(f);
Ecran.Affiche(f1);
Ecran.Affiche(f2);
}
}
affiche :
Question 4 Opérations unaires
Fraction f = new Fraction(4,7);
f.Oppose(); // inverse le signe de la fraction, qui devient -4/7
Fraction f = new Fraction(4,7);
f.Inverse(); // inverse numérateur et dénominateur, qui devient 7/4
Question 5 opérateurs relationnels
Fraction f = new Fraction(11,7);
Fraction f1 = new Fraction(5,4);
f.Superieur( f1 ) retourne vrai
f.Inferieur( f1 ) retourne faux.
Fraction f = new Fraction(11,7);
Fraction f1 = new Fraction(22,14);
f.Egal ( f1 ) retourne vrai.
Question 6 pgcd
Algorithme du pgcd de deux nombres (Euclide).
soit a et b deux nombres
Tant que a est différent de b, si a est supérieur à b, a prend comme valeur a-b, sinon b prend la valeur b-a.
Il faudra par ailleurs s'assurer que numérateur et dénominateur ne sont pas nuls et ne traiter que deux nombres positifs.
Tester avec une fraction construite avec comme numérateur -75 et comme dénominateur 90 (doit retourner 15)
Question 7 Réduction et signe de la fraction
La méthode privée reduire() réduit la fraction courante en divisant numérateur et dénominateur par leur pgcd et traite le problème du signe de la fraction, le signe de la fraction est le signe de son numérateur, si le numérateur et le dénominateur sont négatifs, la fraction n'a pas de signe (implicitement +).
Fraction f3 = new Fraction(120,-150);
Ecran.affiche(f3); // affiche -4/5
Question 8 Opérations à deux opérandes.
On vous fournit le diagramme définitif de la classe Fraction :
Travail à faire