Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › type de réponse
- Ce sujet contient 12 réponses, 6 participants et a été mis à jour pour la dernière fois par bernadette, le il y a 2 années et 11 mois.
-
AuteurMessages
-
-
29 décembre 2021 à 12:27 #6871Lionel VerbecqParticipant::
Bonjour,
J’essaie de créer un exercice qui donne une expression littérale et on demande à l’élève à entrer la formule tableur qui lui correspond.
Genre : A =2x²+3x-4
réponse =2*A2^2+2*A2-4
Mon souci est le suivant : le signe = doit être dans la réponse et accepter 2 réponses : A2^2 et A2*A2.
si answer est de type case ou nocase la réponse est considérée comme bonne avec ou sans entrer le signe = or une formule tableur commence par =…
si je mets le type raw la réponse est fausse si j’oublie d’entrer = mais je n’arrive pas à différencier mes deux répones. A2^2 ou A2*A2
Pouvez-vous m’aider ( plus bas, mon source ) ? Merci.
Lionel Verbecq
\title{ Quelle est la formule (3) ? } \text{sign1=randitem(+, -)} \text{sign2=randitem(+, -)} \text{a=wims (values v for v=2 to 9)} \text{a=shuffle(\a)} \text{A=randitem(A,B,C,D,E,F,G)} \text{expres=\a[1]x^2\sign1\a[2]x\sign2\a[3]} \text{rep1=wims(replace internal x by *A2 in \expres)} \text{rep2=wims(replace internal A2^2 by A2*A2 in \rep1)} \text{good1=asis(=)\rep1} \text{good2=asis(=)\rep2} \text{quest=Quelle formule faut-il rentrer en B2 pour ensuite l'étirer vers le bas ?} \statement{ On considère l'expression numérique suivante \(\A=\) \(\expres\) <p>On souhaite utiliser un tableur afin de calculer le résultat de cette expression pour des valeurs numériques placées dans la 1ere colonne. <div class="wimscenter"> <img src="\imagedir/tab1bis.jpg" alt="" style="width:200px;height:200px;" /></p></div> <br>\quest</br> <div class="wimscenter"> \embed{r1,150,40}</div> } \answer{ La formule à entrer est }{\good1|\good2}{type=case} \solution{ La bonne réponse est \good1 ou \good2}
- Ce sujet a été modifié il y a 2 années et 11 mois par Olivier. Raison : formattage du code
-
29 décembre 2021 à 15:04 #6873byacheParticipant::
Bonjour,
Je me souviens avoir eu ce problème, peut-être en faisant ces exercices :
https://wims.univ-mrs.fr/wims/wims.cgi?lang=fr&cmd=new&module=H2%2Falgebra%2Ftableur.fr&exo=formu2&qnum=1&scoredelay=&seedrepeat=0&qcmlevel=1&special_parm2=&special_parm4=
Du coup, j’avais mis des étiquettes à déplacer…Il faudrait voir sinon, du côté du type « raw ». Ce type de réponse ne fait rien et c’est à toi de prévoir tout ce qui doit être compté comme bonne réponse.
Enfin, il y a toujours la possibilité de modifier un des deux types de réponses que tu évoques, pour qu’il corresponde à ce que tu souhaites.
-
29 décembre 2021 à 15:45 #6874Lionel VerbecqParticipant::
Bonjour,
Merci de ta réponse,
Justement, je m’inspire des exercices de ton module sur le tableur et j’aimerais vraiment que l’élève tape la formule….donc le type raw semble plus adapté.
Mais une fois que l’élève a entré A2*A2 dans reply1, comment je fais pour le changer en A2^2 AVANT que wims analyse la réponse ?
Bon je vais approfondir du côté de raw mais la doc oef ne m’aide pas bcp.
Lionel Verbecq
-
29 décembre 2021 à 16:04 #6875Marie-joëlle RamageParticipant::
Bonjour,
J’ai programmé des exercices de ce type et j’ai aussi utilisé le type raw.
Vous pouvez contourner le problème en vérifiant la formule donnée après coup.
Avant le answer, initialisez les bonnes réponses.\text{good1=....} \text{good2=...} \answer{\rep1}{type=raw}
\rep1 étant non défini avant le answer.
Puis après le answer
\condition{formule correcte}[\rep1 issametext \good1 or \rep1 issametext \good2}
Je pense que cela devrait fonctionner.
Bonnes fêtes de fin d’année !
MJ Ramage- Cette réponse a été modifiée le il y a 2 années et 11 mois par Olivier. Raison: formattage code
Marie-joelle Ramage
Université Paris-Saclay -
29 décembre 2021 à 16:15 #6876Lionel VerbecqParticipant::
Bonjour,
Merci Marie-Joelle, votre réponse était claire et a parfaitement fonctionné.
Grâce à la réponse de M. Byache, j’étais en train de travailler sur le type raw avec la doc oef et finalement avec vos explications sur les « conditions » cela marche très bien.
Tout était finalement dans la doc !
Bonne fêtes de fin d’année également.
Lionel Verbecq.
-
29 décembre 2021 à 18:13 #6880
-
30 décembre 2021 à 10:53 #6883Lionel VerbecqParticipant
-
3 janvier 2022 à 17:56 #6892Gilles MarbeufModérateur::
Bonjour,
comme le dit Paul, le type « raw » ne fait rien et il faut donc prévoir toutes les bonnes réponses qui seront analysées sous conditions comme l’a proposé Marie-Joëlle. Ainsi, si l’élève répond =-4+2*A2+2*A2^2 quand l’expression est 2x²+3x-4, il faut que le serveur accepte sa réponse. La liste de toutes les bonnes réponses est donc assez longue.
Plutôt que de dresser la liste de toutes les bonnes réponses, on peut vérifier d’abord que la formule commence bien par un = puis simplifier la différence entre le polynôme donné et le polynôme constitué par la réponse de l’élève en retirant avant le = et en remplaçant les A2 par des x. L’utilisation de Pari/GP pour la simplification et comparaison de polynômes est alors très utile.En gardant le code proposé plus ou moins quelques lignes :
## ajout des * pour utilisation dans Pari/GP
\text{expres=\a[1]*x^2\sign1\a[2]*x\sign2\a[3]}
## à cause de la ligne précédente
\text{rep1=wims(replace internal x by A2 in \expres)}
## déclaration de variables qui seront utilisées après le statement pour les conditions
\text{first=} \text{formule=} \text{test=} \statement{......}
## après le statement
\answer{}{\rep}{type=raw} \text{first=wims(char 1 of \rep)} \text{formule=wims(char 2 to -1 of \rep)} \text{formule=wims(replace internal A2 by x in \formule)}
## test est un booléen qui vaut 1 si les 2 expressions sont identiques, 0 sinon
\text{test=pari(\formule-(\expres)==0)} \condition{La formule est correcte }{(\first issametext =) and (\test=1)} \solution{ Une bonne réponse est \good1 ou \good2}
Remarque : les variables définies après le statement permettent même de proposer des feedbacks à l’élève (oubli du = ou erreur de syntaxe s’il manque un * entre un coeff et A2…).
- Cette réponse a été modifiée le il y a 2 années et 11 mois par Gilles Marbeuf.
- Cette réponse a été modifiée le il y a 2 années et 11 mois par Olivier. Raison: formattage du code
Gilles
-
3 janvier 2022 à 18:40 #6894Lionel VerbecqParticipant
-
4 janvier 2022 à 11:25 #6896lemaireParticipant::
Bonjour,
Est-ce qu’à part le signe « = », les formules sur lesquelles vous souhaitez poser des questions peuvent être analysées avec le type de réponse formal ?
Si la réponse est « oui », plutot que de faire une analyse de la réponse à la main avec des conditions, il est peut-être possible d’améliorer le type « formal » en lui ajoutant une option pour analyser une réponse du type :
= expression algébrique
Dans ce cas, quel score donneriez-vous à un élève qui entre la bonne expression algébrique mais oublie de mettre le signe « = » devant ? qui met le signe « = » mais donne une mauvaise formule ?
-
4 janvier 2022 à 11:47 #6897bernadetteMaître des clés
-
9 janvier 2022 à 22:34 #6921byacheParticipant::
Bonjour,
J’ai ajouté les exercices de Lionel dans mon module H2~algebra~tableur.fr (publié à l’instant) .
Nous avons utilisé le code proposé par Gilles et tout semble bien marcher. Comme c’est un exercice d’initiation sur le tableur, si on oublie le signe = on a seulement 5/10… On peut changer cela très facilement lors d’une mise à jour ultérieure si quelqu’un le demande.
Je ne pense pas qu’il faille ajouter une option dans la distribution car c’est quand même assez spécifique au tableur donc cela ne concerne pas beaucoup d’exercices.
Merci à tous pour les aides proposées ! -
10 janvier 2022 à 12:20 #6929bernadetteMaître des clés::
Merci de republier immédiatement en remplaçant les fichiers du type form-a-taper.oef et prog-calc.oef par
form_a_taper.oef et prog_calc.oef
Comme il est indiqué, il est totalement déconseillé de mettre des -.
Le nom du fichier doit être de la forme name_file. Le nom name_file ne doit contenir que des caractères alphanumériques sans accents ni espaces (ne pas mettre de signe -).
On n’arrive pas à l’interdire vraiment à cause de la rétrocompatibilité. Mais on va finir par le faire, ce qui empêchera alors de les modifier, si les développeurs ne tiennent pas compte
Bernadette
- Cette réponse a été modifiée le il y a 2 années et 11 mois par bernadette.
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.