0% ont trouvé ce document utile (0 vote)
36 vues2 pages

Correction Examen Java 2024

Ce document contient les réponses détaillées à un exercice sur la classe Point2D en Java. Il présente les méthodes et constructeurs nécessaires pour manipuler correctement des points, vérifier leur alignement et déterminer si trois points forment un triangle rectangle.

Transféré par

ignabayemedard
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues2 pages

Correction Examen Java 2024

Ce document contient les réponses détaillées à un exercice sur la classe Point2D en Java. Il présente les méthodes et constructeurs nécessaires pour manipuler correctement des points, vérifier leur alignement et déterminer si trois points forment un triangle rectangle.

Transféré par

ignabayemedard
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 PDF, TXT ou lisez en ligne sur Scribd

Correction Examen de Java 2024

Bounyamine Ousmanou
Fevrier 2024

Exercice 2 :
1. L’instruction [Link](new Point2D()) affiche Point2D: O(0.0, 0.0), car elle appelle le construc-
teur par défaut de la classe Point2D qui initialise les attributs abs et ord à 0 et name à ’O’.
2. Pour pouvoir exécuter la séquence :
Point2D point = new Point2D(’V’,2.0, 3.0);
Point2D pt2 = new Point2D(point);

sans erreur, il faut définir un constructeur de copie dans la classe Point2D qui prend en paramètre un objet
Point2D et qui copie ses attributs dans le nouvel objet, en utilisant la méthode namePoint pour modifier le
nom du point. Par exemple :
public Point2D(Point2D p) {
abs = [Link];
ord = [Link];
name = namePoint([Link]);
}
3. La condition associée à ce constructeur de copie est que le paramètre p ne soit pas null, sinon il faut lever
une exception ou renvoyer une valeur par défaut. Par exemple :
public Point2D(Point2D p) {
if (p == null) {
throw new IllegalArgumentException("Le point à copier ne peut pas être null");
}
abs = [Link];
ord = [Link];
name = namePoint([Link]);
}
4. La méthode pointsAlign permettant de vérifier si deux points sont alignés est la suivante :
public boolean pointsAlign(Point2D p) {
if (p == null) {
return false;
}
return abs == [Link] || ord == [Link];
}
5. La méthode threeToRectangular permettant de déterminer si trois points forment un triangle rectangle est
la suivante :
public boolean threeToRectangular(Point2D p1, Point2D p2) {
if (p1 == null || p2 == null) {
return false;
}
// on calcule les longueurs des côtés du triangle formé par les trois points
double a = distance(p1);

1
double b = distance(p2);
double c = [Link](p2);
// on trie les longueurs par ordre croissant
double min = [Link](a, [Link](b, c));
double max = [Link](a, [Link](b, c));
double mid = a + b + c - min - max;
// on applique le théorème de Pythagore
return [Link](min * min + mid * mid - max * max) < 1e-6;
}
6. La méthode alignmentJustify permettant d’afficher le justificatif de l’alignement de deux points est la sui-
vante :
public void alignmentJustify(Point2D p) {
if (p == null) {
[Link]("Le point à comparer ne peut pas être null");
return;
}
if (pointsAlign(p)) {
if (abs == [Link]) {
[Link](this + " et " + p + " alignés par abscisse " + abs);
} else {
[Link](this + " et " + p + " alignés par ordonnée " + ord);
}
} else {
[Link](this + " et " + p + " ne sont pas alignés");
}
}

Vous aimerez peut-être aussi