Exerciseurs : comment ça marche ?

Un premier exemple
Prenons ce modèle simple d'exerciseur :[br][url=https://www.geogebra.org/m/v8tdrysm]https://www.geogebra.org/m/v8tdrysm [/url][br]dont une copie est ci-dessous. Nous allons expliquer comment il est construit pour que vous puissiez le modifier ou en fabriquer selon le même principe.
Pour voir à l'intérieur :
Construction
Ci-dessus, la fenêtre propriétés à droite est ouverte ce qui rend les boutons inactifs mais permet de voir dans les différents menus : couleur, style, script et dans avancé l'affichage conditionnel pour chaque objet sélectionné.[br][list][*]Aléatoire :[/*][/list]Deux nombres aléatoires ont été créés : alea1 et alea2 par :[br][code]AléaEntreBornes(-10, 10)[/code][br]Ils représentent ici les deux nombres à additionner.[br]Ces valeurs sont réactualisées par le bouton Recommencer dont le script commence par :[br][code]ActualiserConstruction()[/code][list][*]Question :[/*][/list]La question est un champ de texte qui fait appel aux objets alea1 et alea2 :[br]\text{Calcule la somme de } [alea1] \text{ et } [alea2][br]où les objets alea1 et alea2 ont été choisis dans la liste d'objets créés (onglet avec icone GeoGebra) ou directement en cliquant dessus dans la fenêtre algèbre[br][list][*]Valeur cible :[/*][/list]La variable cible est la réponse correcte attendue, ici : cible=alea1+alea2[list][*]Champ réponse :[/*][/list]On créé une variable [code]reponse[/code] indéterminée au début par reponse=?[br]Ensuite un créé un champ de saisie avec [icon]/images/ggb/toolbar/mode_textfieldaction.png[/icon] dans le menu curseur [icon]/images/ggb/toolbar/mode_slider.png[/icon] qui joue le rôle de "input(reponse)". On pouvait aussi taper dans la barre de saisie : [code]ChampTexte(reponse)[/code][list][*]Tester si la réponse est correcte.[/*][/list]le booléen [code]correct= reponse==cible[/code] est évalué en true si la réponse est correcte, false sinon.[br]
Modifier ce fichier
Si vous voulez modifier légèrement cette appliquette sans tout chercher à comprendre, voici quelques pistes.[br][list][*]Modifier l'aléatoire :[/*][/list]Si vous souhaitez par exemple uniquement des entiers positifs, vous pouvez redéfinir alea1 en modifiant les bornes, par exemple : [code]AléaEntreBornes(1, 30)[/code]. Si vous ne souhaitez additionner que des multiples de 10 : AléaEntreBornes(1, 10)*10, ou des nombres décimaux avec un chiffre après la virgule : AléaEntreBornes(1, 1000)/10. Pour éviter d'avoir la valeur 0 tout en ayant des nombres positifs ou négatifs, on peut utiliser :[br][code]AléaEntreBornes(1, 9)*(2*AléaEntreBornes(0, 1)-1)[br][/code]Le deuxième facteur [code](2*AléaEntreBornes(0, 1)-1)[/code] valant -1 ou 1 joue le rôle du signe et peut aussi être utile par ailleurs.[br][list][*]Tester l'égalité d'objets autres que des nombres.[/*][/list]GeoGebra est capable de comparer des objets comme des points, droites, fonctions. Les variables [code]reponse[/code] et [code]cible[/code] peuvent par exemple contenir des droites. Mais on peut souvent se ramener à tester l'égalité de nombres, par exemple en testant si un déterminant ou un produit scalaire est nul pour savoir si des droites sont parallèles ou perpendiculaires.[br]Voir par exemple [url=https://www.geogebra.org/m/nytqbwhw#material/a3bcpeqt]cet exercice du livret[/url] pour un test de produit scalaire.[br]Pour tester l'égalité entre deux expressions algébriques, il est préférable de les comparer sous forme simplifiée avec la fonction [code]Simplifier( )[/code]. Par exemple dans [url=https://www.geogebra.org/m/nytqbwhw#material/tr7gg9kn]cet exercice du livret[/url], pour tester si l'expression de la dérivée est correcte, le booléen [code]correct[/code] est défini par :[br][code]correct=Simplifier(Dérivée(foncalea))≟Simplifier(reponse)[/code][br] [br]
Couleurs pour une rétroaction visible en mode Classroom.
[b]La suite rentre dans des détails de codage qui peuvent être ignorés en première lecture si vous voulez simplement modifier cette appliquette pour faire un exerciseur.[/b][br][list][*]Rétroaction avec fond coloré[/*][/list]La vérification est faite lorsque le bouton valider est pressé. Son script est :[br][code]SoitValeur(valide,true)[br]SoitValeur(coul,Si(correct,2,1))[/code][br]La deuxième ligne signifie que Si la réponse est correcte, alors la variable [code]coul[/code] prend la valeur 2 et sinon elle prend la valeur 1.[br]Cette variable [code]coul[/code] sert juste à changer la couleur du fond de l'écran, vous pouvez dans l'appliquette ci-dessus la faire varier de 0 à 3 :[br]coul=0 : pas de couleur (fond noir)[br]coul=1 : fond orange (réponse incorrecte)[br]coul=2 : fond vert (réponse correcte)[br]coul=3 : fond rouge (appel à l'aide)[br][list][*]Les couleurs[/*][/list]Les différentes couleurs du fond correspondent aux couleurs du polygone [code]fond[/code] dont la couleur dépend de la variable [code]coul[/code]. Si vous regardez dans l'onglet Avancé pour le polygone fond, vous verrez que les codes RGB dépendent de [code]coul[/code] et de la liste [code]Couleur={1, 0.8, 0.2, 0.4, 0.8, 0, 1, 0.2, 0.4}[/code]. Cette liste [code]Couleur[/code] contient 9 nombres. Les trois premiers sont 1, 0.8, 0.2 ce qui correspond à la couleur orange de code RGB=(1,0.8,0.2) il faut multiplier par 255 pour avoir l'équivalent sur la palette. De même les trois suivants sont pour vert et les 3 derniers pour rouge. L'opacité est réglée à 0.25 (soit 25%) sauf si [code]coul=0[/code] auquel cas le fond est transparent (opacité=0).

Information: Exerciseurs : comment ça marche ?