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 7 années et 7 mois.
-
AuteurMessages
-
-
1 septembre 2015 à 19:16 #3060
Richard Taillet
Participant::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 7 années et 7 mois par
Richard Taillet. Raison : typo orthographique
-
Ce sujet a été modifié il y a 7 années et 7 mois par
-
1 septembre 2015 à 20:48 #3062
bernadette
Maî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 7 années et 7 mois par
bernadette.
-
Cette réponse a été modifiée le il y a 7 années et 7 mois par
-
2 septembre 2015 à 08:48 #3067
Richard Taillet
Participant::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.