TD1 – Les objets avec BlueJ

publicité
F. Mallet
EPU – Département Électronique
2011/2012
TD1 – Les objets avec BlueJ
Durée : 2h00
Objectifs :
 Manipuler des objets pour résoudre un problème ;
 Se familiariser avec BlueJ.
1-1. INSTALLER BLUEJ
Il faut installer le JDK Java si ce n’est pas déjà fait :
http://www.oracle.com/technetwork/java/javase/downloads/
Attention, il vaut mieux que votre Java soit dans un répertoire dont le chemin ne contient pas
d’espace (pas « Program Files »).
Pour installer BlueJ, télécharger le fichier bluej-307.jar depuis: http://www.bluej.org ; Utiliser la ligne
de commande : java –jar bluej-307.jar.
1-2. PROJET REGISTRE
1. Ouvrir le projet Registre (Project/open Project…) ;
Télécharger le fichier registre.zip depuis le site http://deptinfo.unice.fr/~fmallet/java/gse.html
2. Créer un objet reg1 de type RegistreADecalage ;
3. Utiliser reg1 pour calculer la valeur du nombre binaire 01011010 (sans utiliser la souris) ; Attention, on
ne veut pas utiliser la méthode setValeur qui attend une valeur entière décimale.
4. Double-cliquer sur la classe RegistreADecalage pour lancer l’éditeur, et passer du mode Source
Code au mode Documentation (menu déroulant en haut à droite) pour dessiner un diagramme de
classe ;
5. Ajouter une méthode decaleAGauche(int n) qui décale la valeur courante du registre de n bits sur
la gauche ; Quelles sont les valeurs de n qui ont du sens ?
L’opérateur << est l’opérateur de décalage à gauche, l’opérande de gauche est la valeur entière à décaler,
l’opérande de droite est le nombre de bits dont on veut décaler. Exemple : a<<3, décale la valeur a de 3 bits
sur la gauche, ce qui est équivalent à multiplier a par 23=8.
6. On veut écrire une méthode estPair qui renvoie la valeur true de type boolean lorsque le bit de
poids faible vaut 0 et la valeur false sinon.
a. Quelle serait la signature d’une telle méthode ?
b. Écrire cette méthode (sans utiliser le bloc if);
L’opérateur binaire ET bit à bit est &. Par exemple, 5&1 vaut 1, 12&1 vaut 0.
L’opérateur de comparaison de valeurs numériques est ==. Par exemple, a==0 vaut true si a est égal à 0
et false sinon.
c. On voudrait modifier la méthode decalageADroite pour qu’elle renvoie la valeur du bit de
poids faible sortant. Comment faire ?
7. On veut écrire une méthode getBit qui renvoie la valeur du nème bit du registre, où n est un paramètre
de la méthode.
8. On veut écrire une méthode nonSigne qui renvoie la valeur décimale non signée correspondant, quel
type de retour faut-il utiliser ? A quelle valeur non signée sur 32 bits correspond -1 ?
F. Mallet
EPU – Département Électronique
2011/2012
1-3. CALCULATRICE
Créer une classe Java qui modélise la calculatrice de Windows
Quelles sont les champs et les méthodes ?
1-4. NOMBRES COMPLEXES
Compléter les classes ComplexeCartesien et ComplexePolaire vues en cours pour réaliser en Java
les opérations d’addition et de multiplication.
Rappels :
Soient c1 et c2 deux nombres complexes c1 = re1 + i.im1 et c2 = re2 + i.im2
c1+c2 = s1 et
c1*c2 = m1
Alors :
s1.re = c1.re + c2.re
s1.im = c1.im + c2.im
m1.re = c1.re*c2.re – c1.im*c2.im
m1.im = c1.re*c2.im + c1.im*c2.re
Soient c3 et c4 deux nombres complexes c3 = n3*ei*ph3 et c4 = n4*ei*ph4
c3+c4 = s2 et
c3*c4 = m2
m2.norme = c3.norme * c4.norme
m2.phase = c3.phase + c4.phase
Comment faire si on ne connaît pas la formule pour calculer s2 ?
Téléchargement