Tutoriel:Introduction GeoGebraScript

De GeoGebra Manual
Aller à : navigation, rechercher

Parfois les possibilités pour vos élèves d'interagir avec vos feuilles de travail à l'aide des fonctionnalités offertes par GeoGebra ne sont pas assez performantes ou trop difficiles à être utilisées par vos élèves, surtout les plus jeunes. GeoGebraScript est là pour vous aider à créer des constructions simples à utiliser avec une interactivité plus sophistiquée. C'est une manière simple d'écrire des scripts (petits programmes) dans GeoGebra.

Les utilisations courantes de scripts sont :
  • Contrôler des réponses de vos élèves en leur faisant les inscrire dans des ChampTextes et en utilisant un script pour vérifier si elles sont correctes.
  • Créer des nouvelles questions / tâches quand l'apprenant a pressé un bouton, déterminées au hasard ou en utilisant un ensemble prédéfini par vous.
  • Démarrer des animations ou faire apparaître des nouveaux éléments de la construction après que l'apprenant ait pressé un bouton ou fini une tâche.
  • (etc..)

Il y a deux langages de programmation dans GeoGebra, GeoGebraScript et JavaScript, mais cette introduction se concentre sur GeoGebraScript parce qu'il utilise la syntaxe des commandes GeoGebra et qu'ainsi il est plus aisé à comprendre et à apprendre pour les utilisateurs de GeoGebra. Il y a certaines différences entre les spécificités des langages de programmation, mais GeoGebraScript est suffisamment puissant dans beaucoup de situations.

Fondements : Commandes

Il n'y a pas que les outils pour créer un objet dans GeoGebra. Vous pouvez en créer avec les commandes dans le champ de saisie.

Exemple: Avec la commande Cercle[(1,2),3] vous créez un cercle de centre le point de coordonnées (1,2) et de rayon 3.

Même si vous utilisez un outil pour créer un objet, GeoGebra utilise une commande en arrière-plan pour créer l'objet. Pour voir la commande utilisée pour créer un objet, on peut la trouver dans le champ Définition de l'onglet Basique de la fenêtre Dialogue Propriétés . Ainsi les outils ne sont plus ou moins qu'une aide pour utiliser ces commandes à l'aide de la souris. Une liste de toutes les commandes pour crée un objet peut être trouvée ici.

Nous avons seulement évoqué les commandes qui créent des objets. La majorité des commandes créent des objets, mais il existe quelques commandes dédiées à être utilisées dans les scripts, nous en parlerons en détail plus tard (pour les curieux, voir Commandes Scripts).

Bases des scripts

Les scripts ne sont que des listes de commandes GeoGebra exécutées selon les deux situations suivantes :

  • Par Clic : Un script est exécuté après que l'utilisateur ait cliqué sur l'objet.
  • Par Actualisation : Un script est exécuté dès que la valeur ou les propriétés de l'objet sont modifiées. Ce qui peut arriver si l'utilisateur déplace des éléments de la construction, change des curseurs, etc.

Les scripts dans GeoGebra sont centrés sur l'objet, cela signifie que vous pouvez définir des scripts pour chaque objet –un script déclenché par clic, un script déclenché par actualisation–, mais aucun script ne peut exister sans un objet (c'est une différence avec les JavaScripts).

Pour ajouter des scripts à un objet, il vous suffit d'un clic droit sur l'objet dans l'une ou l'autre des fenêtres Algèbre ou Graphique, choisissez Propriétés… puis l'onglet Script. Trois onglets apparaissent, Par Clic, Par Actualisation et JavaScript global . Le troisième ne va pas être détaillé dans ce tutoriel, mais les deux autres peuvent être utilisés pour ajouter des scripts Par Clic et Par Actualisation à l'objet sélectionné.

IntroGGbscript fr.png

Il est temps maintenant de créer un script, nous allons créer un premier exemple bidon Par Actualisation :

Exemple : (Script Par Actualisation)
  1. En tout premier, ouvrez une fenêtre GeoGebra 4 vierge ;
  2. Créez maintenant un point "A" et une droite "a". Testez la commande Droite[..] si vous n'êtes pas familier de la création d'objets dans le champ de Saisie ;
  3. Pour le point A, ouvrez l'onglet Par Actualisation du panneau Script comme décrit ci-dessus ;
  4. Maintenant entrez :
SoitEpaisseurTrait[a, Distance[A, a]*2]
SoitTaillePoint[A, Distance[A,y=0]]

comme script, cliquez sur le bouton OK (! Attention, c'est trop facile de l'oublier !) et fermez la boîte de dialogue.

  1. Essayez d'imaginer ce que fait le script, et confirmez votre supposition en bougeant le point A à la ronde !

Comme vous avez pu le noter, nous avons attaché le script Par Actualisation au point A , et non, par exemple, à la droite. Ceci signifie que le script est exécuté chaque fois que vous déplacez le point. Mais cela ne signifie pas, cependant, que le script ne doive modifier uniquement que des attributs du point lui-même.

Nous avons utilisé les commandes SoitEpaisseurTrait[] et SoitTaillePoint[] , deux des commandes dédiées aux scripts dont nous vous avions parlé précédemment. À ce moment vous pourriez peut-être survoler la liste des commandes pour vous faire une idée de ce que l'on peut faire grâce à ces commandes. Vous n'êtes pas restreints cependant à ce type de commandes, vous pouvez utiliser aussi bien, par ex. f(x) = x^2 ou c = Cercle[(0,0), 5] dans vos scripts.

Mis à part quelques fonctions spéciales, décrites plus en détail ci-dessous, l'exécution d'un GeoGebraScript a le même effet que la validation successive des lignes du script dans le champ de saisie. Vous savez maintenant comment écrire des scripts dans GeoGebra, le reste de ce tutoriel va être consacré à quelques objets spéciaux pour les scripts , tels que les ChampTextes ou les boutons. Mis à part les commandes dédiées aux scripts, la plus utile probablement est la commande Si[...], vous pouvez jeter un œil sur les autres commandes logiques et listes si vous ne l'avez encore pas déjà fait.

Note : Beaucoup de commandes de scripts ne réalise qu'une action ponctuelle et ne crée donc pas une connexion permanente comme c'est le cas pour les objets dépendants, ainsi par ex. SoitEpaisseurTrait[a, Distance[A, a]*2] ne fait que copier la valeur actuelle de Distance[A,a]*2 au moment de l'exécution, cette valeur ne changera pas ensuite si vous n'exécutez à nouveau la commande ou ne modifiez manuellement l'épaisseur. Notre exemple pourrait donner l'impression qu'il y a une quelconque connexion, mais c'est seulement parce que le script est exécuté chaque fois que le point est déplacé. Vous pouvez voir au contraire en bougeant la droite que son épaisseur n'est pas modifiée tant que vous ne bougez pas le point de nouveau.
Note : Si vous êtes familiers d'autres langages de programmation, vous avez pu noter qu'il n'y a pas besoin de point-virgule à la fin de chaque ligne dans un GeoGebraScript.

Boutons

Les Boutons sont très utiles parce que tous vos élèves savent qu'ils peuvent cliquer dessus et vont essayer de le faire. Les boutons n'ont pas un comportement spécial, donc un clic sur un bouton est équivalent à un clic sur tout autre objet possédant un script "Par Clic". Vous pouvez créer un bouton à l'aide de l' Mode buttonaction.svg Outil Insérer Bouton.

ChampTextes

Les champs de saisie, (appelés aussi ChampTextes), voir l'Mode textfieldaction.svg Outil Insérer ChampTexte, sont peut-être les objets les plus puissants dans GeoGebra. Ils permettent à vos élèves de saisir du texte, des nombres, des fonctions et toute autre entrée que, vous pourrez associer à certains objets GeoGebra.

Vous pouvez utiliser champs textes dans votre construction de plusieurs façons , vous pouvez les relier avec des objets, leur associer un script "Par Clic" ou les traiter plus tard en utilisant un autre objet (par exemple un bouton). Ne vous inquiétez pas, tout sera expliqué en détail.

Linked Input Boxes

Linked input boxes are input boxes which are linked to an existing GeoGebra object: That means that the input box shows the current value of the object and if you change the value in the input box the original object will change its value as well. You can use that to let your students change function definitions or numbers without using sliders. Basically they are input boxes which can just change a single object and thus much easier to use and without any danger of students damaging their worksheets.

The following example illustrates how you can create linked input boxes in GeoGebra.

Exemple: (Linked input boxes, the construction can be found at GeoGebra again)
  1. Open a blank GeoGebra window
  2. Enter a function, e.g. f(x) = x^2, into the input bar
  3. Select the Mode textfieldaction.svg Outil Insérer ChampTexte in the toolbar (in the second tool group from the right).
  4. Now click on some spot in your worksheet, a dialog will pop out. For the caption enter "f(x) =" and as linked object select your function f.
  5. You're done. Move the graph of f to see how the textfield will automatically display the new definition of your function. You can also change the textfield and press enter to see how you can change the function's definition using the textfield.
Note : As mentioned above you can not only link functions, but also numbers and basically ever other object, just try it out.

Input Boxes with Click Scripts

On contrast to the first example we will now not link the input box to a specific object but use its Click script to apply its value to other objects (the reason why this is called click script is unknown to the author ;-)). The script will be very similar to the one in the first example, the new issue now is how to access the value of the input box in the script. The answer is %0. Seriously.

Exemple: (Input box with click script, see GeoGebra)
  1. Open a blank GeoGebra window
  2. Create a point A and a line a.
  3. Select the input box tool and click onto the canvas (as above), but this time use the label "Size:" and leave the "Linked Object" field empty.
  4. Go to the Click script tab of the new input box (instructions how to do that way above).
  5. Now add the following script (note the %0):
SetPointSize[A, %0/2]
SetLineThickness[a, %0]
  1. Click "Ok" again and close the dialog.
  2. Now enter a new value into the input box and press enter.

As you can see the placeholder %0 indeed carries the value of the input box.

ToDo

If you know something (a little) about scripting: You're help and participation is very welcome! You could add something for the following topics or think of something else:

  • More step-by-step instructions for beginners
  • More concrete examples (also links to GeoGebra files using scripting)

Example Scripts

Buttons: Increment/Decrement Buttons

Instead of using a showing a slider to go through a step-by-step explanation, you can use a button.

Exemple:
  • Create an integer slider, called Steps.
  • Create a Button using Button Tool
  • Enter for caption the visible label on the button
  • Enter the script SetValue[Steps,Steps+1] or simply Steps=Steps + 1

To decrement change "+" to "-". To change the size of the steps change 1 to your value.

Note : The command Steps=Steps + 1is only allowed for free numbers. For dependent numbers you'll get an error circular definition

es:Introducción a Guiones GeoGebraScript en:Tutorial:Introduction to GeoGebraScript it:Tutorial:Introduzione a GeoGebraScript

© 2022 International GeoGebra Institute