-
Définir la classe Temperature, qui permet de représenter une température. La température pourra être obtenue, ou modifiée en utilisant les échelles de température Kelvin, Celsius, Fahrenheit et Newton.
-
Définir la classe Devise, qui permet de représenter
une somme exprimée en Euros. La somme pourra être obtenue, ou modifiée en utilisant d'autres devises Dollar US, Yuan,
Rouble et Livre Sterling.
(On pourra obtenir des cours plus récents en utilisant le webservice de www.webservicex.net
qui retourne les taux de change entre devises)
-
Définir la classe Angle, qui permet de représenter un angle exprimé en radians. L'angle pourra être obtenu, ou modifié en utilisant d'autres systèmes de mesure degré et grade. La classe devra être munie des méthodes plus et moins.
-
Définir la classe Pression, qui permet de représenter une pression exprimée en Pascal. La pression pourra être obtenue, ou modifiée en utilisant d'autres systèmes de mesure athmosphère, bar, mm de mercure ou PSI. La classe devra être munie des méthodes plus et moins.
-
× | i | j | k |
i | -1 | k | -j |
j | -k | -1 | i |
k | j | -i | -1 |
Un quaternion est un nombre h = a + i×b + j×c + k×d avec a, b, c et d réels.
Les nombres i, j, et k sont tels que :
Définir un contructeur qui a quatre paramètres réels.
Définir les méthodes toString, addition, multiplication et norme.
-
Un polynome en mathématique est une expression de la forme : p(x)= c0×x0+c1×x1+c2×x2+ ... +cn×xn. Les coefficients c et la variable x appartiennent à un anneau unitaire : un ensemble muni de deux lois de composition interne :
- Une loi notée +, qui est commutative, associative et a un élément neutre noté 0. Tout élément a un inverse pour cette loi.
- Une loi notée × , qui est associative, distributive par rapport à + et a un élément neutre noté 1.
L'exposant le plus grand de la variable qui a un coefficient non nul est le degré du polynome. Par convention le degré du polynome dont tous les coefficients sont nuls est -∞.
- Définir l'interface AnneauU possédant les méthodes suivantes :
- AnneauU getZero();
- AnneauU getUn();
- AnneauU plus(AnneauU a);
- AnneauU mult(AnneauU a);
- String toString();
- Définir une classe Entier qui implémente AnneauU.
- Définir la classe Polynome qui a des coefficients qui sont des AnneauU. La classe Polynome a les méthodes suivantes :
- Polynome plus (Polynome p)
- Polynome mult(Polynome a);
- AnneauU evaluer(AnneauU x); qui évalue le polynome pour une valeur de la variable x.
- String toString();
- polynome getZero();
- polynome getUn();
-
Un peu de géométrie ...
-
Définir la classe Point. Un Point est représenté par deux double qui sont les coordonnées du point dans un plan. On définira les méthodes suivantes :
- equals(Object o) retourne true si les deux points sont égaux et false sinon. Deux points sont égaux si leurs coordonnées sont égales à Point.PRECISION près.
- toString() retourne une chaîne de caractères contenant les coordonnées du point entre parenthèses.
- distance(Point p) retourne la distance du point au point p.
- estProche(Point p) retourne true si la distance du point à p est inférieure ou égale à Point.PROXIMITE.
- deplaceDe(int dx, int dy) qui déplace le point de dx et dy.
-
Définir la classe Ligne. Une Ligne est représentée par deux points non confondus. On définira les constructeurs suivants :
- ligne(point d, Point a) qui définit la ligne passant par les deux points d et a, non confondus.
- ligne(point d, double angle) qui définit la ligne passant par le point d et faisant un angle angle avec l'horizontale.
On définira les méthodes suivantes :
- getAngle() qui retourne l'angle de la ligne avec l'horizontale.
- contient (Point p) qui retourne true si le point p est sur la ligne et false sinon.
- estConfondue(Ligne l)
retourne true si les deux lignes sont confondues et false sinon.
- estParallele(Ligne l) retourne true si les deux lignes sont parallèles (non confondues) et false sinon.
- intersection(Ligne l) retourne le point d'intersection des deux lignes s'il existe. La méthode retourne null si les lignes sont parallèles et lève une exception si les lignes sont confondues.
- deplaceDe(int dx, int dy) qui déplace la ligne de dx et dy.
-
Définir la classe Segment sous-classe de Ligne, qui représente un segment de droite : on ne prend en compte que les points de la ligne qui sont compris entre d et a. Définir le constructeur et rédéfinir les méthodes qui doivent l'être dans la classe Segment.
- Une ligne brisée est un ensemble de points reliés par des segments.
Définir la classe LigneBrisee munie du constructeur et des méthodes suivantes :
- LigneBrisee(Point[] ps) qui construit une ligne brisée à partir d'un tableau de points.
- deplaceDe(int dx, int dy) qui déplace la ligne brisée de dx et dy.
- longueur() qui retourne la longueur de la ligne brisée.
- estCroise() qui retourne true si un des segments de la ligne brisée coupe un autre segment de la ligne brisée et false sinon.
-
Définir la classe Polygone, sous-classe de la classe LigneBrisee, qui définit trois méthodes supplémentaires :
- estConvexe() qui retourne true si le polygone est convexe et false sinon.
- centreGravite() qui retourne un point, centre de gravité du polygone.
- surface() qui retourne la surface du polygone.