code si et alors

Added by Frédéric Bréal over 10 years ago

Bonjour,

Y a-t-il un code pour la fonction si N et PN sont cochés alors 1 ou si O et PO sont cochés alors 1 sinon 0 ?

Sur le forum j'ai trouvé la réponse pour si alors mais sur internet les exemples de langage perl sont tous écrits comme des scripts.

Mon souci est pour ce type de question. La réponse exacte est dioxygène et 20% puis diazote et 80%.
Comme je ne peux pas savoir l'ordre de la réponse de l'élève, je suis obligé de considérer les 4 bonnes réponses mais je veux être sûr qu'il attribue les pourcentages au gaz correct.
J'ai attribué une variable aux bonnes réponses pour faire le test (si j'ai bien compris le mode d'emploi).

Merci

\element{texte}{
\begin{questionmult}{03}
Coche la bonne case correspondant au mot manquant N°3 et N°4
\begin{multicols}{3}
\begin{reponses}
\mauvaise{gaz}
\bonne{diazote}\bareme{set.N}
\mauvaise{vapeur d’eau}
\bonne{dioxygène}\bareme{set.O}
\mauvaise{dioxyde de carbone}
\bonne{20\%}\bareme{set.PO}
\mauvaise{40\%}
\mauvaise{60\%}
\bonne{80\%}\bareme{set.PN}
\end{reponses}
\end{multicols}
\end{questionmult}
\begin{questionmult}{05}
Coche la bonne case correspondant au mot manquant N°5 et N°6
\begin{multicols}{3}
\begin{reponses}
\mauvaise{gaz}
\bonne{diazote}\bareme{set.N}
\mauvaise{vapeur d’eau}
\bonne{dioxygène}\bareme{set.O}
\mauvaise{dioxyde de carbone}
\bonne{20\%}\bareme{set.PO}
\mauvaise{40\%}
\mauvaise{60\%}
\bonne{80\%}\bareme{set.PN}
\end{reponses}
\end{multicols}
\end{questionmult}
}

Replies (12)

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

  • la syntaxe est set.N=1, pour donner la valeur 1 à la variable N si la case est cochée
  • on peut utiliser le barème suivant pour la question : \bareme{formula=((N && PN) xor (O && PO))}
  • attention, il faut que la combinaison de bonne/mauvaise utilisée mène à une bonne réponse, ce qui n'est las le cas ici (il faut choisir pour chaque question N+PN ou O+PO, mais pas les deux à la fois)
  • comme les scores des questions sont indépendants, on ne pourra pas vérifier que l'élève ne donne pas la même combinaison aux deux questions...

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

Bonjour,

comme les scores des questions sont indépendants, on ne pourra pas vérifier que l'élève ne donne pas la même combinaison aux deux questions...
Tout à fait, j'y ai pensé. Il faut que je modifie mon texte ou que je me crée une case personnelle à cocher type réponse identique.

attention, il faut que la combinaison de bonne/mauvaise utilisée mène à une bonne réponse, ce qui n'est las le cas ici (il faut choisir pour chaque question N+PN ou O+PO, mais pas les deux à la fois)
Normalement mes élèves devraient comprendre qu'avec ma question Coche la bonne case correspondant au mot manquant N°3 et N°4, il y a deux cases à cocher.

Merci pour la formule.

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

Normalement mes élèves devraient comprendre

Oui mais pas AMC. Pour calculer le score maximal pouvant être obtenu pour une question, AMC coche les cases déclarées \bonne. Vous pouvez cependant contourner ce calcul en indiquant à la main le score maximal de la question en ajoutant MAX=1 dans le barème de la question.

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

AMC coche les cases déclarées \bonne Je comprends mieux votre remarque précédente.

MAX=1

On arrive à la limite de ma compréhension du barème. Je n'ai toujours pas compris comment fonctionnait la commande MAX.
Dans le mode d'emploi, vous écrivez : A renseigner uniquement si elle ne correspond pas à la note obtenue en mettant toutes les bonnes réponses. J'ai toujours compris cette phrase comme indiquant : si l'élève a coché toutes les bonnes réponses, le score sera MAX avec MAX étant supérieur à la somme des points.
En fait, MAX agit comme une valeur "plafond" ?

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

En fait, MAX agit comme une valeur "plafond" ?

Non.
Dans un score à une question, il y a deux composantes : le score de l'étudiant, et le score obtenu par une réponse parfaite. Par exemple, quand vous dites que l'étudiant a obtenu 3/4 à la question 1, vous dites que son score est 3 et que le score de la réponse parfaite est 4. Le score de la réponse parfaite est généralement calculé en cochant les cases indiquées par \bonne. Mais, dans certains cas, on peut avoir envie de changer cela. Votre situation donne un cas où on eut vouloir mettre le score de la réponse parfaite à 1, même si le calcul basé sur \bonne donne 0. On obtient cela grâce à MAX=1. Mais aucun plafond n'est appliqué du fait de MAX. Si vous indiquez MAX=3 pour une question pouvant rapporter 4 points, un étudiant pourra avoir un score de 4/3 à cette question (et, si il donne des réponses parfaites aux autres questions, il pourra éventuellement obtenir une note globale supérieure à 20/20).

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

Si vous indiquez MAX=3 pour une question pouvant rapporter 4 points, un étudiant pourra avoir un score de 4/3 à cette question (et, si il donne des réponses parfaites aux autres questions, il pourra éventuellement obtenir une note globale supérieure à 20/20).
J'avais fait des tests dans ce sens là aussi d'où mon incompréhension.

même si le calcul basé sur \bonne donne 0
Je comprends mieux votre réponse (sur le forum anglais) pour des points bonus sur une question.

Merci.

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

Bonjour,

Je suis désolé de vous importuner de nouveau mais la formule ne fonctionne pas.
Hier avec la version stable, j'avais toujours 0/1 donc aujourd'hui j'ai mis la version test (1.2.1496 (svn:1496)) et j'ai 19/1 aux questions 2 et 3.

Je vous mets en pièce jointe, le sujet, une copie test corrigée et les images jpeg vierges si vous avez encore le temps ou le courage de me consacrer quelques instants.

Merci

0001-Avogadro_Amedeo.pdf - Fichier test corrigé (287.4 kB)

4_CHIMIE_TH_01.tex - Fichier latex (9.2 kB)

images-vide-0.jpeg - Fichier image vide p1 (915.4 kB)

images-vide-1.jpeg - Fichier image vide p2 (365.5 kB)

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

Lorsque je remplace de le code xor par or, le problème des points disparaît.
Par contre, le code \bareme{formula=((N && PN) or (O && PO))} fonctionne parfaitement si les cases cochées correspondent aux valeurs trouvées en premier par la formule.
Exemple : question 3: j'ai coché 20% et dioxygène -> 0/1 mais si j'écris \bareme{formula=((O && PO) or (N && PN))}, j'obtiens 1.

Je vais peut être me rabattre vers la commande mz=2 pour chacune des questions.

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

En effet, les variables utilisées dans formula doivent toujours avoir une valeur explicite, ce qui n'était pas le cas. Il faut donc leur donner une valeur par défaut. D'autre part, j'ai changé N en CN car N est déjà utilisé par AMC pour donner le nombre de réponses à la question.

\begin{questionmult}{03}\bareme{default.PN=0,default.CN=0,default.PO=0,default.CO=0,formula=(((CN && PN) xor (CO && PO)) ? 1 : 0),MAX=1}
Coche les bonnes cases correspondants aux mots manquants N°3 et N°4
\begin{multicols}{5}
\begin{reponses}
\mauvaise{vie}
\mauvaise{manomètre}
\mauvaise{gaz}
\mauvaise{ohmmètre}
\bonne{diazote}\bareme{set.CN=1}
\mauvaise{liquides}
\mauvaise{mélange}
\mauvaise{bar}
\mauvaise{pascal}
\mauvaise{vapeur d’eau}
\mauvaise{quatre}
\mauvaise{cinq}
\mauvaise{corps pur}
\bonne{dioxygène}\bareme{set.CO=1}
\mauvaise{dioxyde de carbone}
\bonne{20\%}\bareme{set.PO=1}
\mauvaise{40\%}
\mauvaise{60\%}
\bonne{80\%}\bareme{set.PN=1}
\mauvaise{hPa}
\mauvaise{Pa}
\end{reponses}
\end{multicols}
\end{questionmult}

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

J'ai mis à jour la solution précédente pour que formula renvoie 0 ou 1. On peu également penser à une deuxième solution :

\begin{questionmult}{05}\bareme{default.COMP=10,default.PROP=11,formula=(COMP==PROP ? 1 : 0),MAX=1}
Coche les bonnes cases correspondants aux mots manquants N°5 et N°6
\begin{multicols}{5}
\begin{reponses}
\mauvaise{vie}
\mauvaise{manomètre}
\mauvaise{gaz}
\mauvaise{ohmmètre}
\bonne{diazote}\bareme{set.COMP=1}
\mauvaise{liquides}
\mauvaise{mélange}
\mauvaise{bar}
\mauvaise{pascal}
\mauvaise{vapeur d’eau}
\mauvaise{quatre}
\mauvaise{cinq}
\mauvaise{corps pur}
\bonne{dioxygène}\bareme{set.COMP=2}
\mauvaise{dioxyde de carbone}
\bonne{20\%}\bareme{set.PROP=2}
\mauvaise{40\%}
\mauvaise{60\%}
\bonne{80\%}\bareme{set.PROP=1}
\mauvaise{hPa}
\mauvaise{Pa}
\end{reponses}
\end{multicols}
\end{questionmult}

RE: code si et alors - Added by Frédéric Bréal over 10 years ago

Bonjour,

Bravo et merci pour les solutions et l'investissement.

J'ai mis à jour la solution précédente pour que formula renvoie 0 ou 1
C'est une mise à jour de la version test de AMC ?

RE: code si et alors - Added by Alexis Bienvenüe over 10 years ago

C'est une mise à jour de la version test de AMC ?

Non, j'ai juste modifié le message précédent (RE: code si et alors) un peu après avoir envoyé une première version.

(1-12/12)