Correction des exercices
ANNEXE
334
Exercice 10.3
Puisque l’unité d’encapsulation est la classe, la méthode somme aura bien accès à la fois aux
coordonnées du point courant (celui l’ayant appelée) qu’aux coordonnées du point p reçu en
paramètre. Son écriture ne présente guère de difficultés.
classe Point
{ .....
Point méthode somme (Point p) // p est le point à «ajouter» au point courant
{ Point s
// pour le point représentant la somme
s := Création Point (0, 0)
// ici, les coordonnées fournies au constructeur
// sont sans importance
s.abs := abs + p.abs
// puisqu’on fixera ici l’absice de s
s.ord := ord + p.ord
// et ici son ordonnée
retourne s
}
.....
entier abs, ord
}
Voici un exemple d’utilisation de somme :
Point p1, p2, ps
p1 := Création Point (1, 5)
p2 := Création Point (3, 12)
ps := p1.somme(p2)
// ps aura pour coordonnées 4, 17
Exercice 10.4
La méthode coincide pourra se présenter ainsi :
classe Point
{ .....
booléen méthode deClasse coincide (Point p1, Point p2)
{ booléen res
res := (p1.abs = p2.abs) & (p1.ord = p2.ord)
retourne res
}
entier abs, ord ;
}
Notez que si l’instruction retourne accepte une expression, la méthode coincide peut se
simplifier ainsi :
booléen méthode deClasse coincide (Point p1, Point p2)
{ retourne (p1.abs = p2.abs) & (p1.ord = p2.ord)
}
À titre indicatif, voici un petit programme utilisant cette classe Point :
Point a, b, c
a := Création Point (1, 3)
b := Création Point (2, 5)
c := Création Point (1, 3)
si Point.coincide (a, b) alors écrire «a coincide avec b»
si Point.coincide (b, c) alors écrire «b coincide avec c»
Si Point.coincide (a, c) alors écrire «a coincide avec c»
Précédent

- 357/370

Suivant