Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › Test conditionnel
- Ce sujet contient 3 réponses, 3 participants et a été mis à jour pour la dernière fois par
bernadette, le il y a 1 année et 10 mois.
-
AuteurMessages
-
-
15 mai 2021 à 18:36 #6403
Noor Dover
Participant::Bonjour,
pour l’exercice suivant, j’essaie de comprendre pourquoi j’obtiens le feedback quand je donne une mauvaise réponse au [1] mais que je ne l’obtiens pas quand je mets un nombre proche de la bonne réponse au [2].
L’opérateur <> a t-il un fonctionnement particulier ?
Merci.\title{Population d'une ville} \autor{Noor,DOVER} \format{html} \computeanswer{no} \integer{annee0=randint(1970..2010)} \integer{nbrAnnees=randint(5..9)} \integer{population0=randint(10000..100000)} \real{taux=randint(21..39)/10} \real{CM=1+\taux/100} \text{TR1=<tr><th>Année</th><td>\annee0</td>} \text{TR2=<tr><th>Population</th><td>\population0</td>} \text{listeAnnees=\annee0} \text{listePopulations=\population0} \for{ i = 1 to \nbrAnnees }{ \integer{annee=\annee0+\i} \integer{population=\population0*\CM^\i} \text{ listeAnnees=\listeAnnees,\annee} \text{ listePopulations=\listePopulations,\population} \text{ TR1= \TR1<td>\annee</td> } \text{ TR2= \TR2<td>\population</td> } } \integer{derniereAnnee = \listeAnnees[\nbrAnnees+1]} \integer{dernierePopulation = \listePopulations[\nbrAnnees+1]} \integer{anneeSuivante=\derniereAnnee+1} \integer{populationSuivante=\dernierePopulation*\CM} \integer{dureeX=randint(7..13)} \integer{anneeX=\derniereAnnee+\dureeX} \integer{populationX=\dernierePopulation*\CM^\dureeX} \text{TR1=\TR1<td>\anneeSuivante</td><td>\anneeX</td></tr>} \statement{ Le tableau ci-dessous donne l'évolution de la population d'une ville. <table class="wimscenter wimsborder"> \TR1 \TR2<td>\embed{r1, 4}</td><td>\embed{r2, 4}</td></tr> </table> Compléter le tableau. } \answer{Population en \anneeSuivante : }{\populationSuivante}{type=numexp}{weight=5} \answer{Population en \anneeX : }{\populationX}{type=numexp}{weight=5} \feedback{1=1}{ Feedback systématique<br /> } \feedback{(\reply1<\populationSuivante) or (\reply1>\populationSuivante)}{ Feedback quand la 1ère réponse est fausse<br /> } \feedback{ \reply2 <> \populationX }{ Feedback quand la 2ème réponse est fausse<br /> }
-
15 mai 2021 à 19:41 #6404
Noor Dover
Participant::Je précise ma question !
Pourquoi le test suivant ne fonctionne pas pour tester la différence des deux variables (quand elles contiennent deux valeurs entières proches l’une de l’autre)
\feedback{ \reply2 <> \populationX }
alors que cela fonctionne (ou semble fonctionner d’après mes tests) si je remplace par cela :
\feedback{(\reply2<\populationX) or (\reply2>\populationX)}
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
Noor Dover.
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
-
15 mai 2021 à 19:49 #6406
byache
Participant::Il y a aussi
!=
qui je crois est synonyme de<>
.
Est-ce que vous l’avez essayé ?
Quand on a une réponse de type real, il faut éviter de tester l’égalité et préférer des choses du genreabs(\reply1 - \bonne_reponse) < 10^(-3)
, mais apparemment là ce n’est pas le problème…-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
bernadette.
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
-
15 mai 2021 à 21:57 #6407
bernadette
Maître des clés::Tu fais analyser la réponse avec un numexp, donc si je me souviens bien, on teste ici que les entiers sont égaux.
Par contre, avec feedback, un test numérique est fait et comme tous les nombres
sont grands, il est fort possible qu’à la précision relative implicite, le test soit correct (je ne sais plus comment sont gérés les < et les > dans ce cas !)Pour être sûr d’avoir le même résultat que l’analyse par le type de réponse, le mieux est d’utiliser la variable sc_reply1, … qui vaut 1 ou 0 selon que la réponse est considérée comme bonne ou pas (avec des 0.5 dans le cas de mauvaise précision, regarder la doc technique dans les cas particuliers).
Sinon, la suggestion de Paul est bien aussi si tu veux décider de la précision avec laquelle tu veux avoir le feedback (mais cela pourra être différent de l’analyse par le type de réponse). Mais si je comprends bien l’exo, la réponse demandée est un entier ??
Bernadette
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
bernadette.
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
bernadette.
-
Cette réponse a été modifiée le il y a 1 année et 10 mois par
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.