Académique Documents
Professionnel Documents
Culture Documents
Exercice n° 2
En Java, les chaînes de caractères sont représentées par des objets de la classe String,
dont les instances sont non mutables. On souhaite pouvoir convertir des chaînes de
caractères contenant des nombres en valeur entières. Le faire en utilisant la méthode
statique static int parseInt(String) de la classe Integer. Définir une chaîne de
caractères contenant un entier et obtenir sa valeur sous forme d'entier (int). Faire
attention au fait que la méthode parseInt peut lever
l'exception NumberFormatException. Déclarer une chaîne de caractères contenant un
nombre réel et obtenir sa valeur sous la forme d'un flottant (double).
Exercice n° 3 (Tableaux)
Exercice n° 4
Exercice n° 5
Écrire une programme qui prend une liste d'entiers sur la ligne de commande, les
recopie dans un tableau d'entiers, trie le tableau puis finalement affiche le contenu du
tableau.
Exercice n° 7
Exercice n° 8
On considère des rectangles dans le plan. Dans un premier temps, on suppose pour
simplifier que les côtés des rectangles sont parallèles aux axes. Un rectangle est donc
complètement déterminé par le point en bas et à gauche et par ses dimensions
horizontale et verticale.
Exercice n° 1 (Rectangle)
Définir une classe Rectangle permettant de manipuler de tels objets. Définir trois
constructeurs prenant respectivement en paramètre 2 points, 1 points et 2 longueurs ou
4 longueurs.
Exercice n° 2
Écrire une méthode surface qui calcule la surface du rectangle. Écrire une
méthode translate qui déplace un rectangle en déplaçant le point en bas et à gauche.
Que se passe-t-il si plusieurs rectangles partagent le même point.
Exercice n° 3
Écrire une méthode contains qui teste si un point donné (en paramètre) est à l'intérieur
du rectangle. Écrire une autre méthode contains qui teste si un rectangle donné est à
l'intérieur du rectangle.
Exercice n° 4
Exercice n° 5
Exercice n° 6
Écrire une méthode hull qui calcule le rectangle englobant d'un ensemble de
rectangles. Cette méthode prend en paramètre un tableau de rectangles et retourne le
plus petit rectangle qui contient tous les rectangles du tableau.
Définir une classe Dessin. Chaque objet de cette classe contient un tableau de
rectangles dont la taille est fixée à la construction de l'objet. Au départ, un dessin ne
contient aucun rectangle. Écrire une méthode add qui permet d'ajouter un rectangle à
un dessin.
Exercice n° 8
Écrire des méthodes surface et translate pour la classe Dessin. La surface d'un dessin
est la somme des surfaces de ses rectangles même si ceux-ci se superposent. Translater
un dessin consiste à translater chacun de ses rectangle.
Exercice n° 9
Ajouter à la classe Dessin une méthode hull qui calcule le rectangle englobant des
rectangles du dessin. Afin de pouvoir calculer de manière incrémentale ce rectangle
englobant, ajouter un attribut hullRect à la classe Dessin et modifier les méthodes pour
qu'elles prennent en compte cet attribut.
Héritage, masquage de méthode et liaison tardive
On considère des rectangles donc les côtés ne sont plus nécessairement parallèles aux
axes. Un tel rectangle est vu comme un rectangle aux côtés parallèles qui aurait été
incliné d'un certain angle par rapport à l'horizontale.
Exercice n° 1
Exercice n° 2
Exercice n° 3
Exercice n° 4
Pour chacun des appels de méthode ci-dessous, dire s'il va être compilé correctement
et auquel cas, quelle méthode est appelée effectivement à l'exécution ?
Point p = new Point(1,2);
Rectangle r = new Rectangle(p, 2, 3);
Rectangle t = new SlantedRectangle(p, 2, 3);
SlantedRectangle s = new SlantedRectangle(p, 2, 3);
System.out.println(r.surface());
r.rotate(2);
System.out.println(r.contains(p));
System.out.println(t.surface());
t.rotate(2);
System.out.println(t.contains(p));
System.out.println(s.surface());
s.rotate(2);
System.out.println(s.contains(p));
Exercice n° 5
Est-ce que la classe Dessin définie précédemment peut contenir des rectangle inclinés
? Est-ce que les méthodes surface, contains et hull de la classe Dessin fonctionnent
encore correctement ?
Exercice n° 6
Définir une méthode String toString() dans la classe Rectangle ? Est-ce en fait une
définition ou une redéfinition ? Est-il nécessaire de la redéfinir dans la
classe SlantedRectangle ?
Exercice n° 7
Exercice n° 8
a.f(a);
a.f(ab);
a.f(b);
ab.f(a);
ab.f(ab);
ab.f(b);
b.f(a);
b.f(ab);
b.f(b);
Exercice n° 9
Exercice n° 10
Exercice n° 11
Exercice n° 12
Exercice n° 13
System.out.println(c.ch);
System.out.println(c.getCh());
System.out.println(cd.ch);
System.out.println(cd.getCh());
System.out.println(d.ch);
System.out.println(d.getCh());