pb type de réponse

Ce sujet a 2 réponses, 2 participants et a été mis à jour par  byache, il y a 2 mois et 2 semaines.

  • Auteur
    Messages
  • #4455

    byache
    Participant

    Bonjour,
    J’essaye de faire un type de réponse « autoeval » dans un module modtool oef et je ne comprend pas pourquoi ça ne marche pas…
    Si quelqu’un a une idée… Ca fait longtemps que je n’ai plus bricolé les types de réponse…

    L’idée est que c’est l’élève lui-même qui se met une note (valeur entière entre 0 et 3) (C’est pour un truc très particulier, évidemment… 🙂
    Voilà mes fichiers :

    autoeval.input :

    !set anstype=yes
    !set anstyle=noanswer
    
    !if $wims_read_parm=def
     !exit
    !endif
    
    !if $wims_read_parm!=noprompt
     <tr><td align=right>$(replyname$i)&nbsp; (Entrez un nombre entier entre 0 et 3) : </td>
    !endif
    
    !set inputoption=!replace internal $	$ by $\
    $ in $inputsize
    !set inputsize=!line 1 of $inputoption
    !set inputoption=!line 2 to -1 of $inputoption
    !set option=!line 1 of $inputoption
    !if $option issametext default
      !set option=class="wims_oef_input"
      !set inputoption=!line 2 to -1 of $inputoption
    !endif
    !set inputoption=$option $inputoption
    
    !bound inputsize between integer 1 and 100 default 40
    <td><input size=$inputsize name=reply$i value="$(reply$i)" $inputoption></td></tr>
    !reset inputsize inputoption option

    Apparemment ce fichier fonctionne car quand j’envoie la réponse « 2 », il y a bien reply1=2 dans l’url.

    fichier autoeval :

    !if $(reply$i) notitemof 0,1,2,3
        test=NaN 
        !exit
    !endif
    
    !if $(reply$i)>0
    	partialgood$i=yes
    	diareply$i=good
    !else	
    	partialgood$i=no
    	diareply$i=bad	
    !endif
    
    freegot=$($freegot+$(reply$i)/3)

    Là, il doit y avoir un problème car quoi que je mette, la note est toujours 10. (Même si je n’entre pas une valeur autorisée.)
    J’ai essayé de changer le anstype déclaré dans le fichier autoeval.input, sans succès.
    Mais peut-être que ce comportement provient uniquement de ce que je suis dans modtool sans être loggué dans une classe ?

    Merci pour toute suggestion !

    Cordialement,
    Paul

  • #4458

    Julien
    Participant

    Bonjour,

    Pour le fichier autoeval.input tu peux faire un lien symbolique vers le fichier case ou copier coller le fichier case.input. Après dans ton exo oef, tu écris cela :

    \title{frqer}
    \css{<style type="text/css">
    #test{
    float:right;
    text-align: right;
    text}
    </style>}
    
    \statement{
    <span id="test">
    <label for="reply1">Niveau :</label>
    \embed{reply1,3
    type="number" min="0" max="3" step="1"}
    </span>
    }
    \answer{}{0,1,2,3}{type=autoeval}

    Pour le fichier autoeval, tu peux écrire :

    m_reply$i=$(reply$i)
    !if $(reply$i) notitemof $(replygood$i)
          Test= bad $i
          test=NaN 
          !exit
    !else
    diag=yes
    !endif
    
    !if $diag=yes
     diareply$i=good
     freegot=$[$freegot+$(reply$i)/3]
    !endif

    Je considère que la réponse est bonne dès que l’élève a réalisé son autoévaluation même si le résultat n’est pas bon. Je trouve cela plus motivant.

    ++

    • Cette réponse a été modifiée le il y a 2 mois et 2 semaines par  Julien.
  • #4460

    byache
    Participant

    Merci Julien,
    Effectivement, j’ai repris le contenu de case.input dans mon fichier autoeval.input
    J’ai mis type=noanswer pour éviter qu’il y ait écrit « la bonne réponse était 0,1,2,3 » (avec noanswer il n’y a pas d’affichage de l’analyse de la réponse)

    Mais ce qui fait que ça ne marchait pas est qu’il faut obligatoirement indiquer une bonne réponse dans le source de l’exercice oef : si je laisse ce champ ligne, l’exercice ne fonctionne pas mais dès que je mets un caractère (n’importe lequel), ça fonctionne. C’est logique vu le fonctionnement habituel de wims… J’ai essayé diverses ruses (essayé de mettre une ligne replygood$i=nimporte quoi au début de mon fichier « autoeval », j’ai mis un replygood$i envoyé dans un input type=hidden dans le fichier autoeval.input…), mais impossible de palier à cela. Mais ce n’est pas très grave.

    Il y avait aussi bien sûr mon erreur de débutant : les parenthèses au lieu des crochets devant le « $ » de la ligne avec le freegot…

    Merci pour le truc dans le embed, pour forcer à entrer des nombres entiers entre 0 et 3 !

    Bien cordialement,
    Paul

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