DocAide Documents II
Sommaire
Ce document détaille et complète la partie "Insertion d'exemples à données aléatoires"
du
DocAide Documents
.
Il présente aussi des exemples de dessins dynamiques et d'insertion de figures GeoGebra. Il donne des indications pour l'utilisation de Latex2wims.
Exemples aléatoires
-
Bases de la programmation des exemples aléatoires
-
Boucles et branchements
-
Formulaire d'entrée de variables
-
Formulaire outil
-
Créer un exemple à partir d'un exercice
. Exemple :
Nombre dérivé
.
-
Exemples à solution cachée
(avancé)
Dessins dynamiques
- Aide pour les figures
-
Exemples de dessins dynamiques
-
Interprétation des signes dans une équation de droite
et son
code
-
Interprétation graphique pour une équation du second degré
et son
code
-
Fractions de segment
et son
code
-
Exemple de barycentre
et son
code
-
Exemples avec GeoGebra
-
Equation d'une droite
avec son
code
-
Equation d'une tangente
-
Construction d'une médiatrice
Composer un DocWims à partir d'un fichier LateX : latex2wims
Latex2wims est une moulinette qui transforme un fichier LateX bien préparé en document WIMS ; on obtient aussi une version pdf :
Démarrer avec Latex2wims
Bases de la programmation des exemples aléatoires
Pour les questions traitées ici, voyez aussi l'Aide 7 et 8
ou la partie "Insertion d'exemples à données aléatoires" dans DocAide Documents.
La définition des variables et l'aléatoire
Les variables utilisées dans les exemples sont les mêmes que celles
des exercices :
text, integer, rational, matrix..., seule la syntaxe de définition change.
Pour la liste des paramètres aléatoires, consulter l'
Aide de Createxo
.
- \def{text p=pomme} donne à la variable
p la valeur pomme.
Par la suite, quand on écrit \p dans le document (noter le signe \ devant le nom de la variable lors de son utilisation), \p est remplacé par pomme à l'affichage.
- \def{text p=random(pomme, poire)} écrit aléatoirement pomme ou poire quand on écrit \p dans la page. Il suffit de recharger la page.
- \def{integer n=4} définit un entier
n, qu'on appelle avec la commande \n et qui vaut
4.
- \def{integer n=random(1..4)} définit un entier
n qu'on appelle avec la commande \n et qui vaut aléatoirement
1,
2,
3 ou
4.
- On peut définir une liste et en récupérer les éléments :
\def{text liste = 1,2, x, 3/4}
\def{text s = item(3,\liste)} ou \def{text s = \liste[3]}
- On peut définir toute sorte de
matrice, les lignes sont écrites les unes en dessous des autres et les éléments sont séparés par une virgule,
et en récupérer les éléments :
\def{matrix A = la fonction est positive, oui
la fonction est négative, non}
\def{text s = item(1,row(2,\A))} ou \def{text s = \A[2;1]}
Renouveler les données
L'intérêt d'un exemple aléatoire est ses données ou questions aléatoires. Celles-ci sont à nouveau tirées au hasard à chaque chargement de la page.
On obtient le chargement de la page et donc de nouvelles données en cliquant sur le lien
Recharger du bandeau. On obtient le même effet
en cliquant sur un lien
Nouvel exemple défini par
\reload{Nouvel exemple} (
toute la page est rechargée).
-
Le double de 1 est 2.
-
Un kilogramme de tomates vaut 3 euros. Le prix des tomates est proportionnel à la masse de tomates et le coefficient de proportionnalité est 3.
Pour la suite, utilisez le lien Suiv. dans le bandeau ou une flèche latérale.
Boucles et branchements
La syntaxe des boucles et embranchements dans les exercices se trouve
dans le
DocAide Exercices
.
On peut aussi consulter l'aide de Createxo et celle des documents (
Utilisation de Variables dans un Document).
Boucle
La boucle
\for{i=1 to 10}{\i, } permet d'afficher les entiers de 1 à 10.
Compte de 1 en 1 de 1 à 10. Solution : 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Voir le code
Dans la page
Cacher la solution dans un exemple
(lien direct) de la partie 5 (Insertion d'exemples à données aléatoires) du DocAide Documents,
vous trouverez cet exemple avec sa solution cachée affichable à la demande, le code est donné.
Un branchement
Ce premier exemple utilise la commande \if.
Le code :
\def{ text mot = randitem( exercice, exercices) }
\if{\mot issametext exercice}{un}{des}\mot
donne
Voici
des
exercices .
Dans cet exemple, il y a peu d'aléatoire (deux cas) donc le renouvellement ne produit pas nécessairement de changement.
Un autre branchement
Ce deuxième exemple utilise une forme plus synthétique en cas d'alternative.
Noter le point d'interrogation pour la condition et les deux points qui séparent les deux alternatives.
Le code :
\def{ integer p = random(-1,+1)*random(1..10) }
\def{ text signe = \p>0? positif:négatif }
L'entier \n est strictement \signe.
donne
L'entier 9 est strictement positif.
Formulaire d'entrée de variables
On peut demander au lecteur d'entrer une valeur
Le code :
\form{.}{expform}{
Entrez une expression numérique à calculer :
<input size = 30 name = parm1 value = "\parm1">
<input type = hidden value = OK>
}
\def{real N = \parm1}
L'expression vaut \N.
donne
L'expression vaut 0.
ou plusieurs valeurs
La somme des entiers
8 et
6 vaut
14.
Voir le code
\def{integer parm2=randint(0 .. 9)}
\def{integer parm3=randint(0 .. 9)}
\form{.}{expform}{
Entrez deux entiers :
<input size = 10 name = parm2 value = "\parm2">
et
<input size = 10 name = parm3 value = "\parm3">
<input type = submit value = OK>
}
\def{integer N = \parm3 + \parm2 : 0}
La somme des entiers \(\parm2) et \(\parm3) vaut \(\N).
Formulaire outil
WIMS propose différents outils rapides qu'on peut insérer dans une page html donc dans un DocWims.
En voici un exemple avec une question à données aléatoires.
Factorisation
Factorisez l'expression suivante
et utilisez l'outil pour vérifier votre résultat.
Créer un exemple à partir d'un exercice
Vous pouvez transformer un exercice en exemple aléatoire à l'aide de quelques simples modifications.
On peut ainsi récupérer des dessins intéressants.
C'est un moyen pour présenter une solution rédigée d'un exercice proposé dans une feuille.
- Commencez par importer le source de l'exercice dans votre classe et copiez-le dans un fichier texte, par exemple gedit.
- Les lignes qui ne commencent pas par \ sont des commentaires,
vous pouvez les effacer ou les inclure dans un \comment{}.
- L'énoncé est dans \statement.
Vous supprimez la commande \statement{ ainsi que le } à la fin de l'énoncé.
- Les commandes qui définissent les variables doivent être modifiées
ainsi : \text{a=...} est remplacé par \def{text a=...}.
On peut le faire automatiquement en utilisant rechercher et remplacer.
Tous les détails sont dans l'aide des documents, rubrique Utilisation de Variables dans un Document.
Nombre dérivé
Voici un exemple construit à partir du source de
cet
exercice
.
Soit la fonction
f définie sur
, par
f(
x)=
5
x2 + 2
x + 2.
Voici les étapes pour calculer le nombre dérivé de
f en
x= -1.
- Calculer
f(-1) :
f(-1)=
- Exprimer
f(-1+h) en fonction de
h :
f(-1+h)=
- Exprimer le rapport
en fonction de h:
- Le nombre dérivé de
f en
x= -1 est la limite de
quand
h tend vers
0, c'est-à-dire
.
Exemples à solution cachée
Si on veut cacher la solution et ne l'afficher qu'à la demande, il est impossible de la mettre dans un pli car à l'ouverture du pli, les données sont renouvelées.
C'est pourquoi, on utilise la commande
\link.
La page
Cacher la solution dans un exemple
dans la partie 5 (Insertion d'exemples à données aléatoires) du DocAide Documents présente les détails de cette technique.
On y trouve l'
exemple de boucle
avec sa solution cachée.
Résolution d'une équation du second degré
Cet exemple, comme souvent, n'est pas programmé comme on résout l'exercice. On se donne des racines aléatoires et on établit l'équation.
Les paramètres à transmettre seront donc les racines et bien sûr le paramètre
N qui décide du choix entre
l'affichage du lien
solution ou l'affichage de la solution et du lien
renouveler l'exemple.
Code de cet exemple.
On commence par définir le paramètre
N qui décide du choix entre "donner la solution" ou "renouveler l'exemple" et le nom du lien pour recharger la page. Ce lien est placé après l'énoncé, c'est la dernière ligne du code.
\def{integer N = \parm1 = 1 ? 2 : 1}
\def{text lien=\N=1 ? Solution:Nouvelle équation}
Voici la mise en place des données de l'exemple.
- Si N vaut
1, les données sont prises aléatoirement car on a renouvelé l'exemple.
- Si N vaut
2, les données sont celles transmises par la commande (dernière ligne) qui renouvelle la page pour afficher la solution. Elles sont utilisées pour le calcul de la solution.
\def{integer e = \N=1 ? random(1..4):\parm2}
\def{integer f = \N=1 ? random(-2..5):\parm3}
Calcul nécessaire pour établir l'équation et la solution.
\def{integer b = -(\e + (\f))}
\def{integer c = \e*\f}
\def{integer d = (\b)^2-4*(\c)}
\def{text E = maxima(x^2+\b*x+\c)}
Affichage de l'énoncé.
Résoudre l'équation \(\E = 0).
Affichage de la solution quand
N vaut
2. La solution dépend de la valeur du discriminant.
\if{\N=2}{Le discriminant vaut \(\d).}
\if{\d = 0 and \N=2}{L'équation a une seule solution : \(\alpha = \e).}
\if{\d <> 0 and \N=2}{L'équation a deux solutions : \(\alpha = \e) et \(\beta = \f).}
Voici la commande qui transmet les paramètres et affiche le lien pour recharger la page.
\link{.}{\lien}{exemple}{parm1=\N&parm2=\e&parm3=\f}
Proportionnalité
Voici un exemple construit à partir du source de l'
exercice
"Tableau 1".
Voir le code
.
Code du tableau de proportionnalité
Pour renouveler la page
\def{integer N = \parm1= 1 ? 2 : 1}
\def{text lien=\N=1 ? Réfléchis puis regarde la réponse:Nouvelle question}
Source de l'exercice
\def{rational prop=\N=1 ? random(randint(2..9), random(3/2,1/2,5/2)):\parm2}
\def{integer a=\N=1 ? randint(3..6):\parm3}
\def{integer b=\N=1 ? randint(4..9):\parm4}
\def{integer b=\a=\b? \b+1}
\def{rational aa=\a*\prop}
\def{rational bb=\b*\prop}
\def{text pr=\prop}
\def{text choix=\N=1 ? random(1,2,3,4):\parm5}
Construction de la réponse
\def{text tableauReponse=<table align="center" border=1>
<tr align="center"><td width="50%">\a</td>
<td>\b</td></tr>
<tr align="center"><td>\aa</td>
<td>\bb</td>
</tr>
</table>
<br> Le coefficient de proportionnalité entre les lignes est \pr.}
Définition de la variable
reponse qui est vide si
N vaut
1.
\def{text reponse=\N=2 ? La solution est \tableauReponse:}
Affichage de l'énoncé
Complète le tableau de proportionnalité suivant :
<table align="center" border=1>
<tr align="center"><td width="50%">
\if{\choix=1}{ }{\a}</td><td>\if{\choix=2}{ }{\b}</td></tr>
<tr align="center"><td>\if{\choix=3}{ }{\aa}</td><td>
\if{\choix=4}{ }{\bb}</td>
</tr>
</table><br>
Quel est le coefficient de proportionnalité entre les lignes ?
Affichage de la variable
reponse et du lien pour renouveler l'exemple ou afficher la réponse.
\reponse
<br>
\link{.}{\lien}{}{parm1=\N&parm2=\prop&parm3=\a&parm4=\b&parm5=\choix}
Dessins dynamiques avec des commandes WIMS
Pour les dessins dynamiques à l'aide de commandes WIMS, consultez
- l'aide des DocWims (§7),
- le paragraphe
dessin
dans le DocAide Exercices OEF,
- l'aide de Createxo
- le polycopié pdf "Introduction à la programmation" dans la classe d'exemple Autre / Développement de ressources.
Exemples de dessins dynamiques
-
Interprétation des signes dans une équation de droite
et son
code
-
Interprétation graphique pour une équation du second degré
et son
code
-
Fractions de segment
et son
code
-
Exemple de barycentre
et son
code
Insertion de figures GeoGebra
Pour l'insertion de figures GeoGebra, trois méthodes sont possibles (chaque lien envoie vers les détails de la méthode)
-
La commande slib(geo2D/geogebra ...) dans WIMS
. Elle utilise le GeoGebra de WIMS et le fichier GeoGebra que vous avez créé pour des figures 2D.
Cette méthode permet d'utiliser les paramètres aléatoires de WIMS et/ou de construire la figure avec des lignes de commande.
-
Insertion à l'aide de jsxgraph d'une figure GeoGebra
. Une commande WIMS permet de transformer une figure GeoGebra en jsxgraph.
-
Afficher une figure depuis geogebratube
. Vous pouvez téléverser la figure dans geogebratube et l'appeler depuis la page de votre document.
C'est utile pour les figures en 3D que le GeoGebra de WIMS ne prend pas encore en charge.
Exemples avec GeoGebra
-
Equation d'une droite
avec son
code
-
Equation d'une tangente
-
Construction d'une médiatrice
La commande slib(geo2D/geogebra ...) dans WIMS
Cette page concerne les figures en 2D. Pour la 3D et l'affichage depuis
geogebratube, consulter cette
page
.
La commande slib(geo2D/geogebra ...)
Pour insérer une figure GeoGebra on utilise la commande slib(geo2D/geogebra ...).
WIMS utilise un GeoGebra présent sur son propre serveur,
donc sans recours à une connexion extérieure. Les figures sont affichées en html 5.
Pour accéder à l'aide des slib, choisir, dans la page d'accueil du serveur,
Doc technique puis le paragraphe 8 List of slib et enfin geo2D/geogebra.
Méthode d'accès direct : Par ce
lien
,
vous accédez à la documentation technique puis directement à l'aide du slib geo2D/geogebra
en cliquant sur List of slib).
On peut insérer la figure sous forme de fichier : on le dépose dans les fichiers du DocWims (lien Dépôt de fichier)
et on utilise la commande file=fichier.ggb;.
exemple
Commandes et paramètres aléatoires
On peut aussi construire la figure avec les commandes GeoGebra, par exemple A=(\a,\b)
si a et b sont les coordonnées (aléatoires) du point A. C'est ainsi qu'on peut utiliser, dans une figure GeoGebra d'un Doc WIMS, des paramètres aléatoires définis au préalable.
Le lecteur doit initialiser la figure pour que les objets apparaissent.
Quand une figure GeoGebra est construite, on peut afficher dans le protocole de construction
les seules colonnes nom et commande, puis l'exporter en page web ;
on obtient alors, dans la page qui s'affiche dans le navigateur et dans le source de la page html, la liste des commandes utiles pour reconstruire la figure en ligne de commande dans le slib(geo2D/geogebra ...).
Options d'affichage
Voici le lien vers l'
aide GeoGebra en pdf très utile pour les commandes et options.
- Pour afficher la barre des boîtes à outils (on peut l'avoir personnalisée dans GeoGebra), on utilise la commande showToolBar = true;.
On peut préciser les outils disponibles avec la commande customToolBar
dont les paramètres sont les codes des outils (Aide GeoGebra pages 23 et suivantes).
- Les axes sont cachés grâce à la commande
setAxesVisible(false,false) ( un false pour chaque axe).
- Pour afficher la grille, on utilise setGridVisible(true) (Aide GeoGebra page 100).
- pour afficher le champ de saisie, on utilise showAlgebraInput=true; (Aide GeoGebra page 21).
- Si on veut interdire le menu des propriétés, on écrit enableRightClick=false; (Aide GeoGebra page 20).
- Si l'étiquette du point
A ne s'affiche pas, il faut ajouter la commande setLabelVisible('A',true);.
- Les commandes d'affichage des différentes fenêtres GeoGebra sont disponibles
ici.
Insertion à l'aide de jsxgraph d'une figure GeoGebra
La commande
slib(geo2D/ggb2jsxgraph ... ) permet d'afficher une figure
GeoGebra simple avec le logiciel
jsxgraph qui n'utilise pas
java à l'affichage.
Voici le code :
\def{text C=slib(geo2D/ggb2jsxgraph
blabla
,400x400,1)}
- blabla est
soit le nom du fichier ggb déposé dans Dépôt de fichier,
soit la liste des caractères suivants value= dans la source de la figure exportée en html ,
- 400x400 la taille du cadre de la figure,
- 1 le numéro d'ordre de la figure dans la page.
Afficher une figure depuis geogebratube
Le site geogebratube est un site de partage de ressources GeoGebra.
Pour l'utiliser, vous devez créer un compte. Une figure déposée peut être privée, partagée ou publique.
Les figures partagées peuvent être affichées dans un document WIMS. Cet affichage dépend du serveur geogebratube.
Ces méthodes permettent l'affichage des figures 3D.
- Téléverser une figure dans geogebratube.
- Afficher une figure dans geogebratube.
L'URL de partage (dans Partager) permet d'établir un lien vers la figure.
Exemple de figure en ligne.
- Afficher une figure dans une page depuis geogebratube.
Dans l'onglet Imbriquer, choisir les options, copier dans le presse-papier le code html est fourni, puis
le coller dans la source de la page du DocWims concernée. La figure est alors affichée dans la page du DocWims.
Exemple de code
,
exemple d'affichage
.
- Afficher une figure dans une page depuis geogebratube avec le slib et éventuellement ajouter des commandes.
Exemple
Code pour imbriquer
Voici le code qui a servi à afficher cette
figure
.
<iframe scrolling="no" src="https://www.geogebra.org/material/iframe/id/1541561/
width/655/height/460/border/888888/rc/false/ai/false/sdz/true/smb/false/stb/false/stbh/true/ld/false/sri/true/at/auto"
width="655px" height="460px" style="border:0px;"> </iframe>
Le nombre après id est utilisé pour afficher la figure avec le slib. Voir
ici
.
Le reste code les options choisies avant de copier le code, en particulier la taille de la figure qu'on peut modifier directement dans ce code.
Figure affichée avec le code fourni par geogebratube
Voir le code html imbriqué.
Affichage d'une figure 3D avec le slib
Cette figure est déposée sur geogebratube et son id
(accessible à la fin de l'url de la figure sur geogebratube) est gmE6GG9S.
Le point vert
P est mobile. Sa position rouge
M au milieu de l'arête permet d'afficher le cuboctaèdre.
Quand
P est en
Q, on affiche un cube tronqué.
Voici le code pour cet affichage. On aurait pu ajouter des commandes comme en 2D.
\def{text appletoption=material_id=gmE6GG9S;
width=500;
height=400;
}
\def{text Cube=slib(geo2D/geogebra \appletoption)}
<div class="wimscenter">\Cube</div>
Démarrer avec Latex2wims
Latex2wims est une moulinette qui transforme un fichier LateX bien préparé en document WIMS ;
on obtient aussi une version pdf.
Une interface spéciale sert à la création du document qui est ensuite géré par l'interface commune de Modtool.
Pour utiliser latex2wims, il faut disposer d'un compte modtool.
Pour obtenir un compte Modtool, écrire au gestionnaire du site afin d'obtenir une identification du développeur (login, mot de passe).
En attendant un compte Modtool, on peut télécharger la documentation et composer le fichier LateX qui sera transformé.
- Récupérer la documentation et les fichiers utiles
- Cliquer sur le lien Latex2wims sur l'Accueil WIMS : on peut alors télécharger la documentation et la lire.
- Se connecter à son compte modtool, (cliquez sur le lien Latex2wims si on ne l'a pas fait avant).
On peut créer un document-exemple en suivant le processus décrit dans la
fiche.
- Voici quelques exemples de documents créés avec Latex2wims et publiés.
-
L'essentiel sur les puissances
-
Doc Frises et Pavages
-
Doc Écriture fractionnaire
- Rédiger son fichier LateX
- Récupérer les fichiers wims.sty (indispensable pour compiler le fichier latex) et style.css (indispensable pour la mise en forme WIMS).
- Créer un fichier Latex avec l'entête préconisée dans la documentation.
- Comme il est indiqué dans la documentation, on peut utiliser les environnements latexonly ou wimsonly
pour insérer dans le fichier des parties qui n'apparaîtront uniquement dans la sortie "pdf" (par exemple une figure fixe en png) ou uniquement
dans la sortie "document WIMS" (par exemple la même figure mais en version GeoGebra).
- Pour passer à la moulinette latex2wims, le fichier LateX doit déjà passer correctement l'épreuve de la compilation LateX.
- A l'aide de Latex2wims, transformer le fichier LateX en un document WIMS
- Dans Modtool, créer le module "document" où le document créé par Latex2wims sera envoyé.
- Retourner à la liste des modules et cliquer sur le lien Latex2wims.
- Transférer les fichiers utiles :
- le fichier LateX bien préparé,
- les fichiers wims.sty et style.css qui ont pu être modifiés selon la documentation.
- Passer à l'étape suivante et marquer le fichier principal.
- Choisir le module créé à l'étape 1 pour envoyer le document transformé.
- Lancer l'exécution et vérifier le résultat
- Gérer un document composé à l'aide de Latex2wims.
Pour la gestion du document composé, cliquer, dans la liste des modules, sur le nom du module créé.
- Pour voir le document, cliquer sur Tester.
- Pour envoyer un nouveau fichier, choisir Autres fichiers, puis le repertoire où le fichier doit être envoyé .
- Les nouvelles versions des fichiers Latex, wims.sty et style.css sont envoyées dans le répertoire doc/srctex.
- Les images sont envoyées dans le répertoire doc/1/files.
- Cliquer sur Compiler latex2wims pour mouliner les fichiers.
- Pour voir le résultat, cliquer sur Tester ou Recharger le document s'il est déjà affiché.