Exercice en Java POO sur les tableaux et les objets

Exercice 1 : dessin

Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues
à ceux du cours.

Question 1 : tableaux
Dessinez chacun des tableaux du programme suivant tels qu’ils sont à la fin de l’exécution de ce programme {sidebar id=8}

1
2
3
4
5
6
7
8
9
10
11
12
class Exo_16_1_1{
public static void main ( [ ] args ) {
int [ ] t1 , t2 , t3 , t4 , t 5 ;
t2 = new int [ 4 ] ;
t3 = new int [ 4 ] ;
t4 = new int [ 4 ] ;
for ( int i=0 ; i t3.length ; i++){
t3 [ i ] = 10+ i ;
t4 [ i ] = 10+ i ;
}
t5 = t4 ;
}

Question 2 : objets
Même question pour les variables du programme suivant (var1, var2, var3, cou1, cou2, cou3, cou4, cou5,
cou6

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Exo_16_1_2{
public static void main ( [ ] args ) {
C1 var1 , var2 , var3 ;
C2 cou1 , cou2 , cou3 , cou4 , cou5 , cou6 ;
var1=new C1( 0 ) ;
var2=new C1( 1 ) ;
cou2=new C2( ) ;
cou3=new C2( ) ;
cou4=new C2( ) ;
cou6=new C2( ) ;
cou3.premier=var1 ;
cou3.second=var2 ;
cou4.premier=var1 ;
cou4.second=var1 ;
cou5=cou3 ;
cou6.premier=var1 ;
cou6.second=new C1 ( 2 ) ;
}
}
class C1{
int x ;
C1 ( int i ) {
x= i ;
}
}
class C2{
C1 premier , second ;
}

Question 3 : tableaux d’objets
Même question pour les variables du programme suivant.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Exo_16_1_3{
public static void main ( [ ] args ) {
C1[ ] t1,t2,t3 ;
C1 var = new C1 ( 0 ) ;
t1=new C1[3] ;
t2=new C1[3] ;
t3=new C1[3] ;
for ( int i =0 ; i t1.length ; i ++){
t1[i] = new C1 ( 0 ) ;
t2[i] = var ;
}
t1[1].x=1 ;
t2[1].x=1 ;
t3=t2 ;
}
}

Question 4 : objets contenant des tableaux
Même question pour les variables du programme suivant.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Exo_16_1_4{
public static void main ( [ ] args ) {
C3 pl1 , pl2 , p l 3 ;
C1 c l 1 ;
cl1=new C1( 0 ) ;
pl1=new C3( ) ;
pl2=new C3( ) ;
pl3=new C3( ) ;
pl2.tab=new C1 [3] ;
pl3.tab=new C1 [3] ;
pl3.tab[0]=cl1 ;
pl3.tab[1]=cl1 ;
}
}
class C3{
C1[ ] tab ;
}
 
 

Exercice 2 : comptes bancaires

On va représenter des comptes bancaires et des titulaires de comptes. Un même compte peut avoir
plusieurs titulaires (c’est le cas par exemple des comptes joints pour un couple). Dans ce cas, le même objet
sera partagé entre les titulaires. Un titutlaire peut avoir plusieurs comptes.
On vous propose le squelette de classe suivant pour implémenter les comptes et les titulaires.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class TableauCompte {
Compte [ ] tab ;
int longueur ;
TableauCompte ( int n ) {
tab = new Compte [ n ] ;
}
void ajouter ( Compte c ) throws NonInitialise {
if ( c == null ) {
throw new NonInitialise ( ) ;
}
if ( longueur tab . length ) {
tab [ longueur ]= c ;
longueur ++;
}
}
}
class Banque {
nom;
TableauCompte tous = new TableauCompte ( 5 0 ) ;
Banque ( n ) {
nom = n ;
}
}
class Titulaire {
nom;
Titulaire ( n ) {
nom = n ;
}
TableauCompte mesComptes = new TableauCompte ( 1 0 ) ;
}
class Compte {
int numero ;
int solde ;
void depot ( int n ) {
solde = solde + n ;
}
void retrait ( int n ) {
solde = solde ? n ;
}
void afficher ( ) {
Terminal . ecrire( " solde du compte numero " + numero + " : " ) ;
Terminal . ecrireInt ( solde ) ;
}
}
class NonInitialise extends Exception {}

Question 1 : création de comptes
Ajouter à ce squelette de classes des méthodes. Seule la banque peut créer des nouveaux comptes.{sidebar id=1}
Quand elle crée un nouveau compte, elle l’ajoute à la liste des comptes de chacun des titulaires de ce compte et elle l’ajoute aussi à sa propre liste de comptes. Par exemple, si une banque b crée un compte c pour les titulaires t1 et t2, le même objet c sera ajouté à trois tableaux : b.tous, t1.mesComptes et t2.mesComptes. Dans chacun de ces trois tableaux, il y aura la même adresse, celle de l’objet c.
Pour réaliser cette création de comptes, il faut une méthode dans Banque qui crée un compte avec en paramètre la liste des titulaires (par exemple sous forme de tableau). Il peut également être utile d’écrire une méthode permettant d’ajouter un nouveau compte chez un titulaire.

Question 2 : variables
Ecrivez une méthode main qui réalise une situation où trois titulaires, Paul, Pierre et Fatima ont des comptes dans une banque BNP. Paul et Fatima ont un compte joint. Fatima a en plus un compte personnel, de même que Pierre.
Dessinez la situation en faisant apparaître sur un schéma tous les objets et tableaux.

Question 3 : virements
On désire écrire une méthode qui permette de faire un virement depuis un compte dont on est titulaire vers un compte dont on ne connaît que le numéro (et dont on n’est pas forcément titulaire) et la banque (autrement dit, on ne connaît pas son adresse). Dans quelle classe faut-il ajouter cette méthode ? Ecrivez cette méthode.

Article publié le 18 Mars 2010 Mise à jour le Vendredi, 19 Mars 2010 20:41