Incohérence de fonctionnement

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 4 semaines.
Vous lisez 5 fils de discussion
  • Auteur
    Messages
    • #8217
      Hilaire Fernandes
      Participant
      Up
      0
      Down
      ::

      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) }

    • #8219
      Hilaire Fernandes
      Participant
      Up
      0
      Down
      ::

      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 4 semaines et 1 jour par Hilaire Fernandes.
    • #8222
      bernadette
      Maître des clés
      Up
      0
      Down
      ::

      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

       

    • #8223
      bernadette
      Maître des clés
      Up
      0
      Down
      ::

      D’ailleurs,

      \text{ opeC = randitem(+, -) }
      \text{ reponseC = 5/ (\radC1 \opeC 2) }

      fonctionne et est plus simple.

    • #8224
      Hilaire Fernandes
      Participant
      Up
      0
      Down
      ::

      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…

    • #8230
      Julien
      Modérateur
      Up
      0
      Down
      ::

      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
      }

      • Cette réponse a été modifiée le il y a 4 semaines par Julien.
      • Cette réponse a été modifiée le il y a 4 semaines par Julien.
Vous lisez 5 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.