J'essaye de créer un QCM. Comment faire pour ne calculer le nombre de points que si un code d'activation est bon ? Je souhaiterais calculer le total sous condition : créer un champ texte nommé « code de validation » et afficher le total que si ce code est exact, disons 123456. Auriez-vous une idée ? Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{hyperref} \usepackage[T1]{fontenc} \usepackage{amssymb} \textwidth=17cm %%% \begin{document} \begin{Form} \TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=box]{NOM : } \vspace{1cm } \begin{enumerate} \item Une primitive de $x \mapsto x^2$ est : \ChoiceMenu[name=Q1,radio,default=-0]{}{\qquad $x \mapsto x^3$=0,\qquad $x \mapsto \frac{1}{3}x^3$=1,\qquad $x \mapsto 2x$=0} \item \ChoiceMenu[name=Q2,radio,default=-0]{Ma Question 1}{r\'eponse à 2 points=2,r\'eponse à 1 point=1,R\'eponse fausse=0} \item \ChoiceMenu[name=Q3,radio,default=-0]{Ma Question 2}{r\'eponse à 2 points=2,r\'eponse à 1 point=1,R\'eponse fausse=0} \end{enumerate} \vspace{4cm } \ChoiceMenu[name=OBTENIRREPONSE,radio,default=0]{Obtenir la note}{CALCUL DU SCORE =1,PAS ENCORE DE CALCUL =0} \vspace{1cm } \TextField[readonly=true,value=0,calculate={event.value=(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value)*this.getField("OBTENIRREPONSE").value;}]{score final : } \end{Form} \end{document}
Affichage de 5 parmi 7
Afficher 2 commentaire(s) en plus
|
Voici une option. Remarques
ECM Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage[scale=.9]{geometry} \usepackage{amssymb} \usepackage{tikz} \usepackage{hyperref} \newcommand*{\mtcode}{123456} %%% \begin{document} \begin{Form} \TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=box]{NOM : } \vspace{1cm} \begin{enumerate} \item Une primitive de $x \mapsto x^2$ est : \ChoiceMenu[name=Q1,radio,default=-0]{}{\qquad $x \mapsto x^3$=0,\qquad $x \mapsto \frac{1}{3}x^3$=1,\qquad $x \mapsto 2x$=0} \item \ChoiceMenu[name=Q2,radio,default=-0]{Ma Question 1}{réponse à 2 points=2,réponse à 1 point=1,R\'eponse fausse=0} \item \ChoiceMenu[name=Q3,radio,default=-0]{Ma Question 2}{r\'eponse à 2 points=2,r\'eponse à 1 point=1,R\'eponse fausse=0} \end{enumerate} \vspace{2cm} \TextField[password,bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : } % % \PushButton[name=verificationcode,bordercolor=1 1 1, onclick= { if (this.getField("boxcode").value==\mtcode) { this.getField("obtenirscore").value=(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value); } else { this.getField("obtenirscore").value="Code incorrect"; } this.getField("boxcode").value=""; } ]{\tikz\node[rounded corners, draw=black!80, fill=black!20] {score final :};} \TextField[name=obtenirscore,bordercolor=1 1 1,width=10em,charsize=0pt,readonly=true]{} \end{Form} \end{document} Avant validation Après ABSOLUMENT GENIAL !!!!!!!!!!!!!!!!!! c'est exactement ce que je recherchais !!! MERCI
(05 Jui '18, 10:50)
jps75015
@jps75015 Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.
(05 Jui '18, 17:01)
Pathe ♦♦
|
je sais faire des calculs sur le champ précédent... mais pas de test logique... Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{hyperref} \usepackage[T1]{fontenc} \usepackage{amssymb} \usepackage{ifthen} \textwidth=17cm \begin{document} \begin{Form} \TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=box]{NOM : } \vspace{1cm } \vspace{1cm } \begin{enumerate} \item Une primitive de $x \mapsto x^2$ est : \ChoiceMenu[name=Q1,radio,default=-0]{}{\qquad $x \mapsto x^3$=0,\qquad $x \mapsto \frac{1}{3}x^3$=1,\qquad $x \mapsto 2x$=0} \item \ChoiceMenu[name=Q2,radio,default=-0]{Ma Question 1}{r\'eponse à 2 points=2,r\'eponse à 1 point=1,R\'eponse fausse=0} \item \ChoiceMenu[name=Q3,radio,default=-0]{Ma Question 2}{r\'eponse à 2 points=2,r\'eponse à 1 point=1,R\'eponse fausse=0} \end{enumerate} \vspace{4cm } \ChoiceMenu[name=OBTENIRREPONSE,radio,default=0]{Obtenir la note}{CALCUL DU SCORE =1,PAS ENCORE DE CALCUL =0} \vspace{1cm } \TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : } \vspace{1cm } %\TextField[readonly=true,bordercolor=1 0 0,width=10em,charsize=0pt,name=zzz,calculate=boxcode.value]{valeur zzz : } \vspace{1cm } \TextField[readonly=true,value=0,% %calculate={event.value=(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value)*this.getField("OBTENIRREPONSE").value;}% calculate={event.value=this.getField("boxcode").value+1;}% ]{score final : } \end{Form} \end{document} |
voir peut-être du coté de l'extension ifthen:
ifthenelse{nombrea}{nombreB}
ou
ifthenelse{equal}{chaineA}{chaineB}
Pourquoi ne pas utiliser AMC (Auto-multi-choice) : https://www.auto-multiple-choice.net/index.fr ? Cela dit, votre démarche m'intéresse beaucoup
AMC c'est pour une lecture automatique par un ordinateur... pas intéressant pour mes 40 étudiants...
Hockey... Je vais essayer ce que cela donne chez moi.
ifthenelse ne marche pas selon moi car il faudrait faire un test dans les options de TextField... c'est ce que je ne sais pas faire...
Vous pouvez vous inspirer de ce fil sur MathemaTeX
@jps75015 Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).