Vous êtes sur la page 1sur 4

Universit Paris 7 e Licence Informatique

Java Anne 2005-2006 e

TD n1
Premi`res classes e

Exercice 1 Quache le programme suivant ? public class Ex1 { int a = 0 ; public void f() { a++ ; } public void affiche() { System.out.println(a); } public static void main(String [] args) { Ex1 p = new Ex1(); Ex1 q = new Ex1(); p.affiche(); q.affiche(); p.f(); p.affiche(); q.affiche(); p = q; p.f(); p.affiche(); q.affiche(); } }

Exercice 2 Quache le programme suivant ? public class Ex2 { int a = 0 ; public static void f(Ex2 o) { o.a++ ; o.affiche(); } public void affiche() { System.out.println(a); } public static void main(String[] args) { Ex2 obj = new Ex2(); obj.affiche(); f(obj) ; obj.affiche(); } } Exercice 3 Quache le programme suivant ? public class Ex3 { int a = 0 ; public void f(int a) { System.out.println(a) ; } public static void main(String[] args) { Ex3 p = new Ex3(); p.f(12); } } Dans la fonction f, comment faire si on veut galement acher la valeur de lattribut a ? e

Exercice 4 Soit le programme suivant : // Fichier Point.java class Point { // deux attributs de type int int abscisse; int ordonnee; // constructeur Point(){ abscisse = 0 ; ordonnee = 0 ; } // mthode permettant de changer les coordonnes dun point e e void set( int u , int v ){ abscisse = u ; ordonnee = v ; } // mthode permettant de translater un point e void translate( int u , int v ){ abscisse = abscisse + u ; ordonnee = ordonnee + v ; } } 1. Ajouter ` la classe Point la mthode affiche, de type de retour void, de sorte que a e p.affiche() ache ` lecran labscisse et lordonne de p. a e 2. Ajouter ` la classe Point la mthode origine, de type de retour boolean qui teste si a e les coordonnes du point sont nulles. Ajouter galement une mthode egale telle que e e e p.egale(q) renvoie true si et seulement si les abscisses et ordonnes des points p et q e sont gaux. e 3. Ecrire un deuxi`me constructeur de la classe Point, dont le prototype est Point( int u , int v ) e qui permet dinitialiser labscisse et lordonne avec u et v. Ecrire une seconde mthode e e set, prenant en argument un objet de la classe Point, et qui recopie les attributs de ces arguments. 4. Ajouter ` la classe Point une mthode symetrie telle que p.symetrie() renvoie un noua e vel objet Point qui reprsente le symtrique du point p, dans une symtrie centrale par e e e rapport ` lorigine du rep`re. a e 5. On veut numroter les points au fur et ` mesure de leur cration. On ajoute donc les e a e variables suivantes : static int nombre ; int numero ; o` lattribut numero indique le numero du point et o` la variable de classe nombre indique u u combien dobjets ont t crs. e e ee Rcrire les constructeurs Point en consquence. Rcrire galement la mthode affiche ee e ee e e pour observer la valeur de ces nouveaux attributs.

Exercice 5 Ecrire une classe implmentant une paire dentier : e 1. Dnir une classe Paire dont le constructeur initialise les attributs privs de la paire. e e Dnir une mthode affiche et une fonction main pour tester cette classe. e e 2. Dnir un deuxi`me constructeur, qui initialisera ` 0 les composants de la paire. e e a 3. Dnir un troisi`me constructeur, qui initialisera une paire ` laide dune autre paire. e e a 4. Dnir des fonctions permettant daccder et de modier chaque lment de la paire. e e ee Exercice 6 Algorithmes de tri na sur des Paires dentiers : fs, 1. Enrichir la classe Paire dune mthode dnissant quand une paire est infrieure ` une e e e a autre selon la r`gle lexicographique suivante : e (x1, y1) < (x2, y2) ssi (x1 < x2) ou (x1 = x2 et y1 < y2). 2. Le principe du tri bulle est de parcourir un tableau jusqu` ce quil soit tri. A chaque a e parcours, on compare deux ` deux les lments conscutifs et on les permute sils ne sont a ee e pas dans lordre. Si lors dun parcours on na permut aucun lment, le tableau est tri. e ee e Crer une classe Tri, et une methode statique Tribulle qui trie un tableau de paires. e 3. Le principe du tri par insertion consiste ` considrer une ` une les valeurs du tableau, et ` a e a a les insrer au bon endroit dans le tableau constitu des valeurs prcdemment considres e e e e ee et tries. Le tableau est donc parcouru de droite ` gauche, dans lordre dcroissant. Les e a e lments sont donc dcals vers la droite tant que llment ` insrer est plus petit queux. ee e e ee a e D`s que llment ` insrer est plus grand quun des lments du tableau tri, il ny a plus e ee a e ee e de dcalage et on ins`re llment dans la case laisse vacante. Crer une mthode statique e e ee e e e TriInsertion qui trie un tableau de paires. 4. Le principe du tri fusion suit la stratgie diviser pour rgner : on divise le tableau ` trier e e a en deux parties, on trie (rcursivement) chacune dentre elle, et on fusionne le rsultat. e e Crer une mthode statique TriFusion qui trie un tableau de paires. e e 5. Pour les trois algorithmes de tri que vous avez implment, et pour les deux tableaux e e suivants : {(3, 3), (2, 2), (1, 1), (0, 0)} {(0, 0), (1, 1), (2, 2), (3, 3)} Combien de comparaisons de paire ont t eectues ? Combien de rfrences vers des ee e ee objets de la classe Paire ont t dclares lors du tri ? ee e e

Vous aimerez peut-être aussi