En programmation une variable permet de se souvenir d’un objet pour le
réutiliser aussi souvent que souhaité. Le nom d’une variable est
libre. Avant son utilisation, une variable nommée maFigure
doit
être déclarée en début de code de cette façon : | maFigure
|
.
| maFigure | maFigure := DrGeoFigure nouveau. maFigure point: 0 @ 0
maFigure
est déclarée.
DrGeoFigure
nouveau
est placé dans la variable maFigure
grâce au symbole
d’affectation “:=”. Observer le point à la fin de la
ligne, c’est un séparateur avec la ligne de code suivante.
maFigure
pour créer un point dans la figure.
En résumé. Une variable est constituée d’un nom et d’un objet. Donner un nom à un objet – pour en faire une variable – s’appelle une affectation, elle se fait avec le symbole “:=”. Pour déclarer une variable, il faut la placer entre | | au début du programme.
L’intérêt d’une variable est son utilisation multiple dans le code.
| maFigure | maFigure := DrGeoFigure nouveau. maFigure afficherGrille. maFigure segmentDe: 0 @ 0 à: 4 @ 4. maFigure segmentDe: 4 @ 0 à: 0 @ 4
Remarques. Le point en fin de chaque ligne est un séparateur
d’instructions. C’est pour cette raison que dans
l’Exemple 2.13 la dernière ligne ne se termine pas par
un point. Aussi la déclaration de variable | maFigure |
ne se
termine pas par un point car ce n’est pas une instruction.
Écrire le programme sur plusieurs lignes est donc optionnel et l’Exemple 2.13 se réécrit en une seule ligne comme suit, mais ce n’est pas clair du tout et à ne pas faire !
| maFigure | maFigure := DrGeoFigure nouveau. maFigure afficherGrille. maFigure segmentDe: [../..]
Modifier Exemple 2.13 pour construire un triangle de sommets les points de coordonnées (0;0) (4;0) et (1;3)
Outre la figure, une variable peut référencer tout objet géométrique
créé dans la figure. Dans l’exemple suivant, nous nous souvenons du
segment créé dans la variable segment
. Celle-ci est ensuite
utilisée pour créer le milieu du segment.
| maFigure segment | maFigure := DrGeoFigure nouveau. maFigure afficherGrille. segment := maFigure segmentDe: 0 @ 0 à: 4 @ 4. maFigure milieuDe: segment
Voici un autre exemple avec trois variables pour construire l’intersection de deux segments. Sur la figure construite, déplace les segments et observe.
| maFigure segment1 segment2 | maFigure := DrGeoFigure nouveau. maFigure afficherGrille. segment1 := maFigure segmentDe: 0 @ 0 à: 4 @ 4. segment2 := maFigure segmentDe: 2 @ 3 à: 4 @ 0. maFigure intersectionDe: segment1 et: segment2
Compléter Exemple 2.14 avec un deuxième segment d’extrémités les points (1;2) et (5;6). Construire son milieu et relier les deux milieux par un segment.
Une variable sert aussi à se souvenir de l’objet pour le modifier plus tard dans le code. Pour un objet géométrique cela signifie modifier un de ses attributs comme son nom (dans la figure), son aspect, sa couleur, etc.
Voici quelques possibilités pour modifier l’aspect d’un segment :
| segment | segment := DrGeoFigure nouveau segmentDe: 0 @ 0 à: 5 @ 5. segment nommer: 'S'. segment couleur: Color blue. segment épais. segment marquerAvecDisque
Quelques observations concernant cet exemple. Nous n’avons pas de
variable pour nous souvenir de la figure, en effet dans la ligne de
code qui crée la figure nous créons en suivant le segment, et par la
suite nous ne manipulons plus la figure. En revanche nous avons une
variable segment
afin de nous souvenir du segment et modifier
ses attributs. Le message à mot clé couleur:
attend comme
paramètre un objet couleur, un tel objet s’obtient en envoyant à la
classe Color
un message de type blue
, yellow
,
pink
, etc.7
Pour modifier l’aspect du segment, nous envoyons toujours les messages
à la même variable segment
. Nous pouvons alors réécrire le code
avec une cascade de messages. Cela ne change rien au fonctionnement du
programme, mais il est plus court et plus
clair. Exemple 2.16 devient alors :
| segment | segment := DrGeoFigure nouveau segmentDe: 0 @ 0 à: 5 @ 5. segment nommer: 'S'; couleur: Color blue; épais; marquerAvecDisque
Voici une liste de messages pour modifier l’aspect d’un segment et d’un point :
croix
carré
rond
petit
moyen
large
fin
normal
épais
plein
tiret
pointillé
marquerAvecCercle
marquerAvecDisque
marquerAvecSimpleTrait
marquerAvecDoubleTrait
marquerAvecTripleTrait
nommer:
. Le paramètre est une objet de type chaîne de
caractères. Par exemple 'Toto'
.
couleur:
. Le paramètre est un objet de type Color
. Par
exemple Color black
ou Color orange
.
Reprendre Exemple 2.15 et modifier à sa guise l’aspect des deux segments et du point d’intersection.