Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › Boucle avec \sc_reply
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par
Jérôme BAILLEUL, le il y a 11 mois et 1 semaine.
-
AuteurMessages
-
-
25 juin 2022 à 11:02 #7177
Jérôme BAILLEUL
Participant::Bonjour à tous,
j’ai conçu un exercice dont le nombre de réponses demandées dépend de données qui peuvent varier.
J’arrive bien à gérer le nombre de réponses avec \steps() mais je voudrais gérer un feedback avec des conditions dans lesquels je vérifie les réponses avec \sc_reply ou \reply qui dépend donc du nombre de réponses (dépendant des données).
Lorsque je crée une boucle avec le nombre de réponses pour gérer le nombre de \sc_reply à prendre en compte cela ne fonctionne pas, notamment à cause des connecteurs « or » et « and » dans la condition…
Quelqu’un pourrait-il m’aider?
-
25 juin 2022 à 11:21 #7178
-
26 juin 2022 à 16:37 #7180
Jérôme BAILLEUL
Participant::Voici ci-dessous le code de l’exercice. Voilà ce que j’ai essayé dans le feedback (j’ai aussi essayé de définir les connecteur « or » comme du text mais cela ne fonctionne pas. J’aimerais pouvoir changer la matrice de données sans changer le programme.
Bien sûr le feedback doit être amélioré…
Enfin je m’excuse par avance pour toutes les parties qui ne seraient pas conventionnelles.
Merci d’avance
\title{Préfixes et puissances de 10}
\precision{100000000}\matrix{donnees =
giga ,G ,1E9 ,Un milliard de fois plus grand ,9
méga ,M ,1E6 ,Un million de fois plus grand, 6
kilo ,k ,1E3 ,Mille fois plus grand ,3
déci ,d ,1E-1 ,Dix fois plus petit ,-1
centi ,c ,1E-2 ,Cent fois plus petit ,-2
milli ,m ,1E-3 ,Mille fois plus petit ,-3
micro ,mu ,1E-6 ,Un million de fois plus petit ,-6
nano ,n ,1E-9 ,Un milliard de fois plus petit , -9
}\integer{nbligne= rows(\donnees)}
\integer{nbtotrep = \nbligne * 2}\matrix{don=shuffle(\nbligne)}
\matrix{donnees=\donnees[\don;]}\text{tableau=}
\for{k=1 to \nbligne}{
\for{n=1 to 3}{
\integer{l= 2* \k - (2- \n) -1}
\matrix{tableau =\tableau \l, }
}
\matrix{tableau = \tableau ;}
}\real{bad_rep2=\donnees[1;3]*10}
\for{k1=2 to \nbligne}{
\real{bad_rep=\donnees[\k1;3]*10}
\text{bad_rep2=\bad_rep2,\bad_rep}
}\text{ETAPE=wims(makelist r x for x=1 to \nbtotrep)}
\steps{\ETAPE}
\statement{
<p>Compléter le tableau ci dessous par le symbole des préfixes et la puissance de 10 correspondante.
(Il est important d'essayer de remplir ce tableau avec sa mémoire) </p><p class="oef_indbad">(Pour le symbole \mu on écrira "mu" )
</p>
<p>Pensez à lire le Feedback une fois l'exercice validé.</p><span class="titre">AVERTISSEMENTS</span>- Pour entrer un nombre comportant des puissances de 10, on peut utiliser les touches *10^ mais
en informatique, on peut aussi utiliser la lettre E (ou e) comme sur la calculatrice (Attention jamais dans un devoir écrit).
Cette lettre signifie \(\times 10^{puissance})
<table BORDER= 1 CELLSPADDING=30>
<tr><th>Préfixe </th><th>Symbole </th><th> Puissance de 10 </th>\for{i=1 to \nbligne}{
<tr>
<td> \donnees[\i;1] </td>
\for{j=2 to 3}{
<td> \embed {reply \tableau[\i;\j],10 }</td>
}
</tr>
}
</table>}
\answer{}{\donnees[1;2]}{type = case}
\answer{}{\donnees[1;3]}{type = numeric}\answer{}{\donnees[2;2]}{type = case}
\answer{}{\donnees[2;3]}{type = numeric}\answer{}{\donnees[3;2]}{type = case}
\answer{}{\donnees[3;3]}{type = numeric}\answer{}{\donnees[4;2]}{type = case}
\answer{}{\donnees[4;3]}{type = numeric}\answer{}{\donnees[5;2]}{type = case}
\answer{}{\donnees[5;3]}{type = numeric}\answer{}{\donnees[6;2]}{type = case}
\answer{}{\donnees[6;3]}{type = numeric}\answer{}{\donnees[7;2]}{type = case}
\answer{}{\donnees[7;3]}{type = numeric}\answer{}{\donnees[8;2]}{type = case}
\answer{}{\donnees[8;3]}{type = numeric}\text{val_rep= \sc_reply1, \sc_reply2, \sc_reply3, \sc_reply4, \sc_reply5, \sc_reply6, \sc_reply7, \sc_reply8, \sc_reply9, \sc_reply10, \sc_reply11, \sc_reply12, \sc_reply13, \sc_reply14, \sc_reply15, \sc_reply16, \sc_reply17, \sc_reply18, \sc_reply19, \sc_reply20 }
\feedback{1=1}{
<p class="larger wimscenter bold">FEEDBACK</p>\if{
\sc_reply1 <>1
\for{i=2 to \nbtotrep}{
or
\val_rep[\i] <>1
}}{<p>Vous avez au moins une erreur !</p>}{
<p>BRAVO !</p>}
<p>Voici La meilleure des réponses :</p>
<table BORDER= 1 CELLSPADDING=30>
<tr><th class="wimscenter">Préfixe </th><th class="wimscenter">Symbole </th><th class="wimscenter"> Puissance de 10 </th><th class="wimscenter">Commentaires</th>\for{i=1 to \nbligne}{
<tr>
<td class="wimscenter"> \donnees[\i;1]</td>
<td class="wimscenter"> \(\donnees[\i;2])</td>
<td class="wimscenter"> \donnees[\i;3]</td>
<td class="wimscenter"> \donnees[\i;4]</td>
</tr>
}</table>
}
- Pour entrer un nombre comportant des puissances de 10, on peut utiliser les touches *10^ mais
-
26 juin 2022 à 19:16 #7181
Julien
Modérateur::Bonjour,
Le coeur de la solution est là :
\text{val_rep=item(1..\nbtotrep,\val_rep)} \text{val_rep=wims(replace internal , by + in \val_rep)} \rational{val_rep_num=\val_rep}
J’ai pris le temps de nettoyer un peu les tableaux :
\title{Préfixes et puissances de 10} \precision{100000000} \matrix{donnees = giga ,G ,1E9 ,Un milliard de fois plus grand ,9 méga ,M ,1E6 ,Un million de fois plus grand, 6 kilo ,k ,1E3 ,Mille fois plus grand ,3 déci ,d ,1E-1 ,Dix fois plus petit ,-1 centi ,c ,1E-2 ,Cent fois plus petit ,-2 milli ,m ,1E-3 ,Mille fois plus petit ,-3 micro ,mu ,1E-6 ,Un million de fois plus petit ,-6 nano ,n ,1E-9 ,Un milliard de fois plus petit , -9 } \integer{nbligne= rows(\donnees)} \integer{nbtotrep = \nbligne * 2} \matrix{don=shuffle(\nbligne)} \matrix{donnees=\donnees[\don;]} \text{tableau=} \for{k=1 to \nbligne}{ \for{n=1 to 3}{ \integer{l= 2* \k - (2- \n) -1} \matrix{tableau =\tableau \l, } } \matrix{tableau = \tableau ;} } \real{bad_rep2=\donnees[1;3]*10} \for{k1=2 to \nbligne}{ \real{bad_rep=\donnees[\k1;3]*10} \text{bad_rep2=\bad_rep2,\bad_rep} } \text{ETAPE=wims(makelist r x for x=1 to \nbtotrep)} \steps{\ETAPE} \text{val_rep=} \rational{val_rep_num=} \statement{<p>Compléter le tableau ci dessous par le symbole des préfixes et la puissance de 10 correspondante. (Il est important d'essayer de remplir ce tableau avec sa mémoire) </p> <p class="oef_indbad">(Pour le symbole \(\mu\) on écrira "mu" )</p> <p>Pensez à lire le Feedback une fois l'exercice validé.</p> <span class="titre">AVERTISSEMENTS</span> Pour entrer un nombre comportant des puissances de 10, on peut utiliser les touches *10^ mais en informatique, on peut aussi utiliser la lettre E (ou e) comme sur la calculatrice (Attention jamais dans un devoir écrit). Cette lettre signifie \(\times 10^{puissance}\) <table class="wimscenter wimsborder"> <tr><th>Préfixe </th><th>Symbole </th><th> Puissance de 10 </th> \for{i=1 to \nbligne}{ <tr> <td> \donnees[\i;1] </td> \for{j=2 to 3}{ <td> \embed {reply \tableau[\i;\j],10 }</td> } </tr> } </table> } \answer{}{\donnees[1;2]}{type = case} \answer{}{\donnees[1;3]}{type = numeric} \answer{}{\donnees[2;2]}{type = case} \answer{}{\donnees[2;3]}{type = numeric} \answer{}{\donnees[3;2]}{type = case} \answer{}{\donnees[3;3]}{type = numeric} \answer{}{\donnees[4;2]}{type = case} \answer{}{\donnees[4;3]}{type = numeric} \answer{}{\donnees[5;2]}{type = case} \answer{}{\donnees[5;3]}{type = numeric} \answer{}{\donnees[6;2]}{type = case} \answer{}{\donnees[6;3]}{type = numeric} \answer{}{\donnees[7;2]}{type = case} \answer{}{\donnees[7;3]}{type = numeric} \answer{}{\donnees[8;2]}{type = case} \answer{}{\donnees[8;3]}{type = numeric} \text{val_rep= \sc_reply1, \sc_reply2, \sc_reply3, \sc_reply4, \sc_reply5, \sc_reply6, \sc_reply7, \sc_reply8, \sc_reply9, \sc_reply10, \sc_reply11, \sc_reply12, \sc_reply13, \sc_reply14, \sc_reply15, \sc_reply16, \sc_reply17, \sc_reply18, \sc_reply19, \sc_reply20 } \text{val_rep=item(1..\nbtotrep,\val_rep)} \text{val_rep=wims(replace internal , by + in \val_rep)} \rational{val_rep_num=\val_rep} \solution{ <p class="larger wimscenter bold">FEEDBACK</p> \if{\val_rep_num<>\nbtotrep}{ <p>Vous avez au moins une erreur !</p> }{ <p>BRAVO !</p> } <p>Voici La meilleure des réponses :</p> <table class="wimscenter wimsborder"> <tr><th>Préfixe</th><th>Symbole</th><th> Puissance de 10</th><th>Commentaires</th> \for{i=1 to \nbligne}{ <tr> <td> \donnees[\i;1]</td> <td> \(\donnees[\i;2])</td> <td> \donnees[\i;3]</td> <td> \donnees[\i;4]</td> </tr> } </table>}
Bonne soirée !
-
Cette réponse a été modifiée le il y a 11 mois et 1 semaine par
Julien.
-
Cette réponse a été modifiée le il y a 11 mois et 1 semaine par
-
26 juin 2022 à 20:44 #7183
-
28 juin 2022 à 12:09 #7185
Jérôme BAILLEUL
Participant
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.