Subversion Repositories wimsdev

Rev

Rev 17347 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. <h2>OEFµÄ¸ß¼¶¼¼ÇÉ</h2>
  3.  
  4. <h3>Òþ²ØÍ¼ÐÎÃû³Æ</h3>
  5. Èç¹ûÄãµÄÁ·Ï°ÐèҪʶ±ðËæ»úѡȡµÄͼÐÎ, ͼÐÎÎļþÃû¾ÍÊÇÒ»¸öÖØÒªµÄÌáʾ.
  6. ΪÁËÒþ²Ø´ËÎļþÃû, Äã¿ÉÒÔд in parts
  7. <span class="tt wims_code_variable">statement</span>,
  8. <span class="tt wims_code_variable">feedback</span>, etc
  9.  
  10. <pre>\img{\imagedir/picture.jpg alt="picture"}</pre>
  11.  
  12. ÕâÑùѧÉúÔÚä¯ÀÀÆ÷Àï¿´µ½µÄÊÇ
  13.  
  14. <pre>&lt;img src="a_random_unrelated_file_name" alt="picture"&gt;</pre>
  15.  
  16. ÕæÊµÎļþÃû±»Òþ²ØÁË.
  17.  
  18. <p><b>×¢Òâ</b>. ²»ÒªÖ±½ÓʹÓÃWIMSÃüÁî <em>rename</em> ´¦ÀíÎļþÃû,
  19. ·ñÔòÁ·Ï°½«²»ÄÜÔÚ±»±£´æµÄ»·¾³ÀïÕý³£¹¤×÷.
  20.  
  21. <h3>·Ö²½Á·Ï°</h3>
  22. ·Ö²½Á·Ï°¿Éͨ¹ýÃüÁî <span class="tt">\steps</span> ¶¨Òå. ¾ÙÀýÀ´Ëµ, Èç¹ûÄ㶨Òå
  23.  
  24. <pre>\steps{choice 1, reply 1
  25. choice 2, reply 2, reply 3
  26. choice 3
  27. }</pre>
  28. <p>
  29. ´ËÁ·Ï°½«·Ö³É3²½, µÚÒ»²½ÒªÇó¶àÖØÑ¡Ôñ(choice 1)ÒÔ¼°×ÔÓɸñʽµÄ»Ø´ð(reply 1),
  30. µÚ2²½ÊÇÒ»¸ö¶àÖØÑ¡ÔñÒÔ¼°Á½¸ö×ÔÓɸñʽµÄ»Ø´ðµÄ»Ø´ð, µÈµÈ.
  31. </p><p>
  32. <span class="tt">\steps</span> µÄÄÚÈݽÓÊÜ(Ç°ÃæÒѶ¨ÒåµÄ)²ÎÊýÒÔ¼°Ìõ¼þ¶¨Òå,
  33. ÕýÈç¶Ô²ÎÊýµÄ¶¨ÒåÒ»Ñù. ÕâÑù¾ÍʹµÃÄã¿ÉÒÔÑ¡ÔñÐÔµØÕ¹Ê¾»Ø´ðÀ¸(¸ù¾Ý²ÎÊýµÄËæ»ú±äÁ¿),
  34. ÉõÖÁÖ»º¬Ò»²½µÄÇéÐÎÒ²ÊÇÈç´Ë.
  35. </p><p>
  36. Çë×¢Òâ, Èç¹ûÓû§ÔÚÇ°ÃæµÄ²½ÖèÀï³öÁË´í, ÒÔºóµÄ²½Öè¾Í²»³öÏÖÁË(¿ÉÒÔÈÏΪȫ¶¼´íÁË).
  37. </p><p>
  38. ÔÚÁ·Ï°µÄ³ÂÊöÀï, µ±Ç°µÄ²½Êý¿Éͨ¹ý±äÁ¿ <span class="tt">\step</span> »ñµÃ,
  39. ´Ë±äÁ¿Ëæ×ÅÓû§»Ø´ðµÄ½øÕ¹¶øÖð²½È¡Öµ 1,2,...
  40. </p><p>
  41. ΪÁËÉè¼Æ¶¯Ì¬µÄ·Ö²½Á·Ï°(²½ÊýËæÓû§µÄ»Ø´ð¶ø·¢Éú±ä»¯),
  42. Äã¿ÉÒÔʹÓÃÃüÁî <span class="tt">\nextstep{...}</span>. <span class="tt">\nextstep</span> ÀàËÆÓÚ <span class="tt">\steps</span>,
  43. µ«Ö»ÓеÚÒ»ÐÐÊÇÓÐЧµÄ. Ëü½öµ±ÆäÄÚÈÝÊÇÓÉÕâÑùµÄ±äÁ¿¸ø³öʱ²ÅÄÜʹÓÃ,
  44. Õâ¸ö±äÁ¿Ó¦¸ÃÓÉ post-reply µÄ²ÎÊý¶¨ÒåËù¸Ä±ä.
  45. µ±ÔÚijһ²½Ê± <span class="tt">\nextstep</span> µÄÄÚÈݱä³É¿ÕÁË, Á·Ï°¾ÍÍ£Ö¹ÁË.
  46. </p><p>
  47. ÔÚÈκÎÇéÐÎ, ÔÚÒ»¸öOEFÔ´ÂëÄÚ, ×î¶àÖ»ÄܳöÏÖÒ»¸ö <span class="tt">\steps</span> »ò
  48. <span class="tt">\nextstep</span> µÄÉùÃ÷.
  49. </p>
  50. <h3>Ìõ¼þ·Ö²æÓëÑ­»·</h3>
  51.  
  52. ¿ÉÓõÄÃüÁî:
  53.  
  54. <pre>
  55. \if{Ìõ¼þ}{ifµÄÄÚÈÝ}
  56. \if{Ìõ¼þ}{ifµÄÄÚÈÝ}{ÆäËüÄÚÈÝ}
  57. \ifval{Ìõ¼þ}{ifµÄÄÚÈÝ}
  58. \ifval{Ìõ¼þ}{ifµÄÄÚÈÝ}{ÆäËüÄÚÈÝ}
  59. \for{var=n1 to n2}{Ñ­»·ÄÚÈÝ}
  60. \while{Ìõ¼þ}{Ñ­»·ÄÚÈÝ} (Ö»ÓÃÔÚÖ÷»·¾³)
  61. </pre>
  62.  
  63. ÕâЩÃüÁî(<span class="tt">while</span> ³ýÍâ)¿ÉÒÔ±»ÓÃÓÚ³ÂÊö(<span class="tt">statement</span>)¡¢Ìáʾ(<span class="tt">hint</span>)¡¢½â´ð(<span class="tt">solution</span>)»ò·´À¡(<span class="tt">feedback</span>)ÄÚ,
  64. »òÓÃÓÚÖ÷»·¾³Àï.
  65. ÔÚ×îºóÒ»ÖÖÇéÐÎ, Ìõ¼þÖ´ÐÐÖ»Ó°Ïì²ÎÊýµÄ¶¨Òå.
  66.  
  67. <h3>Ô¤´¦Àí×ÊÔ´</h3>
  68.  
  69. ±¾¹¦Äܲ»ÄÜÓÃÓÚ´´½¨Á·Ï°(createxo). Äã¿ÉÔÚÄ£¿é¹¤¾ß(Modtool)ÏÂʹÓÃËüÀ´Ð´OEF(¼°Deductio)Á·Ï°.
  70. <p>
  71. ËüʹÄã¿ÉÒÔ°ÑÔ´ÂëµÄ¹«¹²²¿·Ö°üº¬ÔÚ¼¸¸öoefÎļþÀï.
  72. ÄãÒ²¿ÉÒÔÀûÓÃËü´ÓÒ»¸öÔ¤×ÊÔ´ÅúÉú³É¼¸¸öoef, ËüÃÇÏ໥֮¼äÏà²îһЩºê¶¨Òå.
  73. </p><p>
  74. ΪʹÓÃÕâ¸ö¹¦ÄÜ, Ó¦ÔÚ src Ͻ¨Á¢Ò»¸ö×ÓĿ¼ cpp/.
  75. Ô¤×ÊÔ´ÎļþÒÔ .cpp ×÷Ϊºó׺·ÅÈë´Ë×ÓĿ¼. ÔÚÕâЩÎļþÀï,
  76. Äã¿ÉÒÔ¼ÓÈë cpp µÄÖ¸ÁîÈç <span class="tt">#include</span> »ò <span class="tt">#if</span>.
  77. (Çë²Î¿´ cpp ÊÖ²á»ò c µÄ˵Ã÷ÒÔÁ˽âÓï·¨ÏêÇé.)
  78. </p><p>
  79. cppÎļþµÄµÚÒ»ÐÐÓ¦¸Ã¶¨ÒåÒ»¸öÄ¿±ê±í, Æä¸ñʽΪ
  80. </p>
  81. <pre>
  82. target=targ1 targ2 targ3 ...
  83. </pre>
  84. ÕâÐÐÃüÁîµÄÒâÒåÊDZ¾cppÎļþ½«Éú³É targ1.oef, targ2.oef, µÈµÈ.
  85. (Êä³öÎļþ»á×Ô¶¯Ìí¼Óºó׺ .oef). ¶øÇÒºê
  86. <em>TARGET_targ1</em> Ò²±»¶¨Òå.
  87. ËùÒÔÔÚcppÔ­ÎļþÀï¿ÉÒÔ¼ÓÈëÈçϵÄÐÐ:
  88. <pre>
  89. #if define TARGET_targ1
  90. \title{Á·Ï°1}
  91.  \integer{v1=3}
  92.  \text{t1=ÕâÊÇtarget 1}
  93. #endif
  94. #if define_TARGET_targ2
  95. \title{Á·Ï°2}
  96.  \integer{v1=5}
  97.  \text{t1=ÕâÊÇtarget 2}
  98. #endif
  99. </pre>
  100. ʹµÃÉú³ÉµÄÄÚÈÝÓëÄ¿±êÓйØ.
  101. <p>
  102. ÎļþÃû (±¾ÀýÖÐÊÇ
  103. <span class="tt wims_code_words">targ1</span>, ...)
  104. ±£´æÔÚÒÔϱäÁ¿Àï
  105. <span class="tt wims_code_words">OEFFILE</span>.
  106. ÔÚÒÔÏÂÀý×ÓÀïÁ·Ï°µÄ±êÌâÊÇ
  107. <span class="tt wims_code_words">targ1</span>
  108. </p>
  109. <pre>
  110. #if defined TARGET_targ1
  111. \title{OEFFILE}
  112.  \integer{v1=3}
  113.  \text{t1=dit is target 1}
  114. #endif
  115. </pre>
  116.  
  117. <p>
  118. °üº¬ÎļþÒ²Ó¦¼ÓÉϺó׺ .inc ºó·Åµ½ src/cpp Ŀ¼Àï. ÃüÁîÐÐ
  119. </p>
  120. <pre>
  121. #include "common.inc"
  122. </pre>
  123. ½«°Ñ common.inc µÄÄÚÈݲåÈëÉú³ÉµÄoefÎļþÀï.
  124. Çë×¢Òâ, ΪÁ˰²È«µÄÔ­Òò, ½ûÖ¹Ö¸Ã÷°üº¬ÎļþµÄĿ¼.
  125. <p>
  126. ÌØ±ðÌáʾ; Èç¹ûÄãµÄcppÎļþµÄÎı¾ÀﺬÓÐδ¹Ø±ÕµÄµ¥ÒýºÅ»òË«ÒýºÅµÄ»°,
  127. cpp»áÏÝÓÚ»ìÂÒ. ÔÚÕâÖÖÇéÐÎ,
  128. Äã¿ÉÒÔÀûÓà c µÄ×¢½â(<span class="tt">/* ... */</span>)°Ñº¬ÓÐÕâÑùÎı¾µÄÃüÁî±£»¤ÆðÀ´.
  129. </p>
  130. <div class="wims_warning">
  131. <span class="wims_warning">$wims_name_warning</span> : ÔÚÒÔ # ÆðÊ×µÄÃüÁî,
  132. Èç <span class="tt">#include</span> Àï, ×Ö·û <span class="tt">#</span> ±ØÐëÊÇÕâÒ»ÐеĵÚÒ»¸ö×Ö·û.
  133. ²»¿ÉÒÔ°Ñ <span class="tt">#</span> ÓÃ×÷×¢½â×Ö·û.
  134. </div>
  135.  
  136. <h3>Á·Ï°»·¾³</h3>
  137. ÌØÊâ±äÁ¿ <span class="tt">\oefenv</span> ¿ÉÓÃÀ´²âÊÔÁ·Ï°µÄ»·¾³(Èç¹ûÔÚÁ·Ï°ÀïûÓжÔËüÖØ¶¨ÒåµÄ»°).
  138. <p>
  139. Ŀǰ´Ë±äÁ¿ÄܲâÊÔµÄÄÚÈÝÖ»ÓÐ
  140. ``debug''. ÔÚÒÔÏÂÇéÐÎÀï, debug½«³öÏÖÔÚ <span class="tt">\oefenv</span> Àï:
  141. </p>
  142. <ol>
  143. <li>µ±ËüÔÚ´´½¨Á·Ï°(createxo)ÄÚÖ´ÐÐʱ.</li>
  144. <li>µ±ËüÔÚÄ£¿é¹¤¾ß(modtool)ÄÚ±»²âÊÔʱ, Ä¿µÄÊÇΪÁË¿ª·¢.</li>
  145. <li>µ±ËüÊǰ༶µÄÁ·Ï°, ¶øÇÒ±»Ö÷³Ö½ÌʦִÐÐʱ.
  146. </li>
  147. </ol>
  148. <p>
  149. ÔÚÕâЩÇéÐÎ, Ðí¶àÀàÐ͵ÄÊäÈëÀ¸Àï¶¼»áÏÔʾÕýÈ·µÄ´ð°¸,
  150. ÈÃÄã¿´µ½Á·Ï°ÆÚÍûµÄ½á¹ûÊÇʲô.
  151. </p><p>
  152. Äã¿ÉÒÔÓÃÒÔÏÂÐÎʽÔÚÁ·Ï°ÀïÌí¼Ó¾À´íÐÅÏ¢
  153. </p><pre>
  154. \if{debug iswordof \oefenv}{ÓûÌí¼ÓµÄ¾À´íÐÅÏ¢}
  155. </pre>
  156. µ±Á·Ï°±»²âÊÔʱ, ÕâЩÐÅÏ¢»á×Ô¶¯ÏÔʾ, ¶øÇÒѧÉú×ö×÷ҵʱÓÖ×Ô¶¯Òþ²Ø.
  157.  
  158.  
  159.