Analyse d’une réponse avec des fractions et des négatifs

Accueil Forums Programmation WIMS Programmation d’exercices OEF Analyse d’une réponse avec des fractions et des négatifs

Vous lisez 4 fils de discussion
  • Auteur
    Messages
    • #8270
      Cyril Descamps
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      Pour commencer, si un sujet traite déjà du sujet, mes excuses ! J’avais trouvé ce post https://wimsedu.info/forums/topic/analyse-reponse-dune-fraction/ mais je n’y ai pas trouvé ce que je cherchais.

      Je souhaite réaliser un exercice sur l’addition et la soustraction de fraction, le tout avec des relatifs.

      Je ne souhaite pas imposer aux élèves une façon d’exprimer le résultat (dénominateur positif, négatif, simplifié ou non).

      Sur un exemple sans aléatoires pour essayer d’illustrer : 2/(-3) + 1/(-3)

      Je souhaite autoriser toutes les réponses suivantes : 3/(-3) ; -3/3 ; -1/1 et 1/(-1)

      Pour ce faire, j’utilise 2 answer (stockant le numérateur ou le dénominateur) :

      \answer{}{3 | -3 | 1 | -1}{type = text}

      \answer{}{-3 | 3 | -1 | 1}{type = text}

      Cependant, écrit comme cela les réponses 3/3 ou 1/1 sont également reconnues comme justes.

      J’utilise donc un condition pour vérifier que les 2 quotients sont bien égaux :

      \real{test1 = \reply1 / \reply2}

      \real{test2 = 3 / -3}

      condition{Bonne réponse}{\test1 == test2}

      Problème, reply1 et reply2 ne semblent pas prendre en compte les signes données par les élèves … Donc il renvoi toujours que les 2 résultats sont différents, même quand l’élève a donné les bonnes réponses.

      Y a-t-il une raison à cela ? Il y a peut-être une autre façon de faire à laquelle je n’ai pas pensé ?

      J’espère avoir été clair mais si cela n’est pas le cas, je laisse un mini code qui devrait montrer le problème.

      Merci d’avance !

      Cordialement, Cyril D.

      
      
      \statement{
      
      \( \frac{2}{-3} + \frac{1}{-3} = \) \special{mathmlinput [\frac{reply1}{reply2}], 3,answer
      
      reply 1
      
      reply 2
      
      }
      
      }
      
      \answer{}{3 | -3 | 1 | -1}{type = text}
      
      \answer{}{-3 | 3 | -1 | 1}{type = text}
      
      \real{tmp = \reply1/\reply2}
      
      \real{tmp2 = 3/(-3)}
      
      \condition{Bonne réponse}{\tmp == \tmp2}
      \condition{Mauvaise réponse}{\tmp != \tmp2}
      \feedback{\tmp != \tmp2}{ \reply1/\reply2 = \tmp et 3/(-3) = \tmp2}
      \feedback{\tmp == \tmp2}{C'est OK}
      • Ce sujet a été modifié le il y a 10 mois et 3 semaines par Julien.
      • Ce sujet a été modifié le il y a 10 mois et 3 semaines par Julien.
    • #8273
      Julien
      Modérateur
      Up
      0
      Down
      ::

      J’ai modifié le type de réponse car les réponses « texte » mangent les moins. Je suppose que c’est l’option reaccent qui est en cause. Par contre l’analyse de ton égalité doit se faire avec une valeur absolue si tu ne veux pas avoir quelques surprises.
      Le code suivant fonctionne :

      
      \statement{
      <br>
      \( \frac{2}{-3} + \frac{1}{-3} = \) \special{mathmlinput [\frac{reply1}{reply2}], 3,answer
      reply 1,,color:blue;font-size:20px
      reply 2,,color:blue;font-size:20px
      }
      }
      
      \answer{}{3 , -3 , 1 , -1}{type = formal}
      \answer{}{-3 , 3 , -1 , 1}{type = formal}
      \real{tmp=(\reply1)/(\reply2)}
      \real{tmp2=-1}
      
      \condition{Bonne réponse}{abs(\tmp2 - \tmp)<0.00001}
      \condition{Mauvaise réponse}{\tmp2 != \tmp}
      \feedback{\tmp != \tmp2}{ \reply1/\reply2 = \tmp et 3/(-3) = \tmp2}
      \feedback{\tmp == \tmp2}{C'est OK}
      
      • Cette réponse a été modifiée le il y a 10 mois et 3 semaines par Julien.
      • Cette réponse a été modifiée le il y a 10 mois et 3 semaines par Julien.
    • #8276
      Cyril Descamps
      Participant
      Up
      0
      Down
      ::

      Merci bien !
      La doc du « formal » est absente sur le wims cotedazur, je n’avais pas du tout pensé à lui.
      En ce qui concerne le test, effectivement bonne remarque. Merci !

    • #8277
      bernadette
      Maître des clés
      Up
      0
      Down
      ::

      La doc de formal est bisn sur wims cotedazur, comme sur tous les serveurs.

      Je ne comprends pas très bien ce qui devrait être accepté comme réponse ?

      -6/6 peut être accepté ? mais pas -6/(3+3) par exemple ?

      Sinon, le type raw ne fait rien du tout contrairement au type de réponse  text.

       

    • #8278
      Cyril Descamps
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      Mes excuses pour la doc, j’avais cliqué au mauvais endroit … Elle y est effectivement.

      Pour les réponses : effectivement, je souhaite que les élèves calculs les numérateurs et dénominateurs, la réponse 6/(3+3) reste acceptée bien qu’elle ne soit pas conventionnelle (dans l’attendu et le travail réalisé avec les élèves du moins).
      Avec la solution par Julien, sauf erreur de ma part, elle est acceptée.

      Pour le calcul suivant : 3/(-4) + 1/(-2)

      -5/4, 5/(-4) et tout autre fraction égale à celle-ci devraient être acceptées.
      En revanche, dans le answer, si l’élève propose une fraction qui n’était pas « prévue », wims affichera faux. Par exemple, -10/8.
      D’où l’utilisation de condition pour vérifier que la fraction donnée par l’élève est bonne. C’est un peu une rustine mais je n’ai pas trouvé (pour l’instant), comment faire autrement (avec des données générées toujours aléatoirement) ni comment ne pas afficher un « mauvaise réponse » et me contenter de l’analyse via condition.

      Les exercices crées n’étant pas utilisés comme évaluation mais étant tous avec une correction détaillée à chaque fois, ce n’est pas un problème « urgent », je n’en ai donc pas parlé dans le post.
      J’espère avoir été clair.

      Merci pour le raw ! Il me sera utile pour d’autres exercices.

      • Cette réponse a été modifiée le il y a 10 mois et 2 semaines par Cyril Descamps.
Vous lisez 4 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.