English فارسی Suomi
Français Nederlands Translate

Manuel utilisateur de Dr. Geo

Introduction

Avant-propos

Dr. Geo II est un logiciel libre1  multiplate-formes de géométrie interactive. Il est une réécriture complète de Dr. Geo 1.1 en Smalltalk. Pharo, implémentation libre de ce langage et environnement de développement performant – http://pharo-project.org –, a été utilisé pour ce faire. Dr. Geo 1.1 était écrit en C++ et intégrait un interpréteur Scheme pour la rédaction de scripts et de figures programmées. Dr. Geo II permet également l’intégration de scripts dans les figures géométriques ainsi que l’écriture de figures interactives entièrement décrites avec un langage de programmation.

Le choix d’une réécriture en Smalltalk fut motivé par les qualités dynamiques uniques de ce langage ; celui-ci nous permet en effet de pousser extrêmement loin nos investigations sur les dimensions interactives entre l’utilisateur et le logiciel. Ainsi Dr. Geo n’est pas seulement un logiciel convivial de géométrie interactive mais aussi, tel que distribué, un environnement complet de programmation dans lequel le logiciel peut être étudié, modifié et amélioré. Pour s’en convaincre, l’utilisateur est invité à cliquer sur le fond de l’environnement Dr. Geo – en dehors de toute fenêtre – puis à presser les touches Ctrl-b. Le navigateur de classes affiché permet de modifier le code source de Dr. Geo alors que celui-ci est en fonctionnement. Cet accès au code source du logiciel, pour l’étudier, le modifier et le redistribuer est complètement ancré dans l’esprit du logiciel libre pour une approche non verrouillé à une informatique autre que de béatitude. Loin de nous l’idée de prétendre que Dr. Geo permet de rendre les esprits plus alertes, néanmoins il y contribue assurément.

La navigateur de code source de Dr. Geo
La navigateur de code source de Dr. Geo

Avec ce même esprit, les systèmes de figures programmées et de scripts – présentés dans les sections sur les outils avancés – sont adossés à un outillage évolué de mise au point du code : navigateur, débogueur, inspecteur d’objet.

Dans la suite du document, nous nommerons indifféremment le logiciel Dr. Geo II ou Dr. Geo.

  1. Un logiciel est libre lorsque son code source peut être étudié, modifié et redistribué. ^

Présentation

Dr. Geo permet de créer des figures géométriques et de les manipuler interactivement en respectant leurs contraintes géométriques. Il offre également la possibilité d’introduire graduellement la programmation. Il est ainsi utilisable dans des situations d’enseignement allant du niveau primaire au niveau supérieur.

L’interface utilisateur de Dr. Geo a été conçue pour allier dans un ensemble harmonieux à la fois simplicité d’utilisation, ergonomie et fonctionnalités avancées.

Ainsi l’interface de Dr. Geo, sous une apparence de très grande simplicité, permet au néophyte de se familiariser très rapidement avec les fonctions de base du logiciel. Puis, au cours de sa progression, l’utilisateur découvrira des aspects plus avancés de l’interface et du fonctionnement de Dr. Geo : multiplicité des modalités de construction d’objet1 , macro-construction, enregistrement multiple, scriptabilité, Figure Smalltalk de Dr. Geo, héritage de Smalltalk dans Dr. Geo. Ces fonctionnalités avancées génèrent peu de surcharge sur l’interface, c’est pour cela que Dr. Geo est très agréablement utilisé en enseignement primaire, cependant il est également très intéressant pour le lycée.

Dans les sections suivantes, les outils de base seront exposés. Ensuite les fonctionnalités avancées seront présentées en détail.


Écran de bienvenue de Dr. Geo


L’agencement de l’interface est comme suit :

  • la barre de menu caractéristique avec Fichier , Points , Lignes , Transformations , Numériques et Macro-construction  ;
  • une barre d’outils d’édition pour attraper un objet, modifier son style, défaire/refaire des actions d’édition, effacer un objet, afficher la grille et aimanter les éditions à celle-ci ;
  • la barre d’outils regroupant sous la forme d’icônes les fonctions de construction présentes dans la barre de menu ;
  • dans le coin droit en bas, l’utilisateur a à sa disposition deux molettes pour déplacer horizontalement et verticalement la figure ;
  • la seconde molette à droite permet de changer l’échelle de la figure.

Pour créer une nouvelle figure géométrique, l’utilisateur va dans le menu Fichier->Nouveau . Pour chaque nouvelle figure, une fenêtre distincte est proposée avec ses propres barres de menus et d’icônes.

  1. Il s’agit de pouvoir, à partir d’une même commande, créer un type d’objet selon des modalités différentes. Par exemple à partir de la commande construction de cercle, l’utilisateur peut créer un cercle défini par son centre et un point, ou bien une longueur, etc. Bien sûr cette commande n’est représentée que par une seule icône, il incombe à Dr. Geo d’anticiper sur la construction de l’utilisateur. L’effet immédiat est donc une diminution de la charge cognitive de l’interface sur l’utilisateur, tout en proposant un nombre important de modes de construction. ^

Dr. Geo sur le web

Dr. Geo dispose de son propre espace web sur le site d’OFSET à l’adresse : http://www.ofset.org/drgeo.

Sur cet espace, l’utilisateur trouvera les informations suivantes :

 

Fonctions de base

Outils de construction

Ces outils sont partagés en six groupes accessibles à partir de la seconde barre d’icônes de Dr. Geo.

Catégories d’outils de Dr. Geo et leurs descriptions

Lorsque l’utilisateur clique sur une des flèches associées aux icônes de la barre d’outils, une barre verticale d’icones s’affiche immédiatement. Celle-ci regroupe des fonctions d’une même famille. Lorsqu’un outil est choisi dans une barre verticale, celui-ci prend la place du bouton alors visible dans la barre horizontale d’outils. L’utilisateur peut ainsi naviguer plus facilement entre plusieurs outils.

De la gauche vers la droite, nous avons accès aux barres d’icônes verticales pour construire des points et des lignes, utiliser des transformations, calculer des valeurs, gérer les macro-constructions.

Ces fonctions se retrouvent à l’identique dans le menu en haut de chaque fenêtre de Dr. Geo.

Outils de point

Point libre

Crée un point libre dans le plan ou sur un objet unidimensionnel (segment, demi-droite, droite, arc de cercle, cercle, lieu) :

  1. Dans le premier cas, le point créé peut être déplacé n’importe où dans le plan de la figure. Pour le construire l’utilisateur clique simplement sur le fond.
  2. Dans le deuxième cas, le point n’est libre que dans l’objet unidimensionnel (ligne) où il a été créé ; il est collé sur l’objet. Pour construire ce type de point, l’utilisateur clique sur une ligne (c.-à-d. droite, demi-droite, segment, cercle, arc de cercle, etc.).

Pour créer un point d’intersection entre deux lignes (c.-à-d. droite, demi-droite, segment, arc de cercle, cercle), il suffit de cliquer à l’intersection de celles-ci.

Comment placer un point avec des coordonnées données ?

Une possibilité est de placer deux valeurs libres dans la figure – outils Numériques – puis de construire le point ayant pour coordonnées ces deux valeurs – outil Point défini par ses coordonnées. Cette possibilité a un avantage sur la précédente, le point ainsi construit ne peut pas être déplacé directement à la souris, le point est en quelque sorte bloqué dans sa position.

Milieu

Crée le milieu de deux points ou d’un segment :

  1. Dans le premier cas, l’utilisateur sélectionne deux points.
  2. Dans le deuxième cas, l’utilisateur sélectionne simplement un segment.

Point défini par ses coordonnées

Crée un point défini par ses coordonnées. L’utilisateur doit soit sélectionner un script retournant un couple de coordonnées – soit sélectionner deux nombres : le premier correspond à l’abscisse, le second à l’ordonnée.

Comment placer un point contraint par ses coordonnées ?

Cette fonction est largement utilisée lorsque nous souhaitons par exemple construire le lieu d’un point. Cette construction suppose au préalable l’existence de deux valeurs le point est ensuite construit en sélectionnant ces deux valeurs.

Outils de ligne

Droite

Crée une droite définie par deux points. L’utilisateur sélectionne deux points.

Droite parallèle

Crée une ligne parallèle à une direction et passant par un point. L’utilisateur sélectionne un point et une direction (c.-à-d. une droite, une demi-droite, un segment ou un vecteur).

Droite perpendiculaire

Crée une droite perpendiculaire à une direction et passant par un point. L’utilisateur sélectionne un point et une direction (c.-à-d. une droite, une demi-droite, un segment ou un vecteur).

Demi-droite

Crée une demi-droite définie par deux points. L’utilisateur sélectionne deux points, le premier est l’origine, le second appartient à la demi-droite.

Segment

Crée un segment donné par deux points.

Vecteur

Crée un vecteur donné par deux points. L’utilisateur sélectionne deux points, le premier est l’origine, le second est l’extrémité.

Une fois que le vecteur est créé, celui-ci peut être déplacé indépendamment des deux points. Ceci reste vrai pour un vecteur construit par une transformation.

Cercle

Crée un cercle. L’utilisateur peut créer un cercle à partir de différentes sélections :

  1. le centre et un point du cercle ;
  2. le centre et un nombre (le rayon du cercle) ;
  3. le cercle et un segment dont la longueur est le rayon du cercle.

Arc de cercle

Crée un arc de cercle défini par trois points. Le premier est l’origine de l’arc, le troisième est l’extrémité, le second est un point de l’arc.

Lieu d’un point

Crée un lieu défini par deux points. L’utilisateur sélectionne deux points, l’un des deux est un point sur une ligne, l’autre est un point sous contraintes du premier (c.-à-d. quand l’un bouge, l’autre fait de même).

Polygone

Crée un polygone défini par n points. L’utilisateur sélectionne n+1 points limitant le polygone. Le premier et le dernier sont un seul et même point ce qui indique à Dr. Geo que la sélection est terminée. L’objet polygone n’est pas un objet comme les autres lignes, il n’est pas possible de placer un point dessus ou de construire une intersection entre un polygone et une autre ligne. En revanche il est possible de construire l’image d’un polygone par une transformation géométrique.

Autres fonctions

Déplacer la figure

La figure peut être déplacée à l’aide des molettes dans le coin en bas à droite de la figure.

Déplacer un objet

Un objet peut être déplacé par glisser-déposer. La figure est alors redessinée en respectant ses propriétés. Quasiment tous les objets géométriques peuvent être déplacés. Si nécessaire, Dr. Geo déplace les points libres associés. Par exemple, quand l’utilisateur déplace une droite définie par deux points, Dr. Geo déplace les deux points simultanément.

Supprimer un objet

Un objet d’une figure peut être supprimé en activant ce menu. Éventuellement, l’utilisateur peut annuler la suppression à l’aide de la fonction d’annulation à partir de la barre d’icônes ou du menu de l’application. Par défaut le nombre d’annulations possibles est de 10 mais l’utilisateur peut ajuster cette valeur depuis la boîte de dialogue des préférences.

Changer l’aspect d’un objet

Chaque objet géométrique a ses propres attributs de style comme la couleur, l’épaisseur, l’étiquette, la taille et la forme. De plus, il est possible de cacher temporairement un objet sans le supprimer. Par exemple, il peut être utile de cacher des constructions intermédiaires sans les supprimer. Tous ces attributs sont ajustables depuis le menu contextuel qui s’affiche lorsque l’utilisateur clique sur un objet de la figure. Pour cela il faut d’abord se mettre dans le mode d’édition de style en cliquant sur le bouton de la barre d’outils.

Style de point

Le menu contextuel de style d’un point concerne tous les types de points. Il est possible d’ajuster la couleur, la forme, la taille, le nom et la visibilité.

Menu et sous-menus pour éditer le style d’un objet point

Style de ligne

Le menu contextuel de style d’une ligne concerne les droites, les demi-droites, les segments, les vecteurs, les cercles, les arcs de cercle, les lieux de points et les polygones. Il est possible d’ajuster la couleur, l’épaisseur, le style de trait, d’adjoindre des flèches pour les segments et d’éditer le nom et la visibilité.

Menu et sous-menus pour éditer le style d’un objet ligne

Style de valeur

Le menu contextuel de style d’une valeur concerne toutes les sortes de valeurs : saisie par l’utilisateur, correspondant à une mesure ou calculée par un script Smalltalk Dr. Geo. Il permet de modifier la couleur d’affichage, d’éditer la valeur – pour les valeurs librement saisies par l’utilisateur – d’éditer le nom et la visibilité de la valeur.

Menu et sous-menu pour éditer le style des valeurs 

Afficher une grille

Il est possible d’afficher ou cacher une grille unitaire dans toute figure de Dr. Geo, la commande est accessible depuis le bouton de la boîte d’outils. La grille est unitaire, chaque subdivision représente une unité. Enfin, lors de la sauvegarde d’une figure, l’état de la grille est également sauvegardé (affichée ou non affichée).

Lors de la création ou du déplacement de points, il est possible de coller ceux-ci à la grille – ou au mieux selon la contrainte du point. Pour cela il suffit d’activer la fonction grille aimantée avec le bouton de la boîte d’outils.

Fichiers et documents

Avant-propos

Les constructions peuvent être enregistrées de deux manières. Une construction par fichier ou un ensemble de constructions par fichier (c.-à-d. une session Dr. Geo). Nous vous rappelons que les documents contenant des figures doivent être sauvegardés avec une extension .fgeo et ceux contenant uniquement des macro-constructions avec l’extension .mgeo. Pour les documents contenant des figures et des macro-constructions, utiliser l’extension .fgeo.

Ceci n’est qu’indicatif mais suivre ces règles permet de s’y retrouver plus facilement dans ses fichiers.

Renommer une figure

Depuis le menu Fichier->Renommer, l’utilisateur change le nom et le titre de la fenêtre de la figure active. Cette fonction est particulièrement utile lorsque l’utilisateur sauvegarde un ensemble de figures dans un unique fichier de session.

 

Enregistrer une construction

À partir du menu Fichier->Enregistrer, la figure de la vue active est enregistrée dans un fichier.

Dr. Geo peut travailler avec plusieurs figures en même temps, chaque figure ayant sa propre fenêtre. L’utilisateur peut passer d’une figure à l’autre en utilisant la barre des tâches en bas de l’environnement Dr. Geo.

Avec le menu Fichier->Enregistrer sous..., l’utilisateur peut changer le nom du document enregistré.

 

Enregistrer une session

Une session est un ensemble de données de Dr. Geo que l’utilisateur enregistre d’un seul coup dans un fichier. Cela permet de placer un ensemble de données (figures et macro-constructions) dans un seul fichier, afin de faciliter leurs réutilisations.

À partir du menu Fichier->Enregistrement multiple, l’utilisateur accède à la boîte de dialogue de sauvegarde d’une session.


La boîte de dialogue de session Dr. Geo

Dans cette boîte de dialogue, la liste de toutes les données actives est présentée dans une colonne. Chaque ligne est préfixée du tag Fig1 ou Macro selon son type, la seconde partie de la ligne contient le nom de la donnée.

Actuellement, une session peut contenir deux types de données : figure interactive 2D et macro-construction.

L’utilisateur sélectionne les données à enregistrer en cochant leur case puis valide avec le bouton OK .

Le menu Fichier->Enregistrement multiple est le seul moyen d’enregistrer une macro-construction dans un fichier.

Enregistrer une macro-construction

Pour enregistrer une ou des macro-constructions dans un fichier, procéder comme pour l’enregistrement d’une session – enregistrement multiple. Depuis la boîte de dialogue de sauvegarde d’une session, sélectionner la ou les macro-constructions à sauvegarder, puis sauver dans un fichier d’extension .mgeo. C’est tout !

Il est ainsi possible de constituer des librairies de macro-constructions, une par fichier ou plusieurs regroupées selon un même thème dans un seul fichier.

 

Ouvrir un fichier

Fonctionnalités avancées

Dans ce chapitre, nous présentons les fonctionnalités qui permettent d’étendre les possibilités de Dr. Geo ou de l’adapter à une situation pédagogique donnée.

La première est la macro-construction. Elle permet d’extraire une construction logique pour la placer dans un enregistrement. Cet enregistrement peut ensuite être répété autant de fois que souhaité, sauvegardé dans un fichier et ouvert ultérieurement dans une autre figure.

Les scripts Smalltalk Dr. Geo représentent une autre fonctionnalité pour étendre Dr. Geo. Ces scripts sont de véritables items de figure, comme les items géométriques. En entrée, ils reçoivent une ou plusieurs références d’items géométriques et ils retournent une valeur placée dans la figure. Ce sont en fait des fonctions1  greffées dans une figure, elles sont évaluées à chaque mise à jour de la figure (c.-à-d. lorsque la figure a besoin d’être redessinée). Les scripts Smalltalk Dr. Geo sont utiles pour la valeur qu’ils retournent ou leur effet de bord, cela dépend de ce que l’utilisateur souhaite réaliser.

En extension des scripts Smalltalk, Dr. Geo propose d’aller encore plus loin avec les figures Smalltalk de Dr. Geo. Cette fois il s’agit de décrire une figure géométrique complètement sous la forme d’un code source écrit dans le langage Smalltalk. La force de cette approche est de permettre une construction fonctionnelle2  des figures et non plus simplement déclarative comme c’est le cas avec l’interface graphique.

 

  1. Ou procédures pour les amateurs de Pascal. ^
  2. Par exemple sous forme récursive ^

Macro-construction

Une macro-construction ressemble un peu à une procédure qui reçoit des items d’une figure en entrée et qui retourne un ou plusieurs items de figure, construits par la macro-construction. Une macro est construite à partir d’un modèle défini par l’utilisateur. Cela signifie que l’utilisateur doit réaliser la séquence de construction une première fois dans une figure puis demander à Dr. Geo de l’enregistrer dans une macro-construction. La macro-construction peut ensuite être sauvegardée dans un fichier au même titre qu’une figure.

Pour enregistrer une séquence de construction, Dr. Geo doit connaître les items initiaux de la séquence ainsi que les items finaux. Évidemment, les items finaux ne doivent dépendre que des items initiaux1  , sinon Dr. Geo ne sera pas capable de déduire les items finaux à partir des items initiaux.

Ainsi, Dr. Geo déduit la logique de la séquence de construction et l’enregistre dans une macro-construction. L’utilisateur peut alors répéter cette séquence en jouant la macro-construction, elle demande seulement des items initiaux (du même type) de la figure et construit les items résultants.

Les items de figure intermédiaires et invisibles sont aussi construits par la macro-construction. Ils sont nécessaires pour construire les items résultants.

Pour illustrer la fonctionnalité macro-construction, nous prenons l’exemple de la construction du cercle passant par trois points.


La figure initiale

 Avant la création de la macro-construction, l’utilisateur doit construire la figure finale, elle est considérée comme modèle par la macro-construction.

 
La figure avec la construction finale

Création d’une macro-construction

À cette étape, la séquence de construction est faite. L’utilisateur doit maintenant avertir Dr. Geo qu’il veut une macro-construction à partir de cette séquence. Il doit appeler la fonction Construire une macro à partir de la barre d’icônes ou depuis le menu Macro-construction>Construire une macro de la fenêtre de la figure.

Depuis la boîte de dialogue qui s’affiche alors, l’utilisateur sélectionne les paramètres d’entrée et de sortie, le nom et la description de la macro-construction.


Première page introductive de la boîte de dialogue
de l’assistant pour construire une macro-construction

La seconde page de la boîte de dialogue sert à sélectionner les paramètres d’entrée. Dans notre exemple, ce sont les trois points initiaux. L’utilisateur a juste besoin d’aller jusqu’à cette seconde page et il sélectionne les trois points A, B et C de la figure. Les points sélectionnés clignotent alors et leur nom s’affiche dans la page de la boîte de dialogue.


La seconde page, les trois points sont sélectionnés

À partir de la troisième page, l’utilisateur choisit les paramètres de sortie. Dans notre exemple, nous voulons le cercle et son centre comme résultat de la macro-construction. L’utilisateur clique alors sur ces deux objets dans la figure, lorsque sélectionnés ces derniers clignotent et leur nom apparaît dans la boite de dialogue.


La troisième page, le cercle et son centre sont sélectionnés

Dans la quatrième page, l’utilisateur entre le nom et la description de la macro-construction. Ces informations sont affichées lorsque l’utilisateur exécute une macro-construction. Ceci permet de distinguer les macro-constructions entre elles.


La quatrième page, le nom et la description de la macro-construction

L’utilisateur valide ensuite la définition de la macro-construction en appuyant sur le bouton Appliquer. Il peut aussi revenir aux étapes précédentes pour ajuster les paramètres de la macro-construction.

Si la sélection des paramètres d’entrée et de sortie ne correspond pas (Dr. Geo ne peut pas extraire la logique de la construction), la macro-construction ne peut pas être créée. Dans ce cas, l’utilisateur doit reconsidérer la sélection des paramètres d’entrée et de sortie. Il peut revenir à la seconde ou la troisième page de la boîte de dialogue de l’assistant pour ajuster ses choix.

À cette étape, la macro-construction est créée et enregistrée dans Dr. Geo. Dans la prochaine section, nous verrons comment l’utiliser.

Jouer une macro-construction

Pour exécuter une macro-construction, l’utilisateur clique sur le bouton de la barre d’outils ou choisit le menu Macro-construction>Jouer une macro de la fenêtre de la figure. Une boîte de dialogue décrivant la procédure s’affiche alors.

À partir de celle-ci, l’utilisateur sélectionne la macro-construction. Dans la seconde page, il sélectionne la macro-construction dans la liste en haut de la boîte de dialogue. Une fois la macro sélectionnée, il peut directement choisir les paramètres d’entrée dans la figure. Dès que tous les paramètres d’entrée sont sélectionnés, la macro-construction est exécutée et les paramètres finaux sont affichés.


L’utilisateur sélectionne les paramètres d’entrée dans la figure

Dans notre exemple, la macro-construction nécessite trois paramètres d’entrée (trois points) et elle construit un point et un cercle. Pour exécuter notre macro-construction, il faut une figure avec au moins trois points.


Une figure avec trois points

Une fois que notre macro-construction est appliquée à ces trois points, nous avons le cercle souhaité et son centre.


La figure finale avec le cercle et son centre

 

 

  1. Cette contrainte a depuis été assouplie et permet d’aller encore plus loin avec les macro-constructions. ^

Script Smalltalk

Dr. Geo est une application dynamique écrite en Smalltalk. Cela signifie qu’il est possible de modifier Dr. Geo alors qu’il est en cours de fonctionnement. Nous avons exploité cette possibilité pour définir dans Dr. Geo des items de figure qui sont en fait des scripts Smalltalk – des bouts de codes – pour étendre dynamiquement, à l’infini, les possibilités de Dr. Geo. Mais qu’est-ce que Smalltalk ?

Smalltalk est un langage de programmation orienté objet, réflexif et dynamiquement typé. Il fut l’un des premiers langages de programmation à disposer d’un environnement de développement intégré complètement graphique. Il a été créé en 1972. Il est inspiré par Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes. Smalltalk est toujours activement développé.

Smalltalk a été d’une grande influence dans le développement de nombreux langages de programmation, dont : Objective-C, Actor, Java et Ruby.

Un grand nombre des innovations de l’ingénierie logicielle des années 1990 viennent de la communauté des programmeurs Smalltalk, tels que les Design Patterns (appliquées au logiciel), l’Extreme Programming (XP) et le refactoring. Ward Cunningham, l’inventeur du concept du Wiki, est également un programmeur Smalltalk.1

Cet extrait de la préface du livre Pharo By Example2 – http://pharobyexample.org – décrit précisément la plate forme Smalltalk utilisée pour Dr. Geo :

Pharo est une implémentation moderne, libre et complète de l’environnement et langage de programmation Smalltalk.

Pharo s’attache à offrir une plate forme robuste et stable pour du développement professionnel en langages et environnement dynamiques.

Dr. Geo exploite l’environnement Smalltalk pour proposer, d’une part, un environnement convivial d’écriture de scripts et, d’autre part, pour donner accès à l’interface des items géométriques ou numériques constitutifs d’une figure. L’interface est en fait l’ensemble des méthodes d’instance – fonctions de classe – de ces items.

Ainsi l’utilisateur peut écrire des scripts pour manipuler les items des figures ; et puisque ces scripts sont des items de figure au même titre que d’autres, ils n’ont pas besoin d’être dans un fichier séparé, ils sont enregistrés dans le fichier de la figure.

L’autre grande force des script est de s’appuyer sur l’environnement de développement de Pharo Smalltalk ; l’utilisateur bénéficie ainsi d’outils évolués pour mettre au point ses scripts : navigateur de classes, inspecteur, débogueur, etc. L’utilisateur souhaitant exploiter au mieux la puissance des scripts est donc invité à étudier le livre Pharo By Examplehttp://pharobyexample.org, il y apprendra le langage Smalltalk et son environnement.

Script par l'exemple

Les scripts ont deux facettes :

L’outil pour créer ou éditer un script est disponible depuis le menu Numériques>Éditer un script, la fonction est aussi disponible depuis la barre d’outils.

L’outil pour utiliser un script est disponible depuis le menu Numériques>Utiliser un script, la fonction est aussi disponible depuis la barre d’outils.

Un script peut recevoir de 0 à n paramètres d’entrée. Après avoir choisi un script à insérer dans la figure, il suffit de choisir, dans la construction, les paramètres d’entrée puis de cliquer quelque part sur le fond de la figure pour y placer le résultat du script.

Dans la suite nous vous proposons de travailler sur quelques exemples de scripts, leurs fonctionnalités et leur puissance seront plus facilement analysées. Les scripts, comme les macro-constructions, donnent une dimension particulière à Dr. Geo, ils permettent – chacun avec un positionnement différent3  – d’aller là où les auteurs du logiciel ne sont pas allés ou ne souhaitent pas aller.

Il est aussi important de comprendre que la plupart des fonctionnalités de Pharo Smalltalk sont disponibles depuis les scripts. C’est particulièrement vrai pour ses bibliothèques de fonctions4 , nous allons bien sûr les utiliser intensément.

Script sans paramètre d'entrée

Premier exemple

La procédure pour créer un script sans paramètre d’entrée est la suivante :

Édition du script

Dans l’éditeur de script, cliquer sur la catégorie scripts jusqu’à ce que la zone texte en bas contienne le modèle de script tel qu’affiché dans la figure. Saisir alors le code source ci-dessous et comme dans la figure plus bas :

MonPremierScript
"Le commentaire de mon premier script"
   ^ 'hello !'.

Sauvegarder le script par la combinaison de touches Ctrl-s, Dr. Geo vous demandera vos nom et prénom, vous pouvez entrer vos initiales, c’est sans grande importance pour le moment. La premier ligne du script, MonPremierScript désigne le nom du script, la suite est le code source du script. La première ligne de celui-ci, entre guillemets, est un commentaire de ce que fait le script, nous conseillons de bien le documenter car c’est utile pour la suite.

 
Mon premier script

L’éditeur de script peut maintenant être fermé.

Utilisation du script dans la figure

Choisir Numériques>Utiliser un script dans le menu. Dans la boîte de dialogue qui s’affiche alors, choisir le script MonPremierScript que nous avons créé précédemment. Noter qu’à chaque fois qu’un script est choisi, son commentaire descriptif est affiché en bas de la boîte de dialogue.


Choisir un script

Une fois le script sélectionné, cliquer dans la figure à l’emplacement souhaité, le script y sera inséré ; dans cet exemple le script ne fait que retourner le message «  hello ! ». La valeur retournée par un script est celle affichée dans la figure.

Dans les exemples qui suivent, nous donnons simplement le code source des scripts Smalltalk, il suffira de reprendre les étapes expliquées précédemment pour créer le script correspondant et l’utiliser dans une figure, nous ne revenons pas sur ces étapes.

Un générateur de nombre aléatoire

Si vous souhaitez un générateur de nombres entiers aléatoires entre 0 et 10, rien de plus simple, c’est ce que fait le script suivant : 

aléatoire
"Je retourne un nombre continuellement modifié aléatoirement"
   ^ 10 atRandom.

À chaque mise à jour de la figure, il génère un nombre aléatoire entier dans l’intervalle [0 ; 10].

Si vous préférez un nombre flottant dans l’intervalle [0 ; 1], utilisez ce script :

aléatoire2
"Je retourne un nombre décimal aléatoire entre 0 et 1"
   ^ 100 atRandom / 100.
Quelques précisions :
  • La valeur retournée par le script est le résultat de l’expression après le symbole ;
  • La valeur retournée peut être de n’importe quel type3 , Dr. Geo en affiche une représentation sous forme de chaîne de caractères ;
  • Si l’on souhaite retourner la valeur d’une variable, il suffit de mettre son nom après le symbole.

Calculer des valeurs usuelles

Pour calculer une valeur approchée de π :

pi
   ^ Float pi

ou de e :

e
   ^ Float e

Les valeurs retournées par ces scripts sont ensuite utilisables comme toutes les autres valeurs numériques que peut générer Dr. Geo. Pour toutes ces petites choses les scripts sont donc vos amis. Mais ils peuvent faire bien plus de choses intéressantes lorsqu’ils reçoivent des paramètres en entrée.

En effet ici les scripts n’avaient aucun argument, il n’y avait donc pas lieu de sélectionner des items de la figure lors de l’insertion des scripts dans la construction. Bien sûr leur intérêt réside dans les traitements numériques qu’ils permettent sur des items et la restitution de ce résultat dans la figure, sous la forme d’un objet qui lui même peut-être utilisé par d’autres scripts. Dans les sections suivantes nous montrerons de tels enchaînements de scripts.

Script avec un paramètre d'entrée

La procédure pour créer un script avec un paramètre d’entrée est sensiblement la même :

  1. Lors de l’édition du script (Numériques>Éditer un script), l’argument s’intercale dans le nom du script.
    Par exemple pour calculer la distance à l’origine d’un point, nous écrivons le script suivant :
    distanceToOrigin: item
    "Retourne la distance à l'origine d'un point"
       ^ item point dist: 0@0
    

    Quelques explications :

    • item est l’argument de notre script, cela doit être un point. C’est en fait une instance de la classe DrGPointItem4 .
    • DrGPointItem a une méthode d’instance #point qui retourne ses coordonnées. Ainsi de l’argument nous pouvons extraire des informations, ici ses coordonnées et faire un calcul à partir de celles-ci.
    • 0@0 est une instance de la classe Point de coordonnées (0,0).
    • #dist: est un message à mot clé5  de la classe Point qui attend comme unique argument une instance d’un autre point, elle calcule la distance entre ces deux instances. Elle peut se comprendre comme : “distance entre item point et (0,0)”. Les messages à mot clé sont une spécificité de Smalltalk : les arguments sont intercalés dans le nom du message.
  2. Lors de l’utilisation du script (Numériques>Utiliser un script), Dr. Geo attend que l’utilisateur clique sur un point, puis sur un emplacement de la figure.
    Attention, si un autre objet qu’un point est choisi, Dr. Geo génère une erreur, il suffit de fermer la fenêtre du débogueur et de sélectionner à nouveau le script pour recommencer.
Selon le type d’objet en référence, diverses méthodes sont disponibles ; qui pour obtenir sa valeur, qui pour obtenir ses coordonnées, etc. Le répertoire des méthodes est disponible depuis la section Méthodes de référence des scripts.

Script avec deux paramètres d'entrée

Exemple détaillé avec plusieurs scripts


  1. Article Smalltalk de Wikipédia en français (http://fr.wikipedia.org/wiki/Smalltalk). Page consultée le : 2 janvier 2011 15:47 UTC. Contenu soumis à la licence CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/deed.fr). ^
  2. Une traduction en français est en cours de finalisation. ^
  3. Une instance de n’importe quelle classe pour être précis car les types n’existent pas en Smalltalk ^
  4. Pour découvrir le protocole de cette classe, écrire son nom n’importe où dans l’environnement Dr. Geo, le sélectionner à la souris puis presser les touches Ctrl-b, un navigateur de classes s’affiche alors sur cette classe, il permet de naviguer et d’étudier son code source. ^
  5. Comme le script ici son nom se termine par “:” ^

Méthodes de référence de scripts

Figure Smalltalk

Méthodes de référence de figures Smalltalk

Applications didactiques

Astuces diverses