|
CNAM |
Versions ActiveX de
Geoplan et Geospace |
Cette page ne peut être lue que si les contrôles ActiveX du CREEM sont bien installés sur le PC.
Si les boutons qui figurent dans cette page se présentent sous un aspect
anormal en mode Edition, il suffit de modifier leur taille.
L'objectif est de créer la page grug1 que vous pouvez d'abord consulter consulter la page achevée "grug1.htm".
Cette page a été
créée en direct lors de la réunion du GRUG (Groupe des utilisateurs de Geoplan,
ouvert à tous) du 30 mars 2000 et c'est pour répondre à une demande que nous
vous proposons ce texte qui va permettre de refaire ce travail à ceux qui n'ont
pas pris de notes ou à ceux qui n'étaient pas là. Il s'agit d'un document
rustique, fourni à la demande unanime des participants. Nous ferons mieux
ultérieurement (si l'intérêt général le demande et si nous en avons le
temps..).
Ce n'est pas le fond des exercices qui
importe ici (ils sont simplistes) mais la façon dont on peut créer ce
mini-didactitiel, qui contient des figures, des textes contenant des formules
mathématiques, des questions dont les réponses sont soit une tâche à faire
sur la figure, soit un nombre à écrire dans la page, des
boutons et des tests.
Le guidage est écrit en bleu. Vous n'aurez qu'à l'effacer
à la fin pour comparer votre travail à la page grug1.htm. Vous pouvez aussi
essayer de travailler dans une nouvelle fenêtre, mais après essais, cela s'avère
peu pratique.
Au départ, nous supposons que vous lisez cette page sous
Internet Explorer et que le bouton Edition vous branche sur votre éditeur de
page html. Ici nous supposerons qu'il s'agit de FrontPage 2000 (ou,
mutatis lutandis, FrontPageExpress). Si vous en avez un autre, il vous
faudra adapter la suite Les éditeurs récents permettent l'insertion de contrôles
ActiveX (il faut quelque fois les paramétrer pour leur indiquer lesquels doivent
être disponibles).
Création de la
figure
Appuyez sur le bouton Edition de Internet
Explorer. Vous devez passer sous l'éditeur de pages html.
Maintenant,
à partir de cette ligne, vous lisez et agissez dans
l'éditeur.
Placez le curseur là où vous souhaitez avoir la
figure, ici par exemple.
Dans le menu Insertion, choisissez
Avancées puis Contrôle ActiveX. La liste des contrôles installés
sur votre machine et disponibles dans l'éditeur apparaît. Choisissez
GP0.GP0Ctl.
Vous avez maintenant une
figure-Geoplan ne contenant que les objets de base. Par un double-click vous
obtenez la fenêtre des propriétés du contrôle. Vous pouvez modifier le nom en
remplaçant celui donné automatiquement par Figure (le procédures de tests font
référence à ce nom). Vous pouvez observer en regardant le code html de la page
(sélectionnez la figure pour la retrouver parmi tout le reste) que le paramètre
TexteDeLaFigure n'est pas affecté pour le moment. C'est lui que vous
allez modifier pour obtenir la figure voulue. Cette figure a été faite sous
GeoplanW et vous allez recopier son texte pour le coller ici. Ouvrez la
figure Figgrug1.g2w avec GeoplanW (ou avec un éditeur de texte) et copiez
son texte. Collez ce texte après value de <param
name="TexteDeLaFigure" value>, en ajoutant
=" devant et " derrière. Dans votre code html, vous devez voir (ne recopiez pas
le texte ci-dessous à partir de
l'éditeur, il y aurait des ennuis avec les
retours-chariot, mais vous pouvez le
récupérer par copiage dans l'aperçu ou sous Internet Explorer en affichant cette
page ou en cliquant sur : figgrug1.txt):
<object
classid="clsid:DA6462AC-9024-11D2-8454-004005195FED" id="Figure" width="440"
height="300">
<param name="_ExtentX" value="11642">
<param
name="_ExtentY" value="7938">
<param name="TexteDeLaFigure"
value="Figure Géoplan
Numéro de version: 2
Position de Roxy: Xmin: -2,
Xmax: 2, Ymax: 3
Objet dessinable Roxy, particularités: rouge, non
dessiné
O point de coordonnées (0,0) dans le repère Roxy
Objet dessinable
O, particularités: nom au-dessus, marque épaisse
d droite munie du repère
(O,vec(i)) graduation 1
Objet dessinable d, particularités: gris foncé, non
gradué
I point d'abscisse 1 dans le repère d
Objet dessinable I,
particularités: nom au-dessus, marque épaisse
M point libre sur la droite
d
Objet libre M, paramètre: 2.5
Pas de pilotage au clavier de M: 0.5 (/
repère de la droite,modifiable)
Objet dessinable M, particularités: rose, nom
au-dessous, marque épaisse
x abscisse de M dans le repère d
A point
d'abscisse -2 dans le repère d
Objet dessinable A, particularités: bleu, nom
au-dessus, marque épaisse
B point d'abscisse 5 dans le repère d
Objet
dessinable B, particularités: bleu, nom au-dessus, marque épaisse
p525 point
libre
Objet libre p525, paramètres: -12, 0
Objet dessinable p525,
particularités: gris foncé, marque non dessinée
Objet libre actif au clavier:
M
Objets protégés: O, d, I, M, x, A, B
Objets d'accès interdit: p525
A
la place de p525, afficher: d
Commentaire
Fin de la
figure">
<param name="Initialisation" value>
<param
name="NomDuFichier" value>
<param name="Affecter_TexteDeLaFigure"
value="-1">
<param name="BackColor"
value="16777215">
</object>
Normalement, vous devez voir votre figure (il faut la
redimensionner, à la main) et vous devez pouvoir vérifier qu'elle fonctionne en
mode Aperçu.
Comme nous supposons que vous n'êtes pas là pour apprendre à
taper du texte, nous l'avons fait pour vous mais il reste à insérer les
contrôles EcritMath qui permettront d'écrire les vecteurs. Il s'agit
d'insérer
après
le mot repère, et
après tel que dans la phrase qui accompagnera la
figure:
Dans la figure, la droite d est munie du repère , le point I
est tel que , les points A et B ont pour abscisses respectives (-2) et 5,
le point M est un point libre de la droite d et x est son abscisse.
Remettez-vous si nécessaire en mode Edition, Placez le curseur au
bon endroit après le mot repère avec un espace derrière. Dans le menu Insertion,
choisissez Avancées puis Contrôle ActiveX. Choisissez EcritMath.EcritMathCtl.
Ouvrez la fenêtre de propriétés par un double click sur l'instance du contrôle.
Inutile de changer le nom dont on ne se sert généralement pas, en revanche il
faut régler l'alignement à Milieu absolu. Utilisez l'onglet Paramètres et ouvrez
par double-click sur Expression la fenêtre qui va vous permettre d'entrer
l'expression justement : dans la ligne Données écrivez (\O\,\vec(i)\) et
appuyez sur OK deux fois. Recommencez pour l'égalité vectorielle qui définit I
en écrivant cette fois \vec(O,I)\=\vec(i)\.
Nous avons écrit pour vous la
question 1 mais vous pouvez essayer de l'écrire vous-même...
Question 1 : Placer le point M pour que
.
Il
faut maintenant créer trois boutons. Ce sont encore des contrôles ActiveX (mode
Edition, menu Insertion, Avancées, ContrôleActiveX, choisissez par exemple:
Microsoft Form 2.0 CommandButton. Ouvrez la fenêtre des Propriétés, changez le
nom (Graduer), l'alignement si vous voulez, dans les Paramètres double-cliquez
sur Caption, et dans la lignes de Données écrivez Graduer d. Faire de même le
bouton de nom AfficherX et de Caption Afficher x, et le troisième de nom Tester
et de Caption Tester la position de M.
Vous devez maintenant avoir vos trois boutons.
Faisons les scripts.
Voici celui du bouton Graduer:
<script language="VBScript"><!--
Sub Graduer_Click
Figure.ExecuteLigneGP
0, "Objet dessinable d, particularités: gris
foncé"
Figure.InfoEtBoutons "La droite d est maintenant graduée de 1 en
1."," Graduer d","Ok"
Graduer.enabled=false
end sub
--></script>
Sub AfficherX_Click
Figure.ExecuteLigneGP 0, "Hauteur de la zone des affichages: 20"+chr(13)
_
+"Af0 affichage du scalaire x (2 décimales)"+chr(13)
_
+"Objet dessinable Af0, particularités: rose"+chr(13) _
+"Position de l'affichage Af0: (300,0)"
end sub
Ce script est à placer entre <script language="VBScript"><!--
et --></script> (si vous voulez à la suite du script
précédent)
Le troisième bouton va déclencher une procédure de test qui comparera la position de M à la solution de l'exercice, créée par programmation et cachée comme on peut le voir (M749 est non dessiné), puis supprimée par programmation. Comme précédemment, les possibilités des tests ne peuvent être détaillées ici et feront l'objet d'un document d'aide qui sera fourni plus tard.
Sub Tester_click
Figure.ExecuteLigneGP
0,"M749 point d'abscisse -3.5 dans le repère d"+chr(13) _
+"Objet
dessinable M749, particularités: non dessiné"
T=Figure.TestParTexteGP(0, "Egalité des valeurs de M et M749 (tolérance:
1)")
if T=0 then message ="Exact" else message="Faux"
Figure.InfoEtBoutons message,"Test de la position de M","Ok"
Figure.ExecuteLigneGP 0,"Supprimer M749"
end sub
Vous avez fait maintenant la plus grosse partie du travail, et vous pouvez essayer de vous mettre en position d'élève pour placer le point M et tester sa position.
Passons à la question 2.
Question 2 : A chaque point M de d, on associe N tel que
. Créer N dans la
figure.
Exercez vous à écrire l'égalité vectorielle
vous-même dans un EcritMath.
Créez les deux boutons (ou gardez ceux-ci si
vous estimez que c'est une tâche que vous savez
faire).
Les
scripts de ces boutons sont à écrire dans le code html:
Sub
Aide_click
message="N est l'image de M par une translation"+chr(13)
_
+"de vecteur \vec(u)\ à déterminer."+chr(13)+"
"
Figure.InfoEtBoutons message,"Aide pour N","Ok"
end
sub
Remarquez la présence des antislashs autour de vec(u) pour l'écriture mathématique des vecteurs.
Sub TesterN_click
Figure.ExecuteLigneGP 0,"N654 point d'abscisse 4x+3.5 dans le repère d"+chr(13)
_
+"Objet dessinable N654, particularités: non
dessiné"
T=Figure.TestParTexteGP(0, "Egalité de N et N654")
if T = 0 then
message="Exact"
elseif T=51
then
message="Construire un point N !"
elseif T=53 then
message="Juste pour la position actuelle
de M"+chr(13) _
+"mais pas pour toutes les positions de
M."+chr(13) _
+"Corriger."
else
message="Faux"
end if
Figure.InfoEtBoutons message,"Test de
N","Ok"
Figure.ExecuteLigneGP 0,"Supprimer N654"
end
sub
N654 est la solution, créée
par programmation, non dessinée, et supprimée ensuite. On teste l'égalité entre
N et N654.
Les codes renvoyés par la procédure de tests seront eux aussi
expliqués dans un futur document d'aide.
Ici 0 signifie que
N=N654
51 signifie qu'il n'y a pas d'objet N dans la
figure testée,
53 signifie que l'égalité par valeur est
vérifiée mais pas celle avec agitation des variables (autrement dit le point N
est bien placé pour la position actuelle de M mais il n'est pas construit à
partir de M et si on déplace M, qui est libre, N ne "suivra
pas".
Essayez votre programmation avant de passer à la suite.
Passons à la troisième question. Elle va
traiter des possibilités de communication de données numériques entre la figure
et la page html.
Une figure complète est fournie (nom Figure1), avec le
point N et une variable lg, longueur du segment MN. On aurait pu créer cette
variable par programmation dans la figure du début (de nom Figure) après s'être
assuré que l'élève a bien créé le point N mais nous avons préféré rester
simples.
Vous pouvez supprimer cette figure et vous exercer à en remettre
une. Respectez le nom Figure1 utilisé dans les scripts des boutons.
Question 3 : lorsque M varie sur la droite d, la longueur MN
varie aussi.
Déplacer le point M et observer les valeurs de MN.
MN »
Vous allez insérer ici un label. C'est encore un contrôle
ActiveX (mode Edition, menu Insertion, Avancées,
ContrôleActiveX, choisissez par exemple: Microsoft Form 2.0 Label. Ouvrez la
fenêtre des Propriétés, changez le nom (LabelPourMN) et l'alignement (Milieu
Absolu).
Il faut faire un script pour écrire dans ce label la longueur MN en
l'actualisant à chaque modification de N.
Sub Figure1_EventMobileBougeGP(ByVal
Numero)
ValeurMN=Figure1.ValeurScalaireDoubleGP(Figure1.NumeroFigure,
"lg")
LabelPourMN.caption=FormatNumber(ValeurMN,2)
end
sub
L'événement EventMobileBougeGP est déclenché dès
qu'il y a un changement dans la figure (ici Figure1). La procédure récupère cet
événement et la méthode ValeurScalaireDoubleGP permet de récupérer la valeur de
la variable lg et de la faire afficher dans LabelPourMN.
Passons à la
suite qui demande une réponse numérique à l'élève, réponse que l'on veut
récupérer et tester.
Déterminer une valeur de x pour laquelle MN = 0 :
x = Insérez ici un contrôle EcritMath, (mode
Edition, menu Insertion, Avancées, ContrôleActiveX, EcritMath.EcritMathCtl).
Ouvrez la fenêtre des Propriétés, changez le nom (FPourX) et l'alignement
(Milieu Absolu). Appuyez sur l'onglet Paramètres. Vous allez modifier Expression
(écrivez ? dans la ligne de Données) AntiSlashParDLL est à mettre à True en
écrivant -1 à la place de 0 dans la ligne de Données et ExpressionModifiable est
à mettre à True de la même façon. Ce contrôle EcritMath ainsi conditionné permet
l'entrée d'une expression, sans nécessité de mettre des AntiSlash puisque
ceux-ci seront ajoutés automatiquement. Cette expression sera récupérable pour
un test.
(Double-cliquer sur le point d'interrogation pour proposer
une valeur.)
Exercez-vous à créer ce bouton vous-même si vous voulez. Insérez
son script:
sub
TesterX_click
Figure1.ExecuteLigneSansDessinerGP
0,"c1="+FPourX.Expression
Figure1.ExecuteLigneSansDessinerGP
0,"c2=-7/6"
T=Figure1.TestParTexteGP (0,"Egalité des valeurs de c1 et
c2")
if T=0 then message="exact" else message="faux"
Figure1.InfoEtBoutons
message,"test de x","Ok"
end sub
Remarquez que cette fois les procédures font référence à
Figure1.
On crée par programmation une variable c1 égale à ce que l'élève a
écrit dans l'EcritMath (que l'on récupère dans la propriété Expression du
contrôle EcritMath FPourX), on crée la solution c2 et on teste l'égalité de c1
et c2 (égalité des valeurs puisqu'il n'y a pas de variables ici).
Enfin, on fournit à l'élève une zone pour écrire sa démonstration (qui ne sera pas testée). C'est un contrôle EcritMath dans lequel Expression vaut Démonstration, AntiSlashParDLL est à false (0) et ExpressionModifiable est à true (-1). L'élève pourra y écrire un texte de plusieurs lignes, contenant des écritures mathématiques écrites avec la même syntaxe que dans GeoplanW (et les même boutons pour les écrire), les expressions à dessiner devant être mises entre antislashs. Une aide est accessible. Il ne faut pas oublier d'utiliser le bouton Appliquer pour refermer la fenêtre d'édition.
Ecrire la démonstration ci-dessous (double-cliquer sur le mot démonstration).
Exercez-vous à créer ce contrôle.
Vous pouvez maintenant nettoyer ce document de tout ce qui est écrit en bleu, l'enregistrer (sous un autre nom si vous voulez conserver celui-ci) le comparer au document grug1 et l'essayer en position d'élève.
Il resterait à améliorer la présentation. Comme vous pouvez le voir dans les différents exemples proposés par le CREEM, on peut mettre des couleurs (avec parfois des surprises quand on passe d'une machine à l'autre) et soigner la mise en page. Mais ce n'est pas le plus difficile. Ce qui demande le plus de temps c'est de trouver des bons exercices, de poser des bonnes questions et surtout de faire une analyse pertinente des réponses, prévoir les erreurs les plus courantes, se donner les moyens de les repérer, fournir les bonnes aides etc. Il faut être modeste au début car la création d'un didacticiel est une tâche qui devient très vite difficile à gérer.