Subversion Repositories wimsdev

Rev

Rev 787 | Rev 2683 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. !set special_list=imagefill,expandlines,rename,help,tooltip
  2.  
  3. <p><center><h2>Possibilités avancées de OEF</h2></center>
  4.  
  5. <h3>Cacher le nom d'images</h3>
  6. Si l'exercice demande de reconnaître une image prise au hasard, le nom de l'image peut donner
  7. une indication à l'exercice. Pour cacher ce nom d'image, vous pouvez écrire
  8.  
  9. <pre>\img{\imagedir/picture.jpg align=middle alt="picture"}</pre>
  10.  
  11. Ainsi dans le source de la page htmp, l'étudiant pourra voir
  12.  
  13. <pre>&lt;img src="a_random_unrelated_file_name" align=middle alt="picture"&gt;</pre>
  14.  
  15. Le vrai nom de l'image est ainsi caché.
  16.  
  17. <p><b>Note</b>. Don't use directly the WIMS command <em>rename</em> to
  18. process the file name, or the exercise won't work correctly under saved
  19. environment.
  20.  
  21. <h3>Exercices à plusieurs étapes</h3>
  22. Des exercices à plusieurs étapes peuvent être conçus grâce à la commande
  23. <tt>\steps</tt>. Par exemple, si vous définissez (parmi d'autres paramètres)
  24.  
  25. <pre>\steps{choice 1, reply 1
  26. choice 2, reply 2, reply 3
  27. choice 3
  28. }</pre>
  29.  
  30. l'exercice sera présenté en trois étapes, la première proposant
  31. un choix multiple (choice 1) et une réponse de type <tt>reply</tt>  (reply 1),
  32. la seconde proposant un choix multiple et deux réponses de type <tt>reply</tt>, etc.
  33. <p>
  34.  
  35. L'argument de <tt>\steps</tt> accepte des paramètres définis auparavant aussi bien que des définitions
  36. conditionnelles de la même manière que pour la définition de paramètres. Cela permet
  37. de présenter des champs de réponses sélectivement selon des variations alétaoires de
  38. paramètres, même dans le cas où il n'y a qu'une seule étape.
  39. <p>
  40. Il faut noter que si une erreur est faite à une étape, les étapes suivantes ne sont pas
  41. proposées et sont donc considérées comme fausses.
  42. <p>
  43. Le numéro de l'étape en cours est accessible dans le champ <tt>statement</tt>
  44. dans la variable
  45. <tt>\step</tt> qui prend donc successivement les valeurs
  46. 1,2,... à mesure que l'utilisateur avances dans ses réponses.
  47. <p>
  48.  
  49. Pour faire des exercices dynamiques à plusieurs étapes
  50. (étapes variant selon les réponses de l'étudiant), vous pouvez utiliser
  51. la commande <tt>\nextstep{...}</tt>. L'argument de
  52. <tt>\nextstep</tt> est semblable à celui de <tt>\steps</tt> mais seule la première
  53. ligne est effective. Elle n'est utile que si cet argument est une variable qui change
  54. après avec les définitions de paramètres après soumission.
  55. L'exercice s'arrête quand le contenu de <tt>\nextstep</tt>  est vide.
  56. <p>
  57. Dans tous les cas, une seule déclaration parmi <tt>\steps</tt> ou <tt>\nextstep</tt>
  58. doit apparaître dans un source OEF.
  59.  
  60. <h3>Branchements conditionnels et boucles</h3>
  61.  
  62. Commandes disponibles:
  63.  
  64. <pre>
  65. \if{condition}{contenu conditionnel}
  66. \if{condition}{contenu_conditionnel}{autre_contenu_conditionnel}
  67. \for{var=n1 to n2}{contenu_de_la_boucle}
  68. \while{condition}{ontenu_de_la_boucle}  (uniquement dans l'environnement principal)
  69. </pre>
  70.  
  71. Les commandes de branchements conditionnels et de boucles peuvent être utilisées  
  72. dans l'environnement principal ou (sauf pour <tt>while</tt>)
  73. à l'intérieur de l'énoncé (<tt>statement</tt>, d'une aide (<tt>hint</tt>),
  74. d'une solution (<tt>solution</tt>), d'un feedback (<tt>feedback</tt>)
  75. feedback.  Lorsque ces commandes sont dans l'environnement principal, elles n'affectent
  76. que la définition de paramètres.
  77.  
  78. <a name=special></a>
  79. <h3>Méthodes spéciales</h3>
  80.  
  81. La commande <tt>\special{...}</tt> dans le corps d'un exercice (<tt>statement</tt>
  82. permet de faire les méthodes suivantes :
  83. <p>
  84. !if $special_parm=all
  85. !for sp in $special_list
  86.  <p><center><h4>La méthode spéciale <tt>$sp</tt></h4></center> <p>
  87.  Syntaxe générale: <tt>\special{$sp <i>paramètres</i>}</tt> <p>
  88.  
  89.  !read oef/special/$sp.phtml help
  90. !next sp
  91. !else
  92. !for sp in $special_list
  93.  !href cmd=help&special_parm=oefadv&special_parm2=$sp#special $sp
  94.  &nbsp;
  95. !next sp
  96. !endif
  97.  
  98. !if $special_parm2 isitemof $special_list
  99. <p><center><h4>La méthode spéciale <tt>$special_parm2</tt></h4></center> <p>
  100. Syntaxe générale : <tt>\special{$special_parm2 <i>parameters</i>}</tt> <p>
  101.  
  102. !read oef/special/$special_parm2.phtml help
  103. !endif
  104.  
  105. <h3>Preprocessed sources</h3>
  106.  
  107. This feature is not available for Createxo. You can use it if you write OEF
  108. (and Deductio) exercises under Modtool.
  109. <p>
  110. It allows you to include common portions of codes into several oef files.
  111. You can also use it to make batch generation of several oefs from one
  112. pre-source, each differing from the others by some macro definitions.
  113. <p>
  114. To use this feature, a subdirectory cpp/ should be created under src. Put
  115. into it pre-source files with extension .cpp. In these files, you can add
  116. cpp directives like <tt>#include</tt> or <tt>#if</tt>. (Please refer to cpp
  117. manual and c specification for details of the syntax.)
  118. <p>
  119. The first line of the cpp file must define a list of targets, in the format
  120. <pre>
  121. target=targ1 targ2 targ3 ...
  122. </pre>
  123. This line means that this cpp file should generate targ1.oef, targ2.org, etc.
  124. (the extension .oef will be
  125. appended to the output names). When generating the target file <em>targ1</em>, the
  126. predicate <tt>#TARGET</tt> will be defined as <em>targ1</em>. (And a macro
  127. <em>TARGET_targ1</em> is also defined.)
  128. Therefore in the cpp source file, you can add lines like
  129. <pre>
  130. #if #TARGET (targ1)
  131. \title{Exercise 1}
  132. \integer{v1=3}
  133. \text{t1=this is target 1}
  134. #endif
  135. #if #TARGET (targ2)
  136. \title{Exercise 2}
  137. \integer{v1=5}
  138. \text{t1=this is target 2}
  139. #endif
  140. </pre>
  141. in order to make the contents target-dependent.
  142. <p>
  143. Include files should also be put into the src/cpp directory, with extension
  144. .inc. And a line
  145. <pre>
  146. #include "common.inc"
  147. </pre>
  148. will insert the content of common.inc into the generated oef file.
  149. Please note that for security reasons, it is prohibited to specify
  150. directories of include files.
  151. <p>
  152. A special remark: cpp gets confused when your file contains single or double
  153. quotes in the text that are not closed. In this case, you can protect the
  154. commands containing such texts by c comments (<tt>/* ... */</tt>).
  155.  
  156. <h3>Environnement dans un exercice</h3>
  157. La variable spéciale  <tt>\oefenv</tt> est utilisée pour tester un exercice
  158. (si elle n'est pas redéfinie dans l'exercice).
  159. <p>
  160. Pour l'instant, le seul contenu possible de cette variable est le mot
  161. ``debug''. Ce mot apparaît à l'intérieur de <tt>\oefenv</tt> dans les situations
  162. suivantes :
  163. <ol>
  164. <li>quand l'exercice est exécuté à l'intérieur de Createxo ;</li>
  165. <li>quand il est testé dans Modtool par le développeur lui-même</li>
  166. <li>quand l'exercice est dans une classe et exécuté par l'administrateur de la classe.
  167. </li>
  168. </ol>
  169. Dans ces cas, la bonne réponse apparaît par défaut dans les champs de réponse
  170. si vous le demandez, vous permettant de voir ce que l'exercice attend comme
  171. réponse sans avoir besoin de remplir vous-même les champs.
  172. <p>
  173. Vous pouvez ajouter des informations de débogage à l'intérieur de votre exercice
  174. en utilisant des conditions comme
  175. <pre>
  176. \if{debug iswordof \oefenv}{informations de débogage à ajouter ici}
  177. </pre>
  178. Ces informations sont alors automatiquement montrées quand l'exercice
  179. est sous test et automatiquement cachées quand les étudiants y travaillent.
  180.  
  181.  
  182.