Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › Incohérence de fonctionnement
- Ce sujet contient 5 réponses, 3 participants et a été mis à jour pour la dernière fois par Julien, le il y a 11 mois et 2 semaines.
-
AuteurMessages
-
-
1 février 2024 à 12:33 #8217Hilaire FernandesParticipant::
Hello,
Je relève cette incohérence de fonctionnement dans le code ci-dessous.
La premier ligne de déclaration de la variable radC1 ne permet pas d’atteindre l’élément voulu par l’utilisation d’accesseur sur le contenu de la matrice, alors que le deuxième avec la fonction item le permet.
A noter que sur choixC = 1 cela fonctionne…
Je trouve le langage (ou les langages ?) globalement très frustrant et très mauvais en terme de productivité de codage d’exercice. Complexité structurelle inhérente qui est un boulet
\matrix{ tripletC = 3, 4, 5 ; 5, 12, 13 ; 6, 8, 10 ; 12, 16, 20 }
\integer{ choixC = random(1..4) }
\integer{ choixC = 2}
: changer l’ordre du couple
\matrix{ coupleC = shuffle (\tripletC[\choixC ; 1..2]) }
\text{ radC1 = \coupleC[\choixC ; 1] }
\text{ radC1 = item (1, \coupleC) }- Ce sujet a été modifié le il y a 11 mois et 2 semaines par Hilaire Fernandes.
-
1 février 2024 à 12:58 #8219Hilaire FernandesParticipant::
Autre incohérence :
Lorsque \opeC est tiré a +, le premier bloc du if n’est pas exécuté. \opeC a bien la valeur + (il est affiché dans l’énoncé) mais le test du if \opeC = + ne fonctionne pas comme attendu…
: addition ou soustraction au dénominateur
\text{ opeC = random(+, -) }
\if {\opeC = +}
{ \rational{ reponseC = \tripletC[\choixC ; 3] / (\radC1 + \radC2) }
\rational{ reponseC = 1000/3 }
}
{ \rational{ reponseC = \tripletC[\choixC ; 3] / (\radC1 – \radC2) } }- Cette réponse a été modifiée le il y a 11 mois et 2 semaines par Hilaire Fernandes.
-
1 février 2024 à 13:58 #8222bernadetteMaître des clés::
Un peu difficile de s’y retrouver dans votre code en effet:
\integer{ choixC = random(1..4) }
\integer{ choixC = 2}Lequel voulez-vous ? idem pour
\text{ radC1 = \coupleC[\choixC ; 1] }
\text{ radC1 = item (1, \coupleC) }Le premier prend la premier item de la ligne \choixC, le deuxième, le premier item
radC2 n’est jamais défini
Sinon, j’aurais écrit car + n’est pas numérique (pour le reste, pas compris votre but vu les incohérences de votre code):
\if {\opeC issametext +}
Bernadette
-
1 février 2024 à 14:02 #8223bernadetteMaître des clés
-
1 février 2024 à 15:14 #8224Hilaire FernandesParticipant::
Un peu difficile de s’y retrouver dans votre code en effet:
En effet, en l’absence d’outil de débogage avec le code OEF, il n’y a guerre d’alternative que de forcer les valeurs des variables pour comprendre ce qui ne fonctionne pas. C’est fastidieux et archaïque, mais pas le choix à ma connaissance.
Lequel voulez-vous ? idem pour \text{ radC1 = \coupleC[\choixC ; 1] } \text{ radC1 = item (1, \coupleC) }
Relire ma remarque, le premier ne donne pas le résultat attendu alors que le deuxième oui. Bref, beaucoup de perte de temps pour faire fonctionner le code.
radC2 n’est jamais défini
Ce n’est pas l’objet du problème, et n’a rien à voir avec le problème évoqué.
\if {\opeC issametext +}
C’est noté. Encore une complication du langage…
-
1 février 2024 à 19:21 #8230JulienModérateur::
Ce code fonctionne :
\title{hilaire}
\matrix{ tripletC = 3, 4, 5;5, 12, 13;6, 8, 10; 12, 16, 20 }
\integer{ choixC = 2}
: changer l’ordre du couple
\matrix{coupleC=shuffle(\tripletC[\choixC ; 1..2])}
\text{radC1= \coupleC[1 ; 2] }
\text{radC2 = item(2,\coupleC) }\statement{
\coupleC
<br>
\radC1
<br>
\radC2
}
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.