Variables réponses imbriquées dans Formulas (plug in formule)

Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Nombre de réponses : 11
Avatar Moodleurs particulièrement utiles

Bonjour,

Je veux demander les formules algébriques de résolution d'une équation du second degrés : le discriminant puis la solution positive.

Les variables ci-dessous fonctionnent

ci=1;
Ka=7;

delta="Ka^2+4*Ka*ci";
cb1="(-Ka+sqrt(Ka^2+4*Ka*ci))/2";

J'aurais souhaité ce réglage, mais qui signale une erreur sur cb1.

ci=1;
Ka=7;

delta="Ka^2+4*Ka*ci";
cb1="(-Ka+sqrt(delta))/2";

Et que les élèves réponde au choix :

(-Ka+sqrt(Ka^2+4*Ka*ci))/2

ou

(-Ka+sqrt(delta))/2
Comment imbriquer 2 variables "réponses" ?

Merci,
Claude

Moyenne des évaluations  -
En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Avatar Moodleurs particulièrement utiles

La méthode ci-desous ne fonctionne pas non plus

ci=1;
Ka=7;
delta=Ka^2+4*Ka*ci;
ans="Ka^2+4*Ka*ci";
cb1="(-Ka+sqrt(delta))/2";

Et ci-dessous erreur d'évaluation de cb1 également

ci=1;
Ka=7;
delta=Ka^2+4*Ka*ci;
y=str(delta);
ans="Ka^2+4*Ka*ci";
cb1=join("(-Ka+sqrt(",y,"))/2");

Je ne maitrise pas vraiment

Je trouve assez bizarre que le plugin évalue des chaines de caractères.

En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Avatar Moodleurs particulièrement utiles
Je réécris mon message en termes plus généraux. Les grandeurs dans mon exemple sont des grandeurs chimiques (constante d'équilibre et concentrations).
Je voudrais que les élèves me donnent les solutions générales d'une équation du second degré x^2 + b*x - c = 0
Je demande d'abord l'expression du discriminant.

b = 1;
c = 1 ;
delta = "b^2+4*c";

Puis je demande les racines.

x1="(-b+sqrt(delta))/2";

Pour les racines je dois pouvoir accepter deux écritures de la réponse.

Par exemple pour la première racine, les deux réponses suivantes sont justes.
L'élève doit pouvoir saisir indifféremment l'une ou l'autre expression dans le champ réponse.

(-b+sqrt(delta))/2 (1)
ou
(-b+sqrt(b^2+4*c))/2 (2)

Si je définis la variable
x1="(-b+sqrt(delta))/2";
Alors la réponse (2) est renvoyée comme fausse

Et inversemment.

Une solution ?
Cordialement,
Claude
En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Demander les deux réponses en indiquant d'écrire la négative en premier.

Réponse ;   ["(-b-sqrt(delta))/2","(-b+sqrt(delta))/2"]

En réponse à Christian Bocquet

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Avatar Moodleurs particulièrement utiles
Merci, mais ce n'est pas cela mon problème.
J'aurais aimé qu'ils puissent répondre soit en utlisant "delta" dans la réponse soit en utilisatant l'expression de delta pour la même racine.
Je vais encore tester avec l'opérateur ou.
En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles
Bonjour,

Avec les notations b, c et delta, mettre pour les variables globales de la question :

b = 1;
c = 1 ;
delta = pow(b,2)+4*c;

Réponse pour la partie 1 du calcul de delta : "b^2+4*c"

Réponse pour la partie 2 du calcul de la racine : "(-b+sqrt(b^2+4*c))/2"

La réponse correcte possible (celle sur fond jaune que l'on peut supprimer suite à ce fil de discussion) sera alors écrite en utilisant les valeurs.

Christian
Moyenne des évaluations Utile (1)
En réponse à Christian Bocquet

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Avatar Moodleurs particulièrement utiles
Bonjour,

Ça fonctionne merci.
Le problème semble être une nuance entre Ka^2 et pow(Ka,2).

Ci-dessous la version qui ne fonctionne pas
   b = 1;
   c = 1 ;
   delta = b^2+4*c;  # le problème est  ici

   Réponse pour la partie 1 du calcul de delta : "b^2+4*c"
   Réponse pour la partie 2 du calcul de la racine : "(-b+sqrt(b^2+4*c))/2"

Autre observation :

L'utilisation de la fonction pow dans une réponse produit une erreur d'interprétation impossible. Exemple
Réponse pour la partie 1 du calcul de delta : "pow(b,2)+4*c"  #Erreur
Ce n'est pas le cas pour la fonction sqrt()

En tout cas je progresse sourire
Cordialement,
Claude
En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

"Le problème semble être une nuance entre Ka^2 et pow(Ka,2)."

C'est plus qu'une nuance, je pense. Pour calculer une variable en fonction d'autres variables ou constantes, il faut utiliser les fonctions PHP, qui sont reprises par le plugin "Formulas".
Sur le site moodleformulas.org on trouve la liste des fonctions autorisées et en particulier la fonction pow() qui fait référence à PHP.net.

Par contre, dans une chaîne (entre guillemets) , ce sont les notations habituelles qui sont reconnues : b^2 ou b*b

C'est le même problème pour le maximum et le minimum.
On peut écrire :
         a = 7;
         b=10;
         M = max(a,b);
         m=min(a,b);
mais pas
        "max(a,b)"
        "min(a,b)"


Christian

Moyenne des évaluations Utile (1)
En réponse à Christian Bocquet

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Claude Divoux,
Avatar Moodleurs particulièrement utiles
Ok je comprends, mais alors pourquoi la fonction sqrt() est reconnue dans une chaine ?
En réponse à Claude Divoux

Re: Variables réponses imbriquées dans Formulas (plug in formule)

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonsoir,

Les fonctions soient utilisables pour un calcul numérique soient utilisables dans une chaîne algébrique sont définies dans le fichier moodle/question/type/formulas/variables.php

La fonction sqrt reconnue dans un calcul numérique est définie à la ligne 143. Cliquer ici.

La fonction sqrt reconnue dans une chaîne algébrique est définie à la ligne 152. Cliquer ici.

SI le symbole  ^  est reconnue dans une chaîne algébrique comme une puissance, c'est à dire la fonction pow(), je pense que c'est à cause des lignes de code à partir de la ligne 1157. Cliquer ici.
Le symbole  ^  doit être remplacé car il n'est pas reconnu par PHP comme étant la fonction puissance.


Christian


Moyenne des évaluations Utile (1)