TPs Rattrapage Java 1ère partie : Modélisation objet

publicité
Master Mathématique et Informatique - M1 – Année 2009/2010
TPs Rattrapage Java
1ère partie : Modélisation objet
Ici, on implémente pas : il s'agit juste de réfléchir! (Par contre vous devez écrire !!)
- Exo1 Trouver, par le sens des mots, une identité, des propriétés et des méthodes dans les listes
suivantes :
- coordonnées, ouvrir, fenêtre, déplacer, taille, couleur, faire un zoom
- empiler, haut, bas, pile, dépiler, taille
- téléviseur, volume, afficher image, modifier couleur, contraste
- Exo 2 Déterminer les classes, les objets, les attributs, les méthodes :
“Une liaison routière p eut être une autoroute, une route de montagne (qui a une
dénivellation) ou une nationale. Elle possède une longueur, une vitesse moyenne de
déplacement des automobilistes et une durée moyenne de parcours. Elle est toujours à
sens unique et possède une commune de départ et d'arrivée. Chaque commune a un
nom, une liste de liaisons routières sortantes et un nombre de liaisons routières sortantes.
Si c'est une ville elle a une durée moyenne de traversée, si c'est un village non. Il existe
une nationale entre Châteaurenard et Aix, une nationale et une autoroute entre Aix et
Nice, une route de montagne entre Châteaurenard et Nice et une autoroute entre Aix et
Marseille.”
2ème partie : Les bases de Java
Ici, on implémente : à vos machines !
- Exo 3 - Réponses aux « énigmes » du cours …
Écrire le programme qui vous permet de tester que : toutes les conversions de type (cast)
doivent être explicites et cohérentes. Et ceci est répondant aux questions suivantes :
si :
int i = 13, j= 1258;
byte b;
alors que se passe t-il dans chacun des cas suivants et pourquoi ?
b=i;
b = (byte) i ;
b = (byte) j;
----------------si :
int i=2,j=3,k;
double x=2.5,y,z;
alors que valent les expressions suivantes et pourquoi?
k = (int) x;
y = (double) i / (double) j ;
z = i / j ;
----------------si :
String chaine1 = "coucou";
String chaine2 = chaine1;
alors qu'est-il affiché par l'instruction ?
System.out .println(chaine1+" et "+chaine2);
et si maintenant :
chaine1 = "au revoir";
alors qu'est-il affiché par l'instruction ?
System.out .println(chaine1+" et "+chaine2);
- Exo 4 - Entrées-Sorties
Écrire le programme Java suivant :
• lire au clavier deux nombres a et b,
• calculer leur somme s, leur produit p et les afficher,
• intervertir les valeurs de s et de p et les afficher.
Note sur la saisie clavier :
BufferedReader Buf = new BufferedReader(new InputStreamReader(System.in));
String line = Buf.readLine();
- Exo 5 - Itération1
Écrire un programme Java qui :
• calcule la somme des N premiers entiers
• calcule la somme des carrés des N premiers entiers
• calcule le produit des N premiers entiers
- Exo 6 - Itération2
Écrire une fonction permettant de calculer X à la puissance N, pour X quelconque et N
entier, en utilisant le développement de N en base 2.
- Exo 7 - Dessin d'un triangle en mode texte
Écrire un programme qui affiche un triangle isocèle formé d’étoiles. La hauteur du triangle
(c’est-à-dire son nombre de lignes) sera fourni en donnée, comme dans l’exemple cidessous.
On s’arrangera pour que la dernière ligne du triangle s’affiche sur le bord gauche de
l’écran.
prompt> combien de lignes ? 8
*
***
*****
*******
*********
***********
*************
***************
- Exo 8- Tableaux1
Définir un tableau tab1 contenant n éléments entiers.
Initialiser les valeurs du tableau avec les premiers nombres pairs.
Doubler la taille du tableau tab1 pour initialiser les valeurs suivantes avec les nombres
impairs manquants.
Par exemple pour n=6 : tab1 devra tour à tour contenir les valeurs suivantes :
1) 2 4 6 8 10 12
2) 2 4 6 8 10 12 0 0 0 0 0 0
3) 2 4 6 8 10 12 1 3 5 7 9 11
- Exo 9- Tableaux2
Etant donné un tableau T de N nombres positifs ou nuls, on se propose d'écrire un
programme Java qui enlève les éléments nuls et qui récupère la place. Plus précisément,
si T[i] = 0, alors les éléments T[i+1], T[i+2], … sont décalés à gauche.
- Exo 10- Tableaux3
Programmer en Java le tri par insertion dont le principe est le suivant :
si les valeurs x1 ... xk-1 sont ordonnées,
- chercher le rang j de xk parmi xk-1, xk-2, ...
- pousser ces éléments vers la droite
- ranger xk à la place j
Les valeurs x1 ... xk seront alors ordonnées.
Il suffit d’appliquer ce principe n-1 fois en partant de la seule valeur x1.
- Exo 11- Tableaux à 2 dimensions
Écrire une fonction calculant le produit de 2 matrices.
- Exo 12- Récursivité1
Écrire un programme récursif qui détermine si une chaîne contenue dans un tableau de
caractères est un palindrome.
- Exo 13- Récursivité2
Programmer en Java le tri par fusion récursif dont le principe est le suivant :
- trier chaque moitié du tableau
- les fusionner de manière à obtenir un tableau ordonné
Téléchargement