<p><center><h2>OEFµÄ¸ß¼¶¼¼ÇÉ</h2></center>
<h3>Òþ²ØÍ¼ÐÎÃû³Æ</h3>
Èç¹ûÄãµÄÁ·Ï°ÐèҪʶ±ðËæ»úѡȡµÄͼÐÎ, ͼÐÎÎļþÃû¾ÍÊÇÒ»¸öÖØÒªµÄÌáʾ.
ΪÁËÒþ²Ø´ËÎļþÃû, Äã¿ÉÒÔд
<pre>\img{\imagedir/picture.jpg align=middle alt="picture"}</pre>
ÕâÑùѧÉúÔÚä¯ÀÀÆ÷Àï¿´µ½µÄÊÇ
<pre><img src="a_random_unrelated_file_name" align=middle alt="picture"></pre>
ÕæÊµÎļþÃû±»Òþ²ØÁË.
<p><b>×¢Òâ</b>. ²»ÒªÖ±½ÓʹÓÃWIMSÃüÁî <em>rename</em> ´¦ÀíÎļþÃû,
·ñÔòÁ·Ï°½«²»ÄÜÔÚ±»±£´æµÄ»·¾³ÀïÕý³£¹¤×÷.
<h3>·Ö²½Á·Ï°</h3>
·Ö²½Á·Ï°¿Éͨ¹ýÃüÁî <tt>\steps</tt> ¶¨Òå. ¾ÙÀýÀ´Ëµ, Èç¹ûÄ㶨Òå
<pre>\steps{choice 1, reply 1
choice 2, reply 2, reply 3
choice 3
}</pre>
´ËÁ·Ï°½«·Ö³É3²½, µÚÒ»²½ÒªÇó¶àÖØÑ¡Ôñ(choice 1)ÒÔ¼°×ÔÓɸñʽµÄ»Ø´ð(reply 1),
µÚ2²½ÊÇÒ»¸ö¶àÖØÑ¡ÔñÒÔ¼°Á½¸ö×ÔÓɸñʽµÄ»Ø´ðµÄ»Ø´ð, µÈµÈ.
<p>
<tt>\steps</tt> µÄÄÚÈݽÓÊÜ(Ç°ÃæÒѶ¨ÒåµÄ)²ÎÊýÒÔ¼°Ìõ¼þ¶¨Òå,
ÕýÈç¶Ô²ÎÊýµÄ¶¨ÒåÒ»Ñù. ÕâÑù¾ÍʹµÃÄã¿ÉÒÔÑ¡ÔñÐÔµØÕ¹Ê¾»Ø´ðÀ¸(¸ù¾Ý²ÎÊýµÄËæ»ú±äÁ¿),
ÉõÖÁÖ»º¬Ò»²½µÄÇéÐÎÒ²ÊÇÈç´Ë.
<p>
Çë×¢Òâ, Èç¹ûÓû§ÔÚÇ°ÃæµÄ²½ÖèÀï³öÁË´í, ÒÔºóµÄ²½Öè¾Í²»³öÏÖÁË(¿ÉÒÔÈÏΪȫ¶¼´íÁË).
<p>
ÔÚÁ·Ï°µÄ³ÂÊöÀï, µ±Ç°µÄ²½Êý¿Éͨ¹ý±äÁ¿ <tt>\step</tt> »ñµÃ,
´Ë±äÁ¿Ëæ×ÅÓû§»Ø´ðµÄ½øÕ¹¶øÖð²½È¡Öµ 1,2,...
<p>
ΪÁËÉè¼Æ¶¯Ì¬µÄ·Ö²½Á·Ï°(²½ÊýËæÓû§µÄ»Ø´ð¶ø·¢Éú±ä»¯),
Äã¿ÉÒÔʹÓÃÃüÁî <tt>\nextstep{...}</tt>. <tt>\nextstep</tt> ÀàËÆÓÚ <tt>\steps</tt>,
µ«Ö»ÓеÚÒ»ÐÐÊÇÓÐЧµÄ. Ëü½öµ±ÆäÄÚÈÝÊÇÓÉÕâÑùµÄ±äÁ¿¸ø³öʱ²ÅÄÜʹÓÃ,
Õâ¸ö±äÁ¿Ó¦¸ÃÓÉ post-reply µÄ²ÎÊý¶¨ÒåËù¸Ä±ä.
µ±ÔÚijһ²½Ê± <tt>\nextstep</tt> µÄÄÚÈݱä³É¿ÕÁË, Á·Ï°¾ÍÍ£Ö¹ÁË.
<p>
ÔÚÈκÎÇéÐÎ, ÔÚÒ»¸öOEFÔ´ÂëÄÚ, ×î¶àÖ»ÄܳöÏÖÒ»¸ö <tt>\steps</tt> »ò
<tt>\nextstep</tt> µÄÉùÃ÷.
<h3>Ìõ¼þ·Ö²æÓëÑ»·</h3>
¿ÉÓõÄÃüÁî:
<pre>
\if{Ìõ¼þ}{ifµÄÄÚÈÝ}
\if{Ìõ¼þ}{ifµÄÄÚÈÝ}{ÆäËüÄÚÈÝ}
\for{var=n1 to n2}{Ñ»·ÄÚÈÝ}
\while{Ìõ¼þ}{Ñ»·ÄÚÈÝ} (Ö»ÓÃÔÚÖ÷»·¾³)
</pre>
ÕâЩÃüÁî(<tt>while</tt> ³ýÍâ)¿ÉÒÔ±»ÓÃÓÚ³ÂÊö(<tt>statement</tt>)¡¢Ìáʾ(<tt>hint</tt>)¡¢½â´ð(<tt>solution</tt>)»ò·´À¡(<tt>feedback</tt>)ÄÚ,
»òÓÃÓÚÖ÷»·¾³Àï.
ÔÚ×îºóÒ»ÖÖÇéÐÎ, Ìõ¼þÖ´ÐÐÖ»Ó°Ïì²ÎÊýµÄ¶¨Òå.
<a name=special></a>
<h3>ÌØÊâ·½·¨</h3>
ÔÚÁ·Ï°µÄ³ÂÊö(<tt>statement</tt>)ÀïÀûÓÃÃüÁî <tt>\special{...}</tt>
¿ÉÓÐÏÂÁÐÌØÊâ·½·¨:
<p>
!if $special_parm=all
!for sp in $special_list
<p><center><h4>ÌØÊâ·½·¨ <tt>$sp</tt></center></h4> <p>
Ò»°ãÓï·¨: <tt>\special{$sp <i>²ÎÊý</i>}</tt> <p>
!read oef/special/$sp.phtml help
!else
!for sp in $special_list
!href cmd=help&special_parm=oefadv&special_parm2=$sp#special $sp
!endif
!if $special_parm2 isitemof $special_list
<p><center><h4>ÌØÊâ·½·¨ <tt>$special_parm2</tt></center></h4> <p>
Ò»°ãÓï·¨: <tt>\special{$special_parm2 <i>²ÎÊý</i>}</tt> <p>
!read oef/special/$special_parm2.phtml help
!endif
<h3>Ô¤´¦Àí×ÊÔ´</h3>
±¾¹¦Äܲ»ÄÜÓÃÓÚ´´½¨Á·Ï°(createxo). Äã¿ÉÔÚÄ£¿é¹¤¾ß(Modtool)ÏÂʹÓÃËüÀ´Ð´OEF(¼°Deductio)Á·Ï°.
<p>
ËüʹÄã¿ÉÒÔ°ÑÔ´ÂëµÄ¹«¹²²¿·Ö°üº¬ÔÚ¼¸¸öoefÎļþÀï.
ÄãÒ²¿ÉÒÔÀûÓÃËü´ÓÒ»¸öÔ¤×ÊÔ´ÅúÉú³É¼¸¸öoef, ËüÃÇÏ໥֮¼äÏà²îһЩºê¶¨Òå.
<p>
ΪʹÓÃÕâ¸ö¹¦ÄÜ, Ó¦ÔÚ src Ͻ¨Á¢Ò»¸ö×ÓĿ¼ cpp/.
Ô¤×ÊÔ´ÎļþÒÔ .cpp ×÷Ϊºó׺·ÅÈë´Ë×ÓĿ¼. ÔÚÕâЩÎļþÀï,
Äã¿ÉÒÔ¼ÓÈë cpp µÄÖ¸ÁîÈç <tt>#include</tt> »ò <tt>#if</tt>.
(Çë²Î¿´ cpp ÊÖ²á»ò c µÄ˵Ã÷ÒÔÁ˽âÓï·¨ÏêÇé.)
<p>
cppÎļþµÄµÚÒ»ÐÐÓ¦¸Ã¶¨ÒåÒ»¸öÄ¿±ê±í, Æä¸ñʽΪ
<pre>
target=targ1 targ2 targ3 ...
</pre>
ÕâÐÐÃüÁîµÄÒâÒåÊDZ¾cppÎļþ½«Éú³É targ1.oef, targ2.oef, µÈµÈ.
(Êä³öÎļþ»á×Ô¶¯Ìí¼Óºó׺ .oef). ÔÚÉú³ÉÄ¿±êÎļþ <em>targ1</em> ʱ,
ν´Ê <tt>#TARGET</tt> »á±»¶¨ÒåΪ <em>targ1</em>. (¶øÇÒºê
<em>TARGET_targ1</em> Ò²±»¶¨Òå.)
ËùÒÔÔÚcppÔÎļþÀï¿ÉÒÔ¼ÓÈëÈçϵÄÐÐ:
<pre>
#if #TARGET (targ1)
\title{Á·Ï°1}
\integer{v1=3}
\text{t1=ÕâÊÇtarget 1}
#endif
#if #TARGET (targ2)
\title{Á·Ï°2}
\integer{v1=5}
\text{t1=ÕâÊÇtarget 2}
#endif
</pre>
ʹµÃÉú³ÉµÄÄÚÈÝÓëÄ¿±êÓйØ.
<p>
°üº¬ÎļþÒ²Ó¦¼ÓÉϺó׺ .inc ºó·Åµ½ src/cpp Ŀ¼Àï. ÃüÁîÐÐ
<pre>
#include "common.inc"
</pre>
½«°Ñ common.inc µÄÄÚÈݲåÈëÉú³ÉµÄoefÎļþÀï.
Çë×¢Òâ, ΪÁ˰²È«µÄÔÒò, ½ûÖ¹Ö¸Ã÷°üº¬ÎļþµÄĿ¼.
<p>
ÌØ±ðÌáʾ; Èç¹ûÄãµÄcppÎļþµÄÎı¾ÀﺬÓÐδ¹Ø±ÕµÄµ¥ÒýºÅ»òË«ÒýºÅµÄ»°,
cpp»áÏÝÓÚ»ìÂÒ. ÔÚÕâÖÖÇéÐÎ,
Äã¿ÉÒÔÀûÓà c µÄ×¢½â(<tt>/* ... */</tt>)°Ñº¬ÓÐÕâÑùÎı¾µÄÃüÁî±£»¤ÆðÀ´.
<h3>Á·Ï°»·¾³</h3>
ÌØÊâ±äÁ¿ <tt>\oefenv</tt> ¿ÉÓÃÀ´²âÊÔÁ·Ï°µÄ»·¾³(Èç¹ûÔÚÁ·Ï°ÀïûÓжÔËüÖØ¶¨ÒåµÄ»°).
<p>
Ŀǰ´Ë±äÁ¿ÄܲâÊÔµÄÄÚÈÝÖ»ÓÐ
``debug''. ÔÚÒÔÏÂÇéÐÎÀï, debug½«³öÏÖÔÚ <tt>\oefenv</tt> Àï:
<ol>
<li>µ±ËüÔÚ´´½¨Á·Ï°(createxo)ÄÚÖ´ÐÐʱ.</li>
<li>µ±ËüÔÚÄ£¿é¹¤¾ß(modtool)ÄÚ±»²âÊÔʱ, Ä¿µÄÊÇΪÁË¿ª·¢.</li>
<li>µ±ËüÊǰ༶µÄÁ·Ï°, ¶øÇÒ±»Ö÷³Ö½ÌʦִÐÐʱ.
</li>
</ol>
ÔÚÕâЩÇéÐÎ, Ðí¶àÀàÐ͵ÄÊäÈëÀ¸Àï¶¼»áÏÔʾÕýÈ·µÄ´ð°¸,
ÈÃÄã¿´µ½Á·Ï°ÆÚÍûµÄ½á¹ûÊÇʲô.
<p>
Äã¿ÉÒÔÓÃÒÔÏÂÐÎʽÔÚÁ·Ï°ÀïÌí¼Ó¾À´íÐÅÏ¢
<pre>
\if{debug iswordof \oefenv}{ÓûÌí¼ÓµÄ¾À´íÐÅÏ¢}
</pre>
µ±Á·Ï°±»²âÊÔʱ, ÕâЩÐÅÏ¢»á×Ô¶¯ÏÔʾ, ¶øÇÒѧÉú×ö×÷ҵʱÓÖ×Ô¶¯Òþ²Ø.