Questions sur le package fp

Added by Nikos Chacal over 2 years ago

Bonjour,
J'essaie d'utiliser pour la première fois le package fp.
J'ai crée la question suivante:

\element{categorie1}{
    \begin{questionmultx}{cat1-quest1}
\FPeval\VQn{1.0*pow{\neg(2), 10}+random*1.0*pow{\neg(2),10}}     % pour avoir une concentration entre 10^-2 et 10^-3
\FPeval\VQpH{round(ln(0.04*VQn)/ln(10),3)}                       % calcul du pH
\FPeval\VQh{round(0.04*VQn,1)}                                   % calcul de [H3O+]

     On introduit $n=\SI{\VQn}{\mol}$ d'acide éthanoïque \ch{CH3CO2H} dans un volume $V=\SI{1.0}{\liter}$ d'eau pure. Le pH de cette solution à $\SI{25}{\celsius}$ vaut $\VQpH$.

     \AMCnumericChoices{\VQh}{digits=3,decimals=2,sign=true,
borderwidth=0pt,backgroundcol=lightgray,approx=5}
    \end{questionmultx}
    }

Mais ça ne marche pas.
Selon ce que je change j'ai soit :
illegal character \pow{\neg(2),10} found in floar number
soit
! Missing \endcsname inserted.

Je ne trouve pas la solution
Pourriez vous m'aider svp.
Merci pour votre réponse


Replies (22)

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

\FPeval\VQn{pow(-2,10)+random*pow(-3,10)}    \VQn  % pour avoir une concentration entre 10^-2 et 10^-3

Il manque le slash

\FPeval\VQpH{round(ln(0.04*\VQn)/ln(10),3)}

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

La première valeur est en fait mal écrite : VQn doit être comprise entre 0.001 et 0.01
J'écrirais plutôt ceci avec l'arrondi ; je crois que c'est plus rapide pour les caluls de faire des multiplications que des puissances.

\FPeval\VQn{round(0.01*(0.1+0.9*random),5)}

RE: Questions sur le package fp - Added by Nikos Chacal over 2 years ago

Ok, merci.

Je repose une question ici, mais cette fois pour faire une utilisation compatible du package fp et d'AMCnumericChoices.

Avec FP, je calcule une concentration. Par défaut le résultat est en écriture décimale et dans mon cas j'ai une concentration qui vaut 0.000000000063. Mais j'aimerais que ce nombre soit en écriture scientifique afin de proposer une réponse avec AMCnumericChoices sous la forme 6.3e-11. Existe-t-il un moyen de faire ça?
Merci d'avance.

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

c'est possible, c'est écrit dans la documentation dans les options d' \AMCnumericChoices : exponent.
Si ce n'est pas écrit, c'est que votre version d'AMC est trop vieille.

RE: Questions sur le package fp - Added by Joss OUIN over 2 years ago

Bonjour à tous,

Pensez-vous qu'il soit possible de définir une liste avec FP ?
Par exemple, je voudrais une liste de 5 éléments \maliste et pouvoir appeler les éléments de cette liste : \maliste(1) , \maliste(2)
Et pouvoir faire des opérations simples comme \FPeval\somme{maliste(1) + maliste(2)}

L'idée serait de stocker une liste de valeurs de résultats justes afin de changer les valeurs numériques pour chaque sujet de QCM.
Par exemple :
1/ Choisir un entier m aléatoire entre 1 et 5 ;
2/ Mettre dans \AMCnumericChoices la valeur \maliste(m)

Si vous avez des idées, je serai ravi.
Bonne journée.
Joss.

RE: Questions sur le package fp - Added by Alexis Bienvenüe over 2 years ago

L'idée serait de stocker une liste de valeurs de résultats justes afin de changer les valeurs numériques pour chaque sujet de QCM.

Pouvez détailler un exemple concret de ce que vous voulez faire?

RE: Questions sur le package fp - Added by Joss OUIN over 2 years ago

Bonjour à tous et bonjour Alexis,

Voici un exemple de ce que je faisais avec Python au sein de LaTeX. C'est un tableau de valeurs de départ et de résultats de 10 lignes (toutes ces valeurs sont été calculées sur tableur ou avec python).
Je choisis un nombre aléatoire entre 0 et 9 et du coup j'en déduis toutes mes valeurs.

\element{incertitude-voiture-conso}{
            \pyc{res=np.array([[  47.6    ,    0.5    ,  530.     ,   20.     ,    8.981  ,
           0.4333 ,    4.82401],
       [  59.6    ,    0.4    ,  490.     ,   10.     ,   12.163  ,
           0.3299 ,    2.71196],
       [  51.1    ,    0.9    ,  600     ,   30     ,    8.517  ,
           0.5758 ,    6.76125],
       [  42.4    ,    0.3    ,  650.     ,   20.     ,    6.523  ,
           0.2469 ,    3.78447],
       [  44.5    ,    0.5    ,  510.     ,   10.     ,    8.726  ,
           0.2691 ,    3.08438],
       [  72.3    ,    0.6    ,  890.     ,   40.     ,    8.124  ,
           0.4325 ,    5.32426],
       [  78.2    ,    0.7    ,  730.     ,   50.     ,   10.712  ,
           0.8296 ,    7.74446],
       [  72.1    ,    0.8    ,  590.     ,   30.     ,   12.22   ,
           0.757  ,    6.19432],
       [  37.4    ,    0.2    ,  500.     ,   10.     ,    7.48   ,
           0.1896 ,    2.53476],
        [  38.7    ,    0.1    ,  480.     ,   20.     ,    8.062  ,
           0.3568 ,    4.42506]])}

\pyc{i=np.random.randint(0,9)} % numéro de ligne du tableau 

\noindent \textbf{Pour les 2 questions suivantes :}

\begin{question}{delta-conso-abs}

Un automobiliste parcourt une distance $D = \py{res[i,2]} \pm \py{res[i,3]} $ km en consommant un volume de carburant $V = \py{res[i,0]} \pm \py{res[i,1]}$ litres. 

La consommation au 100 km $C$ a pour expression :  
$C=\dfrac{V}{D} \times 100$ en l/100 km

Calculer puis arrondir l'incertitude absolue $\Delta C$ en respectant la convention.
$\Delta C$ vaut :  
\begin{reponseshoriz}
                \bonne   {$\py{round(res[i,5],1)}$}
                \mauvaise{$\py{round(res[i,5],2)}$}                 
                 \mauvaise{$\py{round(0.75*res[i,5],1)-0.1}$}
                 \mauvaise{$\py{round(1.25*res[i,5],1)+0.1}$}
                 \mauvaise{$\py{round(0.75*res[i,5],2)-0.01}$}
                 \mauvaise{$\py{round(1.25*res[i,5],2)+0.01}$}
            \end{reponseshoriz}             
    \end{question}

Je compte abandonner Python car c'est assez compliqué de compiler le document (avec parfois des sueurs froides !) et puis c'est compliqué également de placer une valeur issue de python dans un \AMCnumericChoices. Avec le package FP, c'est très simple.
Je souhaiterais me passer de Python.

Pour le moment, mes recherches sur Internet ont été infructueuses.

Bonne journée.
Joss.

RE: Questions sur le package fp - Added by Alexis Bienvenüe over 2 years ago

Une solution consisterait à utiliser les groupes d'AMC.
C'est dommage d'avoir à utiliser \global, il faudrait modifier le style pour l'éviter mais il faudra que je vérifie que ça ne casse rien d'autre…

simple.tex (3.1 kB)

DOC-indiv-solution.pdf (96.3 kB)

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

Je propose une solution avec siunitx (version 3 donc texlive 2021), listofitems (documentation en français, indice débutant à 1, plus facile que datatool).

RE: Questions sur le package fp - Added by Joss OUIN over 2 years ago

Bonjour à tous et bonjour Alexis et Frédéric,

Merci pour vos propositions, je vais étudier cela (il me faut du temps pour que cela monte au cerveau ha ha !).
Pour la solution de Frédéric, j'ai des erreurs de compilation mais cela doit venir du fait que ma version de texlive n'est pas à jour. Il faut que je regarde comment la mettre à jour.
Cette solution permet de définir une matrice est c'est parfait !

Encore merci à vous pour ce partage de connaissances.
Joss

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

Si j'ai le temps ce soir, je tente de le modifier pour être compatible avec la version 2 de siunitx.

Je dirais dans l'immédiat pour le changement qu'il faut charger le paquet xfp, remplacer \qty par \SI, supprimer l'option evaluate-expression=true, modifier les calculs (que permet la version 3 en direct)

\num{1.25*\Consommation[\ligneTab,6] +0.1}

en
\num{\fpeval{1.25*\Consommation[\ligneTab,6] +0.1}}

Pour la mise à jour, il faut installer la version vanille https://www.auto-multiple-choice.net/auto-multiple-choice.fr/Divers.shtml#texlive.vanilla mais je ne sais pas faire cohabiter (jamais testé en fait) la version installée par AMC, qui est une version dépendante d'Ubuntu et toujours en retard par rapport à une version de l'année N. Dans la documentation, je me suis concentré uniquement sur une installation nouvelle où texlive serait installée dans le dossier par défaut local et pas share comme le fait AMC.

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

Ce fichier semble fonctionner. Il faudrait affiner avec les options des incertitudes pour enlever les parenthèses.

RE: Questions sur le package fp - Added by Joss OUIN over 2 years ago

Bonjour à tous et bonjour Frédéric,

Merci Frédéric pour ce travail, c'est parfait.

Je me suis renseigné sur les forums et apparemment la version de texlive et directement liée à la version d'Ubuntu afin d'assurer la stabilité du système.
J'ai actuellement la version Focal Fossa 20.04 LTS sur mon PC. Ma version de texlive est : 2019.

Merci pour le lien d'installation de la version Vanille (qui comporte la version 2 de siunitx si j'ai bien compris).
Ma version actuelle d'AMC est la dernière version de développement (j'ai préféré cette option).

J'espère ne rien "casser" en installant la version vanille avec AMC déjà installé, notamment à cause des dossiers différents local et share.

Bon week-end à tous.
Joss.

RE: Questions sur le package fp - Added by Frédéric Bréal over 2 years ago

Je vous conseille une sauvegarde du fichier bashrc (je crois) et profil qui sont dans le home et cachés.
Je pense qu'il faudra rajouter dans le premier le chemin vers texlive 2021 et supprimer celui de texlive 2019.
Cette dernière pourrait être effacée après.
Aucune garantie dans mes propos.

RE: Questions sur le package fp - Added by Joss OUIN over 2 years ago

Bonjour à tous,

Merci Frédéric pour ces précisions.
Pour le moment je vais jouer la prudence car je ne me sens pas capable de "downgrader" l'installation en cas de plantage. Mes connaissances en termes de commandes Linux sont limitées.
Je tenterai lorsque la période des examens sera passée et que je n'aurai pas de QCM AMC en cours d'utilisation.

Belle journée à tous,
Joss

RE: Questions sur le package fp - Added by Frédéric Bréal about 2 years ago

Bonjour,
Sur une machine virtuelle (virtualbox), j'ai installé xubuntu 20.04 puis AMC, et donc texlive 2019, puis texlive 2021 "à la vanille" comme indiqué dans la documentation comme si AMC et texlive n'étaient pas installés.
Je n'ai pas sauvegardé les fichiers bashrc et profil.
Il y a eu une erreur que je n'ai pas su comprendre dans la construction des paquets mais après la mise à jour de texlive 2021, j'ai pu compiler avec AMC ou avec texstudio un fichier modèle. C'est bien texlive 21 qui compile.
Je n'ai pas fait un processus complet de correction.
J'ai voulu supprimer texlive 2019 avec synaptic mais c'est impossible car AMC est lié et je n'ai pas cherché à supprimer en mode sudo le dossier texlive 2019.
Texlive fait environ 4 Go ce qui fait un petit pourcentage occupé sur les disques durs actuels.
Bonne fin d'année 2021.

RE: Questions sur le package fp - Added by Joss OUIN about 2 years ago

Bonjour à tous,

Merci Frédéric pour ces essais d'installation de TexLive "vanillé". AMC et TexLive 2019 sont liés effectivement, je m'en suis rendu compte en utilisant Synaptic.

Je profite de ce post pour souhaiter une très bonne année 2022 à tous les membres de ce forum. Longue vie à AMC !!
Joss

RE: Questions sur le package fp - Added by Joss OUIN about 2 years ago

Bonjour à tous,

Grâce aux documents proposés par Frédéric, j'ai bricolé une solution qui n'utilise par le package siunitx mais uniquement les packages FP et listofitems.
Je n'ai pas installé la mise à jour "vanille" de peur d'être "LaTeX-chocolat" (vanille-chocolat haha haha hahaha).

Voici donc cette solution si cela peut intéresser les utilisateurs d'AMC (encore merci à Frédéric).

Avec une question simple :

\element{Demo-listofitems-un}{
    \begin{question}{demo-list-1}
% définition des séparateurs : ; pour liste principale et , pour éléments imbriqués
\setsepchar{;/,/}

\readlist{\Consommation}{
47.6 , 0.5,530 , 20 , 8.981 , 0.4333, 4.82401;
59.6 , 0.4,490 , 10 , 12.163 , 0.3299, 2.71196;
51.1 , 0.9 ,600 , 30 , 8.517 , 0.5758 , 6.76125;
42.4 , 0.3,650 , 20, 6.523 , 0.2469 , 3.78447;
44.5 , 0.5,510 , 10, 8.726 , 0.2691,  3.08438;
72.3 , 0.6,890 , 40, 8.124 , 0.4325 , 5.32426;
78.2 , 0.7,730 , 50 , 10.712 , 0.8296 , 7.74446;
72.1 , 0.8,590 , 30 , 12.22 , 0.757, 6.19432;
37.4 , 0.2,500 , 10 , 7.48 , 0.1896, 2.53476;
38.7 , 0.1,480 , 20 , 8.062 , 0.3568 , 4.42506}

\FPeval{\ligneTab}{trunc(1+9*random,0)}
\FPeval{\fausseun}{\Consommation[\ligneTab,3] - 1}
\FPeval{\faussedeux}{\Consommation[\ligneTab,3] + 1}

\FPeval{\fausseun}{trunc(\fausseun , 0)}
\FPeval{\faussedeux}{trunc(\faussedeux , 0)}

Pour la ligne N° : $\ligneTab$

On obtient la valeur : $\Consommation[\ligneTab,3] $
        \begin{reponseshoriz}
            \bonne{$\Consommation[\ligneTab,3]$} 
            \mauvaise{$\fausseun$} 
            \mauvaise{$\faussedeux$} 
        \end{reponseshoriz}
    \end{question}
}

Avec une questionmultx :

\element{Demo-listofitems-deux}{

 \begin{questionmultx}{demo-multx-1}   
% définition des séparateurs : ; pour liste principale et , pour éléments imbriqués
\setsepchar{;/,/}

\readlist{\Consommation}{
47.6 , 0.5,530 , 20 , 8.981 , 0.4333, 4.82401;
59.6 , 0.4,490 , 10 , 12.163 , 0.3299, 2.71196;
51.1 , 0.9 ,600 , 30 , 8.517 , 0.5758 , 6.76125;
42.4 , 0.3,650 , 20, 6.523 , 0.2469 , 3.78447;
44.5 , 0.5,510 , 10, 8.726 , 0.2691,  3.08438;
72.3 , 0.6,890 , 40, 8.124 , 0.4325 , 5.32426;
78.2 , 0.7,730 , 50 , 10.712 , 0.8296 , 7.74446;
72.1 , 0.8,590 , 30 , 12.22 , 0.757, 6.19432;
37.4 , 0.2,500 , 10 , 7.48 , 0.1896, 2.53476;
38.7 , 0.1,480 , 20 , 8.062 , 0.3568 , 4.42506}

\FPeval{\ligneTab}{trunc(1+9*random,0)}

Pour la ligne N° : $\ligneTab$

On obtient la valeur : $\Consommation[\ligneTab,3] $

Coder cette valeur dans la zone ci-dessous :

    \AMCnumericChoices{\Consommation[\ligneTab,3]}{digits=3,decimals=0,sign=false,scoreexact=1,scorewrong=-0.5}

  \end{questionmultx}
}

Je vous joins un exemple de sujet (PDF) qui comporte ces deux questions. Tout fonctionne avec AMC qui reconnaît bien les valeurs \Consommation[\ligneTab,3] dans une question simple ou une questionmultx.

Est-il nécessaire de préciser qu'AMC est un logiciel génial ? Je ne crois pas.

Bon week-end à vous.
Joss.

demo_copies.pdf - Exemple de copies réalisées à l'aide de ces 2 questions (81 kB)

RE: Questions sur le package fp - Added by Jean-Philippe Bartier about 2 years ago

Bonjour à tous,
merci pour ces exemples.
Du coup, j'ai une question concernant listofitems

J'ai crée une liste comme ceci

"\element{cos}{
\setsepchar{;/,/}
\readlist{\valeurcossin}{ %valeurs simples lignes 1 à 6
\sin(\frac {\pi}{6}) , \frac 12,\frac{\sqrt 2}{2} , \frac{\sqrt 3}{2} , 0;
\sin(\frac {\pi}{4}) , \frac{\sqrt 2}{2} , \frac 12 , \frac{\sqrt 3}{2} , 0;
\sin(\frac {\pi}{3}) , \frac{\sqrt 3}{2} , \frac 12,\frac{\sqrt 2}{2} , 0;
\cos(\frac {\pi}{3}) , \frac 12,\frac{\sqrt 2}{2} , \frac{\sqrt 3}{2} , 0;
\cos(\frac {\pi}{4}) , \frac{\sqrt 2}{2} , \frac 12 , \frac{\sqrt 3}{2} , 0;
\cos(\frac {\pi}{6}) , \frac{\sqrt 3}{2} , \frac 12,\frac{\sqrt 2}{2} , 0 }

\pgfmathrandominteger{\ligne}{1}{6}
\begin{question}{valeur-cossin-simple}
Quelle est la valeur de ${\valeurcossin[\ligne,1]}$ ?
\begin{reponseshoriz}
\bonne{${\valeurcossin[\ligne,2]}$}
\mauvaise{${\valeurcossin[\ligne,3]}$}
\mauvaise{${\valeurcossin[\ligne,4]}$}
\lastchoices
\mauvaise{autre}
\end{reponseshoriz}
\end{question} "

Je demande à latex de me tirer un numéro de ligne au hasard pour avoir cos (nombre) ou sin (nombre).
La bonne valeur est toujours en colonne 2. En me relisant, je me suis rendu compte que la bonne réponse n'était pas toujours en colonne 2 dans ma première version (je me suis trompé, honte à moi)

Habituellement, si je me trompe dans une réponse sans listofitems, je change "\mauvaise" en "\bonne" mais dans ce cas où la réponse n'est pas toujours dans la même colonne, il faut que j'échange 2 colonnes de la ligne fausse.

Je n'ai pas testé mais j'ai l'impression que cela va poser problème (contrairement à créer un groupe de 6 questions ici et d'en choisir une au hasard sur 6 où je peux faire la manipulation habituelle)

Avez-vous une idée ? (je vais tester dans l'après-midi si j'ai le temps et la force)

Bonne journée

RE: Questions sur le package fp - Added by Frédéric Bréal about 2 years ago

il faut que j'échange 2 colonnes de la ligne fausse.

Pour moi, cela ne posera pas de problème car AMC ne s'occupe que de la case bonne. Par contre, si votre sujet est distribué, il faudra corriger maruellement.

RE: Questions sur le package fp - Added by Jean-Philippe Bartier about 2 years ago

En fait ma question posait réellement sur le point que vous avez soulevé pour une correction après que l'examen ait eu lieu.

Merci pour la réponse !

(1-22/22)