Ecole nationale des sciences de l'informatique 2017-2018
TD Java
Chapitre1, Chapitre2
- Introduction
- Classes et objets et notions complémentaires
Exercice 1: renvoi d'objet + get et set
Ecrivez une classe Rationnel qui définit les nombres rationnels.
La classe a les attributs privés suivants :
numerateur : Le numérateur;
denominateur : Le dénominateur.
La classe Rationnel doit disposer des constructeurs suivants :
Rationnel();
Rationnel(int numerateur, int denominateur);
Rationnel(Rationnel r).
La classe Rationnel doit contenir des accesseurs (get) et mutateurs (set) pour les
différents attributs.
Elle doit aussi contenir les méthodes :
void ajouter(Rationnel r) : ajout du Rationnel en paramètre;
void soustraire(Rationnel r) : soustraction du Rationnel en paramètre;
void multiplier(Rationnel r) : multiplication avec le Rationnel en paramètre;
void diviser(Rationnel r) : division par Rationnel en paramètre;
double evaluer() : renvoie le résultat sous la forme d'un nombre réel;
Rationnel inverser() : renvoie le Rationnel inverse ;
void afficher() : affiche une représentation du rationnel (a/b).
Ecrivez aussi une classe TestRationnel afin de tester la classe Rationnel.
Exercice 2: méthode statique + surcharge
Fournissez la classe Point conçue de manière à ce que le programme suivant
fonctionne correctement :
class TestPoint
{
public static void main(String[] args)
{
// Création du point de coordonnées x=1 et y=3
Point p1 = new Point(1.0, 3.0);
// Création du point de coordonnées x=5 et y=6
Point p2 = new Point(5.0, 6.0);
// Création du point de coordonnées x=2 et y=7
Point p3 = new Point(2.0, 7.0);
Ecole nationale des sciences de l'informatique 2017-2018
p1.affiche( ); // affiche : p = (1.0 , 3.0)
p2.affiche( ); // affiche : p = (5.0 , 6.0)
p3.affiche( ); // affiche : p = (2.0 , 7.0)
// affiche la distance entre p1 et p2
System.out.println("Distance entre p1 et p2 = " +p1.distance (p2));
// affiche la distance entre p1 et p3
System.out.println("Distance entre p1 et p3 = " + Point.distance(p1,p3));
}
}
Indications :
La distance entre deux points (x1,y1) et (x2,y2) est égale à :
2 2
d= √( x 2−x1 ) + ( y 2− y 1 )
La classe prédéfinie Math contient des méthodes static permettant de calculer la
racine carré et la puissance d'un certain nombre, voici la déclaration de ces
méthodes :
class Math {
// Méthode sqrt : retourne la racine carré de nb
public static double sqrt(double nb) {…}
// Méthode pow : retourne nbpuissance
public static double pow(double nb, double puissance) {…}
//… }
Exercice 3: Tableau
On considère une classe nommée Polynome représentant des polynômes. Cette
classe est dotée de deux champs, ordre dénotant l’ordre du polynôme (la valeur du
plus grand coefficient) et donnees, un tableau stockant les coefficients du polynôme.
Par exemple 2+5x+6x2 aura un ordre égal à 2 et données égal à {2, 5, 6}.
1/ Voici le squelette de la classe à compléter :
class Polynome {
private double donnees [ ];
private int ordre;
// Constructeur ayant comme arguments l’ordre et un tableau de données
Polynome(int o, double[] tab) { ... }
// Constructeur par recopie du polynôme en paramètre
Polynome(Polynome p) { ... }
// Retourne un polynôme somme du polynôme courant et le polynôme en paramètre
Polynome ajouter(Polynome p) { ... }
Ecole nationale des sciences de l'informatique 2017-2018
// Retourne un polynôme résultat de la multiplication du polynôme courant par un
double en paramètre
Polynome multiplier(double d) { ... }
// Evaluation du polynôme courant en x
double evaluer(double x) { ... }
// La méthode affiche le polynôme sous sa forme habituelle
void affiche { ... }
}
2/ Tester dans main toutes ces méthodes.