Différences entre versions de « Tutoriel:Introduction GeoGebraScript »

De GeoGebra Manual
Aller à : navigation, rechercher
 
(20 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Sometimes the ways students can interact with your worksheets using the basic features provided by GeoGebra are not powerful enough or too difficult to be used by your students, especially younger ones. '''GeoGebraScript is there to help you creating simple-to-use constructions with more sophisticated interactivity.''' It is a simple way to write [[Scripting|scripts]] (small programs) in GeoGebra.
+
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 [[Script|scripts]] (petits programmes) dans GeoGebra.
  
 
<div style="overflow: auto;">
 
<div style="overflow: auto;">
 
<div style="float:right;">
 
<div style="float:right;">
__TOC__
+
__NOTOC__
</div>Common uses of scripting are:
+
</div>Les utilisations courantes de scripts sont :
* Checking student's answers by letting them enter their answers into textfields and using scripts to check if they are correct.
+
* 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.
* Creating new tasks / challenges after the student pressed a button, either randomly generated or using a set of challenges defined by you.
+
* 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.
* Starting animations or revealing new parts of the construction after the student pressed a button or finished his task.
+
* Démarrer des animations ou faire apparaître des nouveaux éléments de la construction après que l'apprenant a pressé un bouton ou fini une tâche.
* (and so on..)
+
* (etc..)
  
There are two scripting languages in GeoGebra, GeoGebraScript and JavaScript, but this introduction focuses on GeoGebraScript as it uses the GeoGebra command syntax and is thus much easier to understand and learn for GeoGebra users. There are some differences between the scripting languages feature-wise, but GeoGebraScript is powerful enough for most situations.
+
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.
 
</div>
 
</div>
  
{{note|1=Scripting is a topic intended for experienced users of GeoGebra, we recommend you to take a look at the [[Tutorial:Main Page|other tutorials]] before you dive into this topic if you're not that familiar with GeoGebra at the moment. (The basics about how scripting works and how you can add scripts to your constructions are explained here of course.)}}
+
==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.  
 +
{{Example|1=Avec la commande <code>Cercle[(1,2),3]</code> vous créez un cercle de centre le point de coordonnées  (1,2) et de rayon 3.}}
  
==Background: Commands==
+
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éer un objet peut être trouvée [[:Category:Commandes|ici]].
There are not only tools to create an object in GeoGebra. You can do the same with [[commands]] and the input-bar.  
 
{{Example|1=With the command <code>Circle[(1,2),3]</code> you'll get a circle with the center at (1,2) with a radius 3.}}
 
  
Even if you use tools to create an object GeoGebra uses commands in the background to actually create the object. To see the command used to create an object can be found in the [[Properties Dialog]] under '''Definition'''. So tools are more or less only a help to enter those commands with the mouse. A list of all commands to create an object can be found [[:Category:Commands|here]].
+
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]]).
  
We've only spoken about commands that create objects so far. The majority of commands create objects, but there are some commands intended to be used in scripts, something we will talk about in more detail later (for the curious, see [[Scripting Commands]]).
+
== 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 a 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.
  
== Basics of Scripting ==
+
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).
Scripts are, at heart, just a sequence of GeoGebra commands executed in the following two situations:
 
* ''Click:'' A script is executed after the user clicked on the object.
 
* ''Update:'' A script is executed when the value or properties of the object changed. This may happen if the user moves elements of the construction around, changes sliders, etc.
 
  
Scripting in GeoGebra is object-centered, which means that you can define scripts for each object –one script for clicks, one for updates–, but no script can exist without an object (there is one exception for scripting using JavaScript).
+
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é.
  
To add scripts to an object just right-click the object in either the [[Algebra View|Algebra]] or [[Graphics View]], click the ''Object Properties…'' item and select the ''Scripting'' tab. Three more tabs will appear, ''On Click'', ''On Update'' and ''Global JavaScript''. The third one won't be of interest in this tutorial, but the two others can be used to add ''Click'' and ''Update'' scripts to the object you selected.
+
[[Image:IntroGGbscript_fr.png]]
  
[[file:open-script-screen.png|Click to see larger version|750px]]
+
Il est temps maintenant de créer un script, nous allons créer un premier exemple bidon ''Par Actualisation'' :
 +
{{exemple|1=(Script ''Par Actualisation'')
 +
# En tout premier, ouvrir une fenêtre GeoGebra vierge ;
 +
# Créer maintenant un point "A" et une droite "a". Tester la commande [[Commande Droite| Droite[..] ]] si vous n'êtes pas familier de la création d'objets dans le champ de [[Saisie]] ;
 +
# Pour le point ''A'', ouvrir l'onglet ''Par Actualisation'' du panneau ''Script'' comme décrit ci-dessus ;
 +
# Maintenant entrer :
 +
<pre>SoitÉpaisseurTracé[a, Distance[A, a]*2]
 +
SoitTaillePoint[A, Distance[A,y=0]]</pre>
 +
comme script, cliquer sur le  bouton ''OK'' (! Attention, c'est trop facile de l'oublier !) et fermez la boîte de dialogue.
 +
<ol><li value="5">Essayer d'imaginer ce que fait le script, et confirmer cette supposition en bougeant le point ''A'' à la ronde !</li></ol>
 +
}}
  
Now it's time to actually create a script, we will create a silly example using an ''Update'' script first:
+
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.
{{example|1=(Update script, you can also find the whole construction in [http://www.geogebra.org/material/show/id/1519 GeoGebra])
+
 
# First of all, open a blank GeoGebra 4 window
+
Nous avons utilisé les commandes [[Commande SoitÉpaisseurTracé |SoitÉpaisseurTracé []]] et [[Commande SoitTaillePoint |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 [[Commandes Scripts|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.  <code>f(x) = x^2</code> ou <code>c = Cercle[(0,0), 5]</code> dans vos scripts.
# Now create a point "A" and a line "a". Try out the [[Line Command|Line[..] command]] if you're not familiar with creating objects from the [[Input Bar]].
 
# Open the ''On Update'' tab of the scripting panel as described in the paragraph above.
 
# Now enter
 
<pre>SetLineThickness[a, Distance[A, a]*2]
 
SetPointSize[A, Distance[A,xAxis]]</pre>
 
as a script, click the ''OK'' button (very easy to miss!) and close the dialog.
 
<ol><li value="5">Try to figure out what the script does, then check your assumption by moving the point A around!</li></ol>
 
}}
 
As you may have noticed we assigned the ''update'' script to the point, not e.g. the line. This means that the script is executed every time you move the point. It doesn't mean, however, that the script must modify any attribute of the point itself.
 
  
We've been using the [[SetLineThickness Command|SetLineThickness[]]] and [[SetPointSize Command|SetPointSize[]]] commands, two of those commands intended for scripting we've talked about earlier. At some point you should at least skim the [[Scripting Commands|scripting command list]] to get an idea what's possible with these commands. You're not restricted to this kind of command though, you can e.g. use <code>f(x) = x^2</code> or <code>c = Circle[(0,0), 5]</code> in your scripts as well.
+
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  [[Commande Si|Si[...]]], vous pouvez jeter un œil sur les autres commandes [[Commandes Logique|logiques]] et [[Commandes Listes|listes ]] si vous ne l'avez encore pas déjà fait.
  
Apart from some special features, described in more detail below, executing a GeoGebraScript has the same effect as entering the single lines of the script into the input bar. You now basically know how to write scripts in GeoGebra, the rest of this tutorial will be about some special objects for scripting like textfields or buttons. Apart from the scripting commands the most useful one is probably [[If Command|If[...]]], you should look at the other [[Logic Commands|logic]] and [[List Commands|list commands]] as well if you did not already.
+
{{note|1=Beaucoup de commandes de scripts ne réalisent qu'une action ponctuelle et ne créent donc pas une connexion permanente comme c'est le cas pour les  [[Objets_libres,_dépendants_ou_auxiliaires|objets dépendants]], ainsi par ex. <code>SoitÉpaisseurTracé[a, Distance[A, a]*2]</code> ne fait que copier la valeur actuelle de <code>Distance[A,a]*2</code> au moment de l'exécution du script. Cette valeur ne changera que si vous exécutez de nouveau la commande ou si vous 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|1=Many scripting commands just perform an action once and do not form a permanent connection as you may know them from [[Free,_Dependent_and_Auxiliary_Objects|dependent objects]], so e.g. <code>SetLineThickness[a, Distance[A, a]*2]</code> will just copy the current value of <code>Distance[A,a]*2</code> at the time of the execution, afterwards that value will not change unless you execute the command again or change the thickness manually. Our example may make the impression that there is some kind of connection, but that's just because the script is executed every time the point is moved. You can see that by moving the line instead. The line thickness will not change unless you move the point again.}}
+
{{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.}}
  
{{note|If you're familiar with other programming languages you may have noticed that there is no need for a semicolon at the end of a line in GeoGebraScript.}}
+
== Bouton ==
 +
Les '''Bouton'''s 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' [[Image:Mode buttonaction.svg|32 px]] [[Outil Bouton]].
  
== Buttons ==
+
== ChampTexte ==
Buttons are great because all your students know that they can click them and will try to do that. Apart from that buttons don't have any special behavior, so a ''click'' script of a button is as good as a ''click'' script of any other object. You can create a button using the [[File:Tool_Insert_Button.gif]] [[Insert Button Tool]].
+
Les champs de saisie, (appelés aussi  '''ChampTextes'''), voir l'[[Image:Mode textfieldaction.svg|32 px]] [[Outil 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.
  
== Input Boxes ==
+
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.
Input boxes (also called textfields), see the [[File:Tool_Insert_Textfield.gif]] [[Insert Input Box Tool]], are maybe the most powerful objects in GeoGebra. They allow your students to enter text, numbers, functions and every other input you can (manually) convert from text to some GeoGebra objects.
 
  
There are multiple ways how you can use input boxes in your construction, you can either link them with objects, associate a click script to them or process them later using another object (e.g. a button). Don't worry, everything will be explained in detail right now.
+
=== ChampTexte lié ===
 +
Un ''ChampTexte lié'' est un ChampTexte qui est lié avec un objet existant dans GeoGebra : ce qui signifie que le ChampTexte affiche la valeur actuelle de l'objet et que si vous modifiez cette valeur, l'objet original est modifié en conséquence. Vous pouvez utiliser cette fonctionnalité pour permettre à vos élèves de modifier des fonctions, des nombres sans utiliser de curseurs, ... , ceci sans danger pour la construction.
  
=== Linked Input Boxes ===
+
L'exemple suivant illustre comment créer un ChampTexte lié à un objet dans GeoGebra.
''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.
+
{{exemple|1=(ChampTexte lié, le fichier associé est sur [http://www.geogebra.org/material/show/id/957213 GeoGebra])
 +
# Ouvrir une fenêtre GeoGebra vierge ;
 +
# Définir une fonction, par ex. <code>f(x) = x^2</code>, dans le champ ''Saisie'' ;
 +
# Activer l'[[Image:Mode textfieldaction.svg|32 px]] [[Outil ChampTexte]] dans la barre d'outils (dans la deuxième boîte à outils en partant de la droite) ;
 +
# Cliquer dans un endroit vide de Graphique, s'ouvre une fenêtre de dialogue. Comme ''Légende'' entrer "f(x) =" et comme ''Objet lié'' la fonction ''f'' ;
 +
# C'est fini ! Déplacer la représentation graphique de ''f'' pour voir dans le ChampTexte s'afficher automatiquement la nouvelle définition de la fonction. Modifier le champ de texte et appuyer sur Entrée pour voir comment il est possible changer la définition de la fonction en utilisant un ChampTexte.}}
  
The following example illustrates how you can create linked input boxes in GeoGebra.
+
{{note|Comme mentionné plus haut, vous n'êtes pas limité à des fonctions, vous pouvez aussi lier des nombres et pratiquement tout autre objet, il suffit d'essayer ! :-).}}
{{example|1=(Linked input boxes, the construction can be found at [http://www.geogebra.org/material/show/id/1522 GeoGebra] again)
 
# Open a blank GeoGebra window
 
# Enter a function, e.g. <code>f(x) = x^2</code>, into the input bar
 
# Select the [[File:Tool_Insert_Textfield.gif]] [[Insert Input Box Tool]] in the toolbar (in the second tool group from the right).
 
# 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.
 
# 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.}}
+
=== ChampTexte avec Script Par Clic ===
  
=== Input Boxes with Click Scripts ===
+
En opposition à l'exemple précédent, nous ne voulons pas lier un ChampTexte à un objet spécifique, mais utiliser son script ''Par Clic'' pour appliquer sa valeur à d'autres objets. Le script va être similaire au précédent, mais détaille comment récupérer la valeur du ChampTexte par  <code>%0</code>.
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 <small>(the reason why this is called click script is unknown to the author ;-))</small>. 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 <code>%0</code>. Seriously.
 
  
{{example|1=(Input box with click script, see [http://www.geogebra.org/material/show/id/1523 GeoGebra])
+
{{exemple|1=(ChampTexte avec Script Par Clic, le fichier associé est sur [http://www.geogebra.org/material/show/id/957277 GeoGebra])
# Open a blank GeoGebra window
+
# Ouvrir une fenêtre GeoGebra vierge ;
# Create a point <code>A</code> and a line <code>a</code>.
+
# Créer un point ''A'' et une droite ''a'' ;
# 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.
+
# Activer l'[[Image:Mode textfieldaction.svg|32 px]] [[Outil ChampTexte]] dans la barre d'outils (dans la deuxième boîte à outils en partant de la droite) ;
# Go to the ''Click'' script tab of the new input box (instructions how to do that way above).
+
# Cliquer dans un endroit vide de Graphique, s'ouvre une fenêtre de dialogue. Comme ''Légende'' entrer ''Taille'', mais cette fois, laisser le champ "Objet lié" vide ;
# Now add the following script (note the <code>%0</code>):  
+
# Ouvrir l'onglet  script ''Par Clic'' dans les propriétés de ce nouveau ChampTexte ;
<pre>SetPointSize[A, %0/2]
+
# Ajouter maintenant le script suivant (noter la présence du substitut <code>%0</code>):  
SetLineThickness[a, %0]</pre>
+
<pre>SoitTaillePoint[A,%0/2]
<ol><li value="6">Click "Ok" again and close the dialog.</li>
+
SoitÉpaisseurTracé[a,%0]</pre>
<li>Now enter a new value into the input box and press enter.</li></ol>
+
<ol><li value="7">Valider en cliquant "Ok" et fermer la fenêtre de dialogue.</li>
 +
<li>Entrer maintenant une nouvelle valeur dans le ChampTexte et presser {{KeyCode|Entrée}}.</li></ol>
 
}}
 
}}
As you can see the placeholder <code>%0</code> indeed carries the value of the input box.
+
Constater que le substitut <code>%0</code> a pris la valeur du ChampTexte.
  
== 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==
+
==Exemple Scripts==
  
=== Buttons: Increment/Decrement Buttons ===
+
=== Boutons : ===
Instead of using a showing a slider to go through a step-by-step explanation, you can use a button.
+
Au lieu d'utiliser un curseur pour naviguer pas à pas dans une explication, vous pouvez utiliser un bouton.
  
{{Example|1=<div>
+
{{Exemple|1=<div>
* Create an integer slider, called <code>Steps</code>.
+
* Créer un curseur entier, nommé <code>Étape</code>.
* Create a Button using Button Tool
+
* Créer un bouton à l'aide de l'outil
* Enter for caption the visible label on the button
+
* Entrer comme Légende, l'étiquette du bouton
* Enter the script <code>SetValue[Steps,Steps+1]</code> or simply <code>Steps=Steps + 1</code></div>}}
+
* Entrer le script <code>SoitValeur[Étape,Étape+1]</code></div>}}
  
To decrement change "+" to "-". To change the size of the steps change 1 to your value.
+
Pour reculer, modifier "+" en "-". Pour un autre pas, modifier "1" en la valeur désirée.
  
{{Note|1=The command <code>Steps=Steps + 1</code> is only available in scripting. If you enter a command like that in the input bar, you'll get an error '''circular definition'''}}
 
  
[[Category:Advanced Tutorials]]
+
[[Catégorie:Tutoriel]]
[[es:Introducción a Guiones GeoGebraScript]]
 
[[fr:Tutoriael:Introducion GeoGebraScript]]
 
[[it:Tutorial:Introduzione a GeoGebraScript]]
 

Version actuelle datée du 29 novembre 2019 à 13:22

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 a 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éer 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 a 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, ouvrir une fenêtre GeoGebra vierge ;
  2. Créer maintenant un point "A" et une droite "a". Tester 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, ouvrir l'onglet Par Actualisation du panneau Script comme décrit ci-dessus ;
  4. Maintenant entrer :
SoitÉpaisseurTracé[a, Distance[A, a]*2]
SoitTaillePoint[A, Distance[A,y=0]]

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

  1. Essayer d'imaginer ce que fait le script, et confirmer cette 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 SoitÉpaisseurTracé [] 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éalisent qu'une action ponctuelle et ne créent donc pas une connexion permanente comme c'est le cas pour les objets dépendants, ainsi par ex. SoitÉpaisseurTracé[a, Distance[A, a]*2] ne fait que copier la valeur actuelle de Distance[A,a]*2 au moment de l'exécution du script. Cette valeur ne changera que si vous exécutez de nouveau la commande ou si vous 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.

Bouton

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 Bouton.

ChampTexte

Les champs de saisie, (appelés aussi ChampTextes), voir l'Mode textfieldaction.svg Outil 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.

ChampTexte lié

Un ChampTexte lié est un ChampTexte qui est lié avec un objet existant dans GeoGebra : ce qui signifie que le ChampTexte affiche la valeur actuelle de l'objet et que si vous modifiez cette valeur, l'objet original est modifié en conséquence. Vous pouvez utiliser cette fonctionnalité pour permettre à vos élèves de modifier des fonctions, des nombres sans utiliser de curseurs, ... , ceci sans danger pour la construction.

L'exemple suivant illustre comment créer un ChampTexte lié à un objet dans GeoGebra.

Exemple : (ChampTexte lié, le fichier associé est sur GeoGebra)
  1. Ouvrir une fenêtre GeoGebra vierge ;
  2. Définir une fonction, par ex. f(x) = x^2, dans le champ Saisie ;
  3. Activer l'Mode textfieldaction.svg Outil ChampTexte dans la barre d'outils (dans la deuxième boîte à outils en partant de la droite) ;
  4. Cliquer dans un endroit vide de Graphique, s'ouvre une fenêtre de dialogue. Comme Légende entrer "f(x) =" et comme Objet lié la fonction f ;
  5. C'est fini ! Déplacer la représentation graphique de f pour voir dans le ChampTexte s'afficher automatiquement la nouvelle définition de la fonction. Modifier le champ de texte et appuyer sur Entrée pour voir comment il est possible changer la définition de la fonction en utilisant un ChampTexte.
Note : Comme mentionné plus haut, vous n'êtes pas limité à des fonctions, vous pouvez aussi lier des nombres et pratiquement tout autre objet, il suffit d'essayer ! :-).

ChampTexte avec Script Par Clic

En opposition à l'exemple précédent, nous ne voulons pas lier un ChampTexte à un objet spécifique, mais utiliser son script Par Clic pour appliquer sa valeur à d'autres objets. Le script va être similaire au précédent, mais détaille comment récupérer la valeur du ChampTexte par %0.

Exemple : (ChampTexte avec Script Par Clic, le fichier associé est sur GeoGebra)
  1. Ouvrir une fenêtre GeoGebra vierge ;
  2. Créer un point A et une droite a ;
  3. Activer l'Mode textfieldaction.svg Outil ChampTexte dans la barre d'outils (dans la deuxième boîte à outils en partant de la droite) ;
  4. Cliquer dans un endroit vide de Graphique, s'ouvre une fenêtre de dialogue. Comme Légende entrer Taille, mais cette fois, laisser le champ "Objet lié" vide ;
  5. Ouvrir l'onglet script Par Clic dans les propriétés de ce nouveau ChampTexte ;
  6. Ajouter maintenant le script suivant (noter la présence du substitut %0):
SoitTaillePoint[A,%0/2]
SoitÉpaisseurTracé[a,%0]
  1. Valider en cliquant "Ok" et fermer la fenêtre de dialogue.
  2. Entrer maintenant une nouvelle valeur dans le ChampTexte et presser Entrée.

Constater que le substitut %0 a pris la valeur du ChampTexte.


Exemple Scripts

Boutons :

Au lieu d'utiliser un curseur pour naviguer pas à pas dans une explication, vous pouvez utiliser un bouton.

Exemple :
  • Créer un curseur entier, nommé Étape.
  • Créer un bouton à l'aide de l'outil
  • Entrer comme Légende, l'étiquette du bouton
  • Entrer le script SoitValeur[Étape,Étape+1]

Pour reculer, modifier "+" en "-". Pour un autre pas, modifier "1" en la valeur désirée.

© 2024 International GeoGebra Institute