!set typelist1=!trim\
default,Auto,détermination automatique de certains types de base\
raw,Texte brut, la comparaison se fait par des options\
numeric,Nombre,la comparison se fait numériquement avec une précision fixée\
function,Fonction numérique,la comparaison se fait numériquement\
equation,Equation numérique,la comparaison se fait numériquement\
exp|algexp litexp formal,Expression mathématique,comparaison formelle\
text|case nocase atext,Texte,des mots ou des phrases\
multiple|checkbox click menu radio mark flashcard multipleclick,Réponse à choix multiples\

!set typelist2=!trim\
chemformula,Formule brute d'une molécule,en chimie\
chemdraw,Dessiner une molécule,en chimie\
chemclick,Sélectionner des atomes ou des liaisons d'une molécule\
chemeq,Equation chimique,avec analyse d'équilibre\
chset,Ensemble de caractères,\
clickfill|clickfill dragfill,Objets à glisser-déposer, qui peuvent être du texte, des images\
clicktile,Mettre en couleur des pavés\
clock, Mettre à l'heure une horloge\
compose,Composer,en utilisant des composantes fournies\
complex,Nombre complexe,la comparison se fait numériquement avec une précision fixée\
coord,Clic sur une image, dans une zone prédéfinie\
correspond,Correspondance,entre deux listes d'objets\
crossword,Mots croisés\
chessgame,Déplacement de pièces sur un échiquier\
draw, Dessin utilisant canvasdraw, permettant des tracés (points, droites ...)\
geogebra,Géométrie dynamique,utilisation de l'applet GeoGebra\
jmolclick,Clic sur des atomes en 3D, nécessite l'applet Jmol\
jsxgraph,Géométrie dynamique,utilisation de l'applet JSXGraph\
jsxgraphcurve,Dessin utilisant JSXgraph, permettant des tracés avec des formes prédéfinies ou libres\
keyboard,Texte, tapé à partir du clavier proposé\
matrix,Matrice numérique, au sens mathématique ; la comparaison se fait numériquement coefficient par coefficient\
numexp,Nombre rationnel, la comparison se fait de façon formelle\
puzzle,Reconstituer une image, présentée comme un puzzle\
range,Nombres dans une zone,tout ce qui est dans la zone est accepté\
reorder,Mise en ordre, d'une liste d'objets\
set|set fset aset,Ensemble fini,avec une analyse textuelle ou numérique\
sigunits,Nombre,avec possibilité de demander une unité et un nombre de chiffres significatifs\
symtext,Texte,outil avancé d'identification de textes\
units,Nombre avec unité, pour la physique\
vector,Vecteur,comparaison numérique des composantes\
wlist,Liste de mots,\
time,Mémoire


!set namelist=Types de base,Types spécifiques ou avancés
!set symtextlist=text atext raw compose

<h2 id="freestyle">Respuestas a un ejercicio</h2>
<p>Un exercice OEF peut accepter les réponses des utilisateurs de manière très variée.
Outre le choix multiple ou la réponse libre,
 on trouve de nombreuses autres possibilités.
La réponse donnée par l'utilisateur est analysée selon la nature du type.
D'autre part, il est possible d'afficher des
!href cmd=help&special_parm=feedback commentaires ciblés
 quand la réponse tombe sous une certaine condition
 (pour avertir d'une erreur typique par exemple).
Actuellement, jusqu'à $answerlim réponses simultanées peuvent être demandées dans
 un exercice sous l'implémentation actuelle.
<p>La syntaxe est la suivante (les 3 derniers champs sont optionnels) :</p>
<code>\answer{Texte}{\reponse}{type=...}{option=...}{weight=...}</code>
<p>
La longueur de <span class="tt">Texte</span> est limitée
à $max_promptlen caractères.
</p>
<h3>Le paramètre <span class="tt wims_code_words">type</span></h3>
<p>Chaque réponse peut prendre indépendamment l'un des types suivants.</p>
!for k=1 to 2
 <h4>$(namelist[$k])</h4>
 !set n=!linecnt $(typelist$k)
 <ul>
 !for j=1 to $n
  !set l=!line $j of $(typelist$k)
  !distribute item $l into name,title
  !set desc=!item 3 to -1 of $l
  !set name=!replace internal | by , in $name
  !set name1=!item 2 to -1 of $name
  !set name=!item 1 of $name
  !default name1=$name
  !if $name isitemof $special_parm or all isitemof $special_parm
   <li id="_$name">
   !read help/anstype.$lang/$name.phtml
   !if $name iswordof $symtextlist
    <p>
    <b>Remarque</b>.
    Ce type de réponse accepte l'option symtext. Si le mot <span class="tt wims_code_words">symtext</span> est
    déclaré dans l'option de la réponse, l'analyse de la réponse sera exactement
    comme pour
    !href cmd=help&special_parm=reply,symtext#_symtext symtext
, en particulier sans aucun traitement préalable des textes. Et toutes les
    options symtext seront comprises dans ce cas.
    </p>
   !endif
  !else
   <li>
   !href cmd=help&special_parm=reply,$name#_$name $title
   (<span class="tt wims_code_words">$name1</span>) $desc.
  !endif
  </li>
 !next j
 </ul>
!next i

!read help/$lang/embedans.phtml

<h3 id="weight">Le paramètre optionnel <span class="tt wims_code_words">weight</span></h3>

Il permet d'imposer un poids aux questions posées.
<p>
Exemple :
</p>
<pre>\answer{}{1}{type=numeric}{weight=8}
\answer{}{1}{type=numeric}{weight=2}
</pre>
<p>
Le niveau de sévérité sera aussi pris en compte lors du
calcul fait et le pourcentage sera pris sur un pourcentage fixé
par le niveau de sévérité.
</p><p>
Il est possible de mettre des variables dans <span class="tt wims_code_words">weight</span>
dans la mesure où elles sont définies avant le <span class="tt wims_code_variable">\statement</span>.
</p><p>
Exemple :
</p>
<pre>
\text{w = \t = 1 ? 1 : 2}
\answer{}{1}{type=numeric}{weight=\w}
\answer{}{1}{type=numeric}{weight=3}
</pre>

<h3 id="option">Le paramètre optionnel <span class="tt wims_code_words">option</span></h3>
 Dans le cas de plusieurs options, elles sont séparées par des espaces.
 Par exemple, <span class="tt wims_code_words">option=split noanalyzeprint</span>

Les options possibles à la suite d'une instruction <span class="tt wims_code_variable">\answer</span>
ou <span class="tt wims_code_variable">\condition</span> sont
<ul>
  <li><span class="tt wims_code_words">option=default=" "</span> : L'option <span class="tt wims_code_words">default</span> est commune à toutes les réponses libres : cette option
  peut prendre la forme <span class="tt wims_code_words">default="valeur_par_défaut"</span>. Si l'utilisateur donne une réponse vide, c'est la valeur_par_défaut
  qui remplace. Un message d'avertissement s'affiche au moment où la réponse est envoyée
  que l'on peut supprimer en rajoutant
  <span class="tt wims_code_words">nocheck</span> dans les mots d'option.
  </li>
  <li>
  <span class="tt wims_code_words">option=split</span> : Dans le cas d'une réponse dont
  le type est <span class="tt wims_code_words">correspond</span>, <span class="tt wims_code_words">checkbox</span> ou <span class="tt wims_code_words">mark</span>, la notation
  tient compte des réponses justes, même si elles ne le sont pas toutes.
  </li>
  <li>
  <span class="tt wims_code_words">option=nonstop</span> : Dans le cas d'un exercice à étapes, les questions
  suivantes sont posées même en cas de réponses fausses.
  </li>
  <li><span class="tt wims_code_words">option=noanalyzeprint</span> : Le texte automatique d'analyse de réponses n'est
  pas affiché. C'est donc à l'auteur de l'exercice de fournir un feedback convenable.
  Cela est utile dans certains types comme le type <span class="tt wims_code_words">mark</span> où le texte automatique
  est souvent inadéquat. Attention, l'analyse des conditions n'est pas non plus affichée.
  Seul le score subsiste.</li>
  <li>A la suite d'une instruction <span class="tt wims_code_words">condition</span>,
  <span class="tt wims_code_words">option=hide</span> : La condition sera utilisée pour l'analyse
  de la réponse mais ne sera pas affichée.
  </li>
</ul>
D'autres options sont utilisables dans des types particuliers de réponses. Pour des précisions,
revenir à la documentation du type de réponse.
!read help/option.phtml

<h3>Condiciones de comprobación</h3>
<p>
Bajo ciertas circunstancias, es deseable que las respuestas de estilo libre
se corrijan según condiciones especiales (preguntas con múltiples respuestas
correctas, ejercicios que pidan ejemplos, respuestas determinadas por
desigualdades, etc). Puede hacerse de la siguiente manera:
</p><p>
Si la respuesta correcta a una pregunta libre es una variable indefinida
hasta ahora,
la respuesta a esta cuestión se asignará en esa variable. La variable
puede usarse en adelante para implementar las condiciones de comprobación. La
puntuación dada al ejercicio se determinará por el número de condiciones
de comprobación que se satisfagan, en lugar del número de respuestas que
coincidan con la respuesta correcta.
</p><p>
Se pueden definir hasta $condlim condiciones simultáneas para un ejercicio,
con la implementación actual. Únicamente las respuestas numéricas
pueden ser corregidas así. La sintaxis es
</p>
<pre>
\condition{texto de la pregunta}{condiciones de comprobación}{weight=...}
</pre>
(el último campo es optional).
 <p>
A continuación presentamos algunos ejemplos de condiciones de comprobación
(<span class="tt wims_code_words">\ans1</span> y <span class="tt wims_code_words">\ans2</span>
son dos variables indefinidas que aparecen
en las definiciones de las respuestas libres, como se describe antes).

!href target=wims_mhelp cmd=help&special_parm=if Lista completa de las relaciones
</p>
$table_header
$table_hdtr<th>Condición<th>significado</th></tr>
$table_tr<td><tt class="wims_code_words">\ans1>=0 and \ans1<=1</tt></td>
    <td>Correcta si <span class="tt wims_code_words">ans1</span> está en el intervalo [0,1].</td></tr>
$table_tr<td class="tt wims_code_words">\ans1=1 or \ans1=3 or \ans1=5</td>
    <td>Correcta si <span class="tt wims_code_words">ans1</span> es 1, 3 o 5.</td></tr>
$table_tr<td class="tt wims_code_words">(\ans1)*(\ans2)=6 and (\ans1)+(\ans2)=5</td>
    <td>Correcta si <span class="tt wims_code_words">ans1</span> y <span class="tt wims_code_words">ans2</span> son las dos
    raíces del polinomio x<sup>2</sup>-5x+6.</td></tr>
$table_tr<td class="tt wims_code_words">sin(\ans1)=0</td>
    <td>Correcta si <span class="tt wims_code_words">ans1</span> es un múltiplo de $m_pi.</td></tr>
$table_end
<p>
Ver la
!href cmd=help&special_parm=oef ayuda sobre el formato OEF
 para ver la sintaxis de la definición de las respuestas.
</p>
