Accueil › Forums › Programmation WIMS › Programmation dans le langage wims › exercice à étapes avec nextstep
Étiqueté : nextstep
- Ce sujet contient 2 réponses, 2 participants et a été mis à jour pour la dernière fois par Richard Taillet, le il y a 8 années et 7 mois.
-
AuteurMessages
-
-
1 septembre 2015 à 19:16 #3060Richard TailletParticipant::
Bonjour,
Pour tenter de comprendre le mécanisme \nextstep dans OEF, j’essaie sans succès de faire un exemple minimal dans lequel :
– l’utilisateur doit taper le texte « toto », on lui redemande jusqu’à ce qu’il y arrive
– puis l’utilisateur doit taper le texte « tata », jusqu’à ce qu’il y arrive.
J’ai testé le programme suivant, qui ne marche pas pour plusieurs raisons. D’une part, si on rentre les bons textes du premier coup, c’est compté faux quand même au moment de l’analyse finale, et d’autre part si on se trompe une fois, le programme ne s’arrête jamais.Quelqu’un peut-il m’expliquer ce qui cloche ? Merci ! 🙂
NB : je ne veux pas spécialement un autre code différent qui fait ce que je veux, mais je veux comprendre pourquoi le code ci-dessous ne marche pas !
\text{etap=r1} \nextstep{\etap} \statement{Entrer le texte demandé : \if{\step == 1}{Tapez "toto" : \embed{r1}} \if{\step == 2}{Vous avez tapé \reponse1. Tapez "tata" : \embed{r2}} } \answer{}{\reponse1}{type=nocase} \answer{}{\reponse2}{type=nocase} \condition{Vous avez tapé \reponse1}{\reponse1 == toto} \condition{Vous avez tapé \reponse2}{\reponse2 == tata} \if{\step == 2 and \reponse1 == toto} {\text{etap = r2}} {\text{etap = r1}} \if{\step == 3 and \reponse2 == tata} {\text{etap =}} {\text{etap = r2}}
- Ce sujet a été modifié il y a 8 années et 7 mois par Richard Taillet. Raison : typo orthographique
-
1 septembre 2015 à 20:48 #3062bernadetteMaître des clés::
\text{etap=r1} \nextstep{\etap} \statement{Entrer le texte demandé : \if{\step == 1}{Tapez "toto" : \embed{r1}} \if{\step == 2}{Vous avez tapé \reponse1. Tapez "tata" : \embed{r2}} } %%% Il n'y a donc rien pour \step >2 ? si on recommence 3 fois on en sera à \step=4 Ici on affiche automatiquement à la deuxième étape r2 \answer{}{\reponse1}{type=nocase} \answer{}{\reponse2}{type=nocase} \condition{Vous avez tapé \reponse1}{\reponse1 == toto} \condition{Vous avez tapé \reponse2}{\reponse2 == tata} %%%% mettre issametext au lieu de == . \if{\step == 2 and \reponse1 == toto} {\text{etap = r2}} {\text{etap = r1}} \if{\step == 3 and \reponse2 == tata} {\text{etap =}} {\text{etap = r2}} ### si step=2 la première fois, la condition \step == 3 and \reponse2 == tata est fausse, donc etap =r2.
- Cette réponse a été modifiée le il y a 8 années et 7 mois par bernadette.
-
2 septembre 2015 à 08:48 #3067Richard TailletParticipant::
Merci pour votre réponse, j’avais en effet mal compris la variable \step. Du coup, juste au cas où ça intéresse d’autres personnes, voici le code qui fait ce que je voulais :
\text{etap=r1} \nextstep{\etap} \integer{ok1=0} \integer{ok2=0} \statement{Entrer le texte demandé : \if{\ok1 == 0}{Tapez "toto" : \embed{r1}} \if{\ok1 == 1 and \ok2 == 0 }{Vous avez tapé \reponse1. Tapez "tata" : \embed{r2}} } \answer{}{\reponse1}{type=nocase} \answer{}{\reponse2}{type=nocase} \condition{Vous avez tapé \reponse1}{\reponse1 issametext toto} \condition{Vous avez tapé \reponse2}{\reponse2 issametext tata} \if{\ok1 == 1 and \ok2 == 0 and \reponse2 issametext tata} {\text{etap =}} {\text{etap = r2}} \if{\ok1 == 0} { \if{\reponse1 issametext toto} { \text{etap = r2} \integer{ok1=1} } {\text{etap = r1}} }
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.