Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
627 schaersvoo 1
 
6133 bpr 2
<h2>Geavanceerd gebruik van OEF</h2>
627 schaersvoo 3
 
4
<h3>Verberg de naam van een plaatje</h3>
5
Als de oefening vraagt om een willekeurige afbeelding te herkennen,
6
geeft de naam van zo'n bestand vaan een aanwijzing.
7
Om de naam te verbergen:
6368 bpr 8
<pre>\img{\imagedir/picture.jpg alt="picture"}</pre>
627 schaersvoo 9
 
10
In het browservenster zal de computervaardige leerling kunnen zien:
17347 bpr 11
<pre>&lt;img src="een_willekeurige_naam" alt="picture"></pre>
627 schaersvoo 12
 
13
De echte bestands naam is dus verborgen voor de leerling.
14
 
8367 bpr 15
<p><b>Opmerking</b>.
627 schaersvoo 16
Het direct gebruik van het WIMS commando <em>rename</em> voor dit doel wordt
17
niet aangeraden: de oefening zal dan onder omstandigheden niet meer functioneren.
7423 bpr 18
</p>
627 schaersvoo 19
<h3>Oefeningen met meerdere stappen</h3>
5903 bpr 20
Een "multi-step" oefening kan met het commando <span class="tt wims_code_variable">\steps</span>
8367 bpr 21
worden geactiveerd.
17514 bpr 22
<br>Bijvoorbeeld:<br>
627 schaersvoo 23
 
24
<pre>\steps{choice 1, reply 1
25
choice 2, reply 2, reply 3
26
choice 3
27
}</pre>
28
 
8367 bpr 29
Hier zal de oefening een 3-tal stappen geven, zo kan de eerste stap
627 schaersvoo 30
een meerkeuze vraag [ choice 1 ] en een open_antwoord [ reply 1 ] verwachten.
31
De tweede stap zal ook een meerkeuze [ choice 2 ] en een tweetal open_antwoorden verwachten [reply 2 , reply 3].
32
De derde en laatste stap is weer een meerkeuze vraag [ choice 3 ] .
33
<p>
5903 bpr 34
De sleutels van het commando <span class="tt wims_code_variable">\steps</span>
627 schaersvoo 35
accepteerd parameters [gedefinieerde variabelen] als ook condities !
17514 bpr 36
<br>
5903 bpr 37
De default instelling van <span class="tt wims_code_variable">\steps</span> is dat een fout in een bepaalde stap de
627 schaersvoo 38
oefening beeindigd, en dat voor de resterende stappen het cijfer 0 wordt gegeven.
8367 bpr 39
Er is de mogelijkheid om hiervan af te wijken.
627 schaersvoo 40
<p>
5903 bpr 41
Het volgnummer van een stap wordt opgeslagen in de variabele <span class="tt wims_code_variable">\step</span>,
627 schaersvoo 42
en is oproepbaar in het <em>statement</em> van de OEF.
5903 bpr 43
De eerste stap geeft dus <span class="tt wims_code_words">\step = 1</span>
44
Als de leerling bezig is met de tweede stap in de OEF wordt de variabele <span class="tt wims_code_words">\step = 2</span> enz.
7423 bpr 45
</p><p>
627 schaersvoo 46
Om met multi-step OEF's nog interactiever te reageren op de antwoorden van leerlingen,
8367 bpr 47
is het commando <span class="tt wims_code_words">\nextstep{...}</span>.
5903 bpr 48
De sleutel die dit commando accepteerd is vergelijkbaar met <span class="tt wims_code_words">\steps{...}</span>
627 schaersvoo 49
Beide commando's mogen niet door elkaar gebruikt worden.
7423 bpr 50
</p>
627 schaersvoo 51
 
52
<h3>Het if-statement en for loops</h3>
53
 
54
Beschikbare commando's:
55
 
56
<pre>
57
\if{condition}{conditie_is_waar_inhoud}
58
\if{condition}{conditie_is_waar_inhoud}{zo_niet_dan_dit}
8367 bpr 59
\ifval{condition}{conditie_is_waar_inhoud}
60
\ifval{condition}{conditie_is_waar_inhoud}{zo_niet_dan_dit}
627 schaersvoo 61
\for{var=n1 to n2}{loop_inhoud}
17514 bpr 62
\while{condition}{loop_inhoud} (alleen in het <span class="tt wims_code_words">main</span> gedeelte van OEF)
627 schaersvoo 63
</pre>
64
 
65
Als deze commando's [behalve de while loop] kunnen overal in OEF worden aangeroepen:
8367 bpr 66
in het <span class="tt wims_code_words">main</span> gedeelte van een OEF script, in het <span class="tt wims_code_words">\statement{}</span>,
67
in de <span class="tt wims_code_words">\hint{}</span>,
5903 bpr 68
de <span class="tt wims_code_words">\solution{}</span> en <span class="tt wims_code_words">\feedback{}</span>
69
Uitzondering is de <span class="tt wims_code_words">\while{}{}</span> loop: deze kan alleen worden gebruikt bij de variabele definities/declaraties in het main gedeelte van een OEF script
5912 bpr 70
<a id="special"></a>
627 schaersvoo 71
 
72
<h3>cpp codering</h3>
73
 
17514 bpr 74
Dit systeem is niet beschikbaar vanuit het Createxo hulpmiddel.<br>
627 schaersvoo 75
Via Modtool kunt U dit systeem inzetten voor het compact produceren van random
8367 bpr 76
oefeningen in OEF of Deductio.
627 schaersvoo 77
<p>
8367 bpr 78
Dit <span class="tt">cpp</span> systeem maakt hergebruik van overeenkomstige code mogelijk:
627 schaersvoo 79
diverse OEF scripten kunnen deze gemeenschappelijke code aanroepen [compile time].
80
En op deze manier is "bulk productie" van oefeningen mogelijk.
7423 bpr 81
</p><p>
627 schaersvoo 82
Om dit systeem te gebruikem moet er eerst een subdirectory src/cpp worden aangemaakt,
83
waarin alle *.cpp scripten worden geplaatst.
8367 bpr 84
U kunt gebruik maken van preproccessor statements als <span class="tt wims_code_words">#include</span> of <span class="tt wims_code_words">#if</span>.
627 schaersvoo 85
(Lees de cpp handleiding voor meer details van de te gebruiken syntax.)
7423 bpr 86
</p><p>
627 schaersvoo 87
De eerste regel van een *.cpp bestand moet een lijst van targets definieren,
88
zoals
7423 bpr 89
</p>
627 schaersvoo 90
<pre>
91
target=oefening_1 oefening_2 oefening_3 ...
92
</pre>
93
Deze regel zorgt ervoor dat het cpp systeem in de <em>src directory</em> de volgende OEF scripten aanmaakt:
94
oefening_1.oef oefening_2.oef oefening_3.oef ...
95
 
96
Wanneer de file <em>oefening_1</em> wordt gegenereerd, het
8367 bpr 97
predicaat <span class="tt">#TARGET</span> wordt defenieerd als <em>oefening_1</em>.
627 schaersvoo 98
(en een macro <em>TARGET_oefening_1</em> wordt eveneens aangemaakt.)
99
Hiertoe kan in de cpp code worden vermeld:
100
<pre>
8367 bpr 101
#if defined TARGET_oefening_1
627 schaersvoo 102
 \title{Opdracht 1}
103
 \integer{v1=3}
104
 \text{t1=dit is target 1}
105
#endif
8367 bpr 106
#if defined TARGET_oefening_2
627 schaersvoo 107
 \title{Opdracht 2}
108
 \integer{v1=5}
109
 \text{t1=dit is target 2}
110
#endif
111
</pre>
112
zodat de inhoud target afhankelijk kan worden.
113
<p>
8559 bpr 114
The name of the file (in the example,
115
<span class="tt wims_code_words">targ1</span>, ...)
116
is available by the variable
117
<span class="tt wims_code_words">OEFFILE</span>.
118
In the following example, the title of the exercise will be
119
<span class="tt wims_code_words">oefening_1</span>
120
</p>
121
<pre>
122
#if defined TARGET_oefening_1
123
 \title{OEFFILE}
124
 \integer{v1=3}
125
 \text{t1=dit is target 1}
126
#endif
127
</pre>
128
<p>
5903 bpr 129
Alle include bestanden met een uitgang <span class="tt">*.inc</span> moeten ook in de directory src/cpp worden geplaatst.
7423 bpr 130
</p><p>
627 schaersvoo 131
De regel
132
<pre>
133
#include "common.inc"
134
</pre>
135
zal de inhoud van de file genaamd common.inc invoegen in het corresponderende OEF script.
136
Let op: om beveiligins redenen is het niet mogelijk het pad naar een include file aan te geven.
137
Ze moeten in dezelde directory worden geplaatst als de cpp bestanden.
138
<p>
17514 bpr 139
Opmerking:<br>
140
De cpp processor raakt in de war als er een oneven aantal aanhalingstekens worden gebruikt.<br>
5903 bpr 141
U kunt gewone opmerkingen bij de code beschermen door (<span class="tt">/* ... */</span>).
7423 bpr 142
</p>
4892 bpr 143
<div class="wims_warning">
4902 schaersvoo 144
<span class="wims_warning">$wims_name_warning</span> : Alle commando's beginnende met een "#", zoals in
5903 bpr 145
<span class="tt">#include</span>, de <span class="tt">#</span> moet het eerste teken zijn op een regel.
8367 bpr 146
Een <span class="tt">#</span> is hier geen kommentaar teken.
4892 bpr 147
</div>
148
 
627 schaersvoo 149
<h3>oefenv en debug</h3>
5903 bpr 150
De speciale omgevings variabele <span class="tt wims_code_variable">\oefenv</span> kan worden gebruikt om het gecompileerde OEF
627 schaersvoo 151
script te testen.
152
<p>
5903 bpr 153
Op dit moment is alleen de variabele <span class="tt wims_code_words">debug</span> actief binnen <span class="tt wims_code_variable">\oefenv</span> in de
627 schaersvoo 154
volgende situaties:
7423 bpr 155
</p>
627 schaersvoo 156
<ol>
157
<li>OEF wordt uitgevoerd binnen het hulpmiddel Createxo.
158
<li>OEF wordt uitgevoerd door de ontwikkelaar zelf binnen het hulpmiddel Modtool
159
<li>OEF is een script binnen een klas [klasse oefening] en als ze wordt uitgevoerd door de supervisor van de klas
160
</ol>
161
Opmerking: in al deze gevallen zal het door uw OEF gedefinieerde goede antwoord worden getoond in het invulveld.
162
<p>
163
De syntax voor het aanroepen van de debug info is :
7423 bpr 164
</p>
627 schaersvoo 165
<pre>
4902 schaersvoo 166
\if{debug iswordof \oefenv}{de gewenste debug informatie }
627 schaersvoo 167
</pre>
168
Deze info wordt automatisch getoond als de oefening wordt getest.
169
Wanneer de oefening in gebruik is door een leerling, wordt deze niet getoond.