géogébra

Ce sujet a 3 réponses, 2 participants et a été mis à jour par  Julien, il y a 1 an et 2 mois.

  • Auteur
    Messages
  • #3470

    xavier
    Participant

    Bonjour,

    J’essaie de programmer avec des réponses du type géogébra. Je m’en sors, sauf pour la correction. En effet si je mets une case correction dans le fichier ggb, un élève qui s’est trompé ne cliquera jamais sur “envoyer la réponse”.

    J’aimerais faire comme dans la vidéo “wims et géogébra” du colloque d’Annecy, c’est-à-dire avec un onglet “initialisation” et un autre “correction” qui n’apparaît qu’une fois qu’on a cliqué sur “envoyer la réponse”.

    Hélas, ce n’est pas expliqué dans la vidéo et je n’ai pas trouvé les fichiers utilisés.

    Merci d’avance,

    Xavier.

  • #3474

    Julien
    Participant

    Bonjour,

    J’ai répondu sur votre boîte mail académique.

    Je fais un copier coller :

    Pour l’onglet d’initialisation la doc se trouve dans la documentation sur la bibliothèque de scripts liée à ggb.
    init= par défaut 0 absence de bouton d’initialisation.
    Si le paramètre est à 1, l’initialisation fonctionne quelque soit la figure. Par contre elle ne prend pas en compte l’initialisation du script effectué dans ggb par l’intermédiaire de ggbOnInit.
    Si le paramètre est à 2, l’initialisation prend en compte uniquement les commandes tapées en mode texte dans la slib ou le anstype. Par contre on gagne en rapidité d’exécution.

    Pour obtenir l’onglet correction, la doc se trouve dans la documentation sur le type de réponse lié à ggb.
    feedbackscript : Sa valeur est le nom d’une fonction javascript qui doit être définie en javascript correct dans le champ \feedback. Lors de l’analyse de la réponse, un bouton permet de lancer son exécution. Par défaut le nom du bouton est Correction.
    namebutton : Sa valeur définit le nom du bouton.

    Le fichier oef suivant fait tourner l’applet assiette cassée réalisé par Daniel Mentrard. La correction est déjà réalisée.

    \title{Assiette Cassée}
    \precision{10000}
    
    \integer{bb=randint(100..170)}
    integer{bb=-10}
    \real{aa=random(6.2..8)}
    integer{aa=-4}
    \integer{aaa=\aa*100}
    \real{aaaa=\aaa/100}
    
    \matrix{mm=}
    
    \text{appletoption=showMenuBar=false
    init=1
    showToolBar=true
    customToolBar=0|2|15|3|4|8|5|38|36|40|6
    file=assiettecasse11.ggb
    enableRightClick=true
    showToolBarHelp=false
    enableLabelDrags=false
    enableShiftDragZoom=true
    width=800
    height=600
    aa=\aa
    bb=\bb}
    
    \statement{
    <div class="encadre">
    <p class="problematique">Comment déterminer le rayon de l'assiette ?</p>
    <div class="enonce">
    Au cours d'une soirée, Mélanie casse quelques assiettes de sa meilleur amie. Pour réparer le préjudice, elle
     souhaite racheter des assiettes. Afin que les nouvelles assiettes se fondent dans l'ancien service, elle
     souhaite connaître le rayon de celle-ci.
     <br /><i>Pour résoudre la problématique, la construction devra utiliser
      uniquement les points existants donc vous ne devez pas avoir de point bleu qui apparaissent.</i>
    <div class="wimscenter">
    \embed{reply1,
    \appletoption}
    </div>
    
    <div class="question">
    Le rayon des assiettes est de : \embed{reply2,4} cm
    </div>
    </div>}
    
    \answer{}{f,=LineBisector[A,B],La médiatrice du segment [AB] est construite;
    f,=LineBisector[B,C],La médiatrice du segment [BC] est construite;
    f,=LineBisector[A,C],La médiatrice du segment [AC] est construite;}{type=geogebra}{option=extra=yes precision=3 max=200 output=noobjet feedbackscript=Correction
    scenario=@:1:2@:1:3@:2:3@:1:2:3@}
    
    \answer{Rayon de l'assiette}{\aaaa}{type=numeric}{option=comma}
    
    \matrix{mm=\sc_reply1}
    
    \feedback{\mm[1;1] notin 1 or \sc_reply2!=1}{
    <script type="text/javascript">
    function Correction(){ggbApplet0.evalCommand("zz=LineBisector[A,B]");
    ggbApplet0.evalCommand("zzz=LineBisector[A,C]");
    ggbApplet0.evalCommand("zzzz=LineBisector[B,C]");
    ggbApplet0.evalCommand("A_1=Intersect[zz,zzz]");
    ggbApplet0.evalCommand("SetColor[zz,green]");
    ggbApplet0.evalCommand("SetColor[zzz,green]");
    ggbApplet0.evalCommand("SetColor[zzzz,green]");
    ggbApplet0.evalCommand("SetColor[A_1,green]");
    ggbApplet0.evalCommand("SetLineThickness[zz,7]");
    ggbApplet0.evalCommand("SetLineThickness[zzz,7]");
    ggbApplet0.evalCommand("SetLineThickness[zzzz,7]");
    ggbApplet0.evalCommand("SetPointSize[A_1,7]");
    ggbApplet0.evalCommand("ShowLabel[A_1,false]");
    ggbApplet0.evalCommand("distanceAA_1=Distance[A, A_1]");
    ggbApplet0.evalCommand('TexteAA_1=Name[A]+Name[A_1]+"="+distanceAA_1+"cm"');
    ggbApplet0.evalCommand("SetColor[TexteAA_1,green]");}
    </script>}
    
    

    Voili voilou

    • Cette réponse a été modifiée le il y a 1 an et 2 mois par  Julien.
  • #3476

    xavier
    Participant

    Merci beaucoup pour votre réponse.

    Ça me semble plus compliqué que prévu mais je vais essayer de comprendre.

  • #3477

    Julien
    Participant

    Le points importants sont les suivants :

    init=1 pour afficher l’applet d’initialisation

    feedbackscript=Correction permet d’appeler une fonction javascript Correction

    Si vous souhaitez que la correction apparaissent tout le temps on peut simplifier :

    \feedback{1=1}{<script type="text/javascript">
    function Correction(){ggbApplet0.evalCommand("commande de ggb");
    </script>}

    Une partie des commandes Géogébra sont dans la doc de la slib + un lien vers la totalité des commandes de ggb.

    Voili voilou

Vous devez être connecté pour répondre à ce sujet.