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}

Posée 21 Mai '18, 15:02

jps75015's gravatar image

jps75015
4126
Taux d'acceptation : 0%

Modifiée 05 Jui '18, 17:06

Pathe's gravatar image

Pathe ♦♦
7.4k29197245

voir peut-être du coté de l'extension ifthen:

ifthenelse{nombrea}{nombreB}

ou

ifthenelse{equal}{chaineA}{chaineB}

(21 Mai '18, 18:05) joseph-tux joseph-tux's gravatar image

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

(21 Mai '18, 19:26) fred02840 fred02840's gravatar image

AMC c'est pour une lecture automatique par un ordinateur... pas intéressant pour mes 40 étudiants...

(21 Mai '18, 21:40) jps75015 jps75015's gravatar image

Hockey... Je vais essayer ce que cela donne chez moi.

(21 Mai '18, 21:49) fred02840 fred02840's gravatar image

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...

(21 Mai '18, 21:50) jps75015 jps75015's gravatar image
1

Vous pouvez vous inspirer de ce fil sur MathemaTeX

(22 Mai '18, 21:02) touhami touhami's gravatar image

@jps75015 Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(05 Jui '18, 17:07) Pathe ♦♦ Pathe's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Voici une option.

Remarques

  • j'ai défini une commande \newcommand*{\mtcode}{123456} ;
  • et j'ai ajouté l'option password au champ de saisie de code \TextField[password,bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : }.

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

Lien permanent

Publiée 23 Mai '18, 20:59

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 05 Jui '18, 17:04

Pathe's gravatar image

Pathe ♦♦
7.4k29197245

ABSOLUMENT GENIAL !!!!!!!!!!!!!!!!!!

c'est exactement ce que je recherchais !!!

MERCI

(05 Jui '18, 10:50) jps75015 jps75015's gravatar image

@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 ♦♦ Pathe's gravatar image

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}
Lien permanent

Publiée 21 Mai '18, 22:40

jps75015's gravatar image

jps75015
4126
Taux d'acceptation : 0%

Modifiée 30 Mai '18, 15:52

stefan's gravatar image

stefan ♦♦
8618

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.