2.4 Les variables

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

Exemple 2.12: Une variable pour notre figure

  1. A la première ligne, la variable maFigure est déclarée.
  2. A la deuxième ligne, le résultat du message 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.
  3. A la troisième ligne, nous envoyons un message à la variable 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

Exemple 2.13: Une variable utilisée plusieurs fois

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)

Exercice 2.13: Triangle et variable

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

Exemple 2.14: Deux variables

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

Exemple 2.15: Trois variables

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.

Exercice 2.14: Segments liés par leur milieu

Utiliser, modifier des objets

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

Exemple 2.16: Variable et attributs

SegmentAttributs

Figure 2.3: Attributs d’un segment

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 :

Forme de point.

croix carré rond

Taille de point.

petit moyen large

Épaisseur de ligne.

fin normal épais

Style de ligne.

plein tiret pointillé

Codage de segment

marquerAvecCercle marquerAvecDisque marquerAvecSimpleTrait marquerAvecDoubleTrait marquerAvecTripleTrait

Nom d’un objet.

nommer:. Le paramètre est une objet de type chaîne de caractères. Par exemple 'Toto'.

Couleur d’un objet.

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.

Exercice 2.15: Attributs d’un point


Footnotes

(7)

Ces messages n’ont pas été traduits en français, d’où leur nom en anglais.