0% ont trouvé ce document utile (0 vote)
2 vues5 pages

TP4 Rational Java Rapport

Ce rapport présente le développement d'une classe Java, Rational, pour manipuler les nombres rationnels, incluant des opérations arithmétiques et la simplification automatique des fractions. La classe empêche la création de rationnels avec un dénominateur nul et inclut des méthodes pour la multiplication, l'addition et la comparaison d'égalité. Le programme de test valide le fonctionnement de la classe en affichant les résultats des opérations effectuées.

Transféré par

sibafosalomon
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues5 pages

TP4 Rational Java Rapport

Ce rapport présente le développement d'une classe Java, Rational, pour manipuler les nombres rationnels, incluant des opérations arithmétiques et la simplification automatique des fractions. La classe empêche la création de rationnels avec un dénominateur nul et inclut des méthodes pour la multiplication, l'addition et la comparaison d'égalité. Le programme de test valide le fonctionnement de la classe en affichant les résultats des opérations effectuées.

Transféré par

sibafosalomon
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

NOM : SIBAFO PIERRE SALOMON

MATRICULE :24I02863

FILIERE :GI FI 2

TP4 : Programmation Orientée Objet - Classe Rational (Java)


Ce rapport présente le développement complet d’une classe Java permettant de manipuler
les nombres rationnels. Un nombre rationnel est un nombre pouvant être exprimé sous la
forme d’un ratio n/d, où n est le numérateur et d le dénominateur. L’objectif est de
construire une classe robuste, capable d’effectuer des opérations arithmétiques, de
simplifier automatiquement les fractions et de vérifier les erreurs de création (comme un
dénominateur nul).

1. Définition de la classe Rational


La classe Rational représente un nombre rationnel à l’aide de deux entiers : num
(numérateur) et denom (dénominateur). Elle contient un constructeur, des méthodes
d’accès, et plusieurs opérations pour manipuler les fractions.

public class Rational {


private int num; // numérateur
private int denom; // dénominateur

// Constructeur
public Rational(int num, int denom) {
if (denom == 0) {
throw new IllegalArgumentException("Dénominateur nul !");
}
[Link] = num;
[Link] = denom;
simplify(); // toujours créer une fraction sous forme irréductible
}

// Méthode pour simplifier le rationnel


private void simplify() {
int pgcd = pgcd([Link](num), [Link](denom));
num /= pgcd;
denom /= pgcd;

// pour que le dénominateur soit toujours positif


if (denom < 0) {
denom = -denom;
num = -num;
}
}

// Calcul du PGCD (algorithme d’Euclide)


private int pgcd(int a, int b) {
if (b == 0) return a;
return pgcd(b, a % b);
}

// Getters
public int getNum() { return num; }
public int getDenom() { return denom; }

// Représentation textuelle
@Override
public String toString() {
return num + " / " + denom;
}

// Multiplication (a ← a * b)
public void mult(Rational b) {
[Link] *= [Link];
[Link] *= [Link];
simplify();
}

// Addition (a ← a + b)
public void add(Rational b) {
[Link] = [Link] * [Link] + [Link] * [Link];
[Link] *= [Link];
simplify();
}

// Test d’égalité entre deux rationnels


public boolean equals(Rational b) {
return [Link] == [Link] && [Link] == [Link];
}
}

Le constructeur de la classe empêche la création d’un rationnel avec un dénominateur nul


grâce à l’instruction « throw new IllegalArgumentException('Dénominateur nul !') ». Chaque
fraction est automatiquement simplifiée grâce à la méthode simplify(), qui utilise le calcul
du PGCD.

2. Programme de test

public class TestRational {


public static void main(String[] args) {
Rational r1 = new Rational(3, 2);
Rational r2 = new Rational(1, 3);

[Link]("r1 = " + r1);


[Link]("r2 = " + r2);

// Test multiplication
[Link](r2);
[Link]("Après multiplication : r1 = " + r1);

// Test addition
[Link](r2);
[Link]("Après addition : r1 = " + r1);

// Test égalité
Rational r3 = new Rational(8, 12); // 8/12 = 2/3
Rational r4 = new Rational(2, 3);
[Link]("r3 = " + r3);
[Link]("r4 = " + r4);
[Link]("r3 == r4 ? " + [Link](r4));
}
}

Le programme de test crée plusieurs objets Rational et vérifie le bon fonctionnement des
différentes méthodes. Les opérations sont affichées dans la console afin d’observer les
résultats et la simplification automatique des fractions.

3. Explications et observations
• Si l’on tente de créer un objet avec un dénominateur nul, le programme lève une exception
IllegalArgumentException.
• La méthode mult() modifie l’objet courant pour le multiplier par un autre rationnel.
• La méthode add() effectue l’addition de deux rationnels en respectant la formule
mathématique classique.
• La méthode equals() compare deux rationnels simplifiés et retourne true s’ils
représentent la même valeur.
• Grâce à simplify(), toutes les fractions créées sont automatiquement réduites à leur forme
irréductible.

4. Conclusion
Cette activité pratique a permis de mettre en œuvre les concepts fondamentaux de la
programmation orientée objet en Java, tels que l’encapsulation, les méthodes, la gestion des
exceptions et les invariants de classe. La classe Rational ainsi obtenue est une
représentation robuste et correcte des nombres rationnels.

Vous aimerez peut-être aussi