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 ?