Warning, /education/kturtle/po/nl/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.

0001 <chapter id="reference">
0002 <title
0003 >Programmeren met &turtlescript;</title>
0004 <para
0005 >Dit is het overzicht van &turtlescript; van &kturtle;. In het eerste deel van dit hoofdstuk kijken we naar enkele aspecten van de <link linkend="grammar"
0006 >grammatica</link
0007 > van &turtlescript;-programma's. Het tweede deel behandelt uitsluitend <link linkend="mathematical-operators"
0008 >rekenkundige bewerkingen</link
0009 >, <link linkend="boolean-operators"
0010 >booleaanse (waar/onwaar) bewerkingen</link
0011 > en <link linkend="comparing-operators"
0012 >vergelijkingsbewerkingen</link
0013 >. Het derde deel is eigenlijk een lange lijst van alle <link linkend="commands"
0014 >opdrachten</link
0015 >, die een voor een worden uitgelegd. In deel vier wordt uitgelegd hoe waarden kunnen worden <link linkend="assignment-of-variables"
0016 >toegekend</link
0017 > (gegeven) aan <link linkend="assignment-of-variables"
0018 >variabelen</link
0019 >. Tenslotte leggen we uit hoe de uitvoering van de opdrachten kan worden gestuurd met <link linkend="controlling-execution"
0020 >programmastuuropdrachten</link
0021 > in deel vijf en hoe zelf opdrachten te maken met <link linkend="learn"
0022 >leer</link
0023 > in deel zes.</para>
0024 
0025 <sect1 id="grammar">
0026 <title
0027 >De grammatica van &turtlescript;</title>
0028 <para
0029 >Zoals elke taal heeft ook &turtlescript; verschillende soorten woorden en tekens. In het Nederlands kennen we werkwoorden (zoals 'lopen' of 'zingen') en zelfstandige naamwoorden (zoals 'zuster' of 'huis'), zij worden verschillend gebruikt. &turtlescript; is een programmeertaal, en wordt gebruikt om &kturtle; te vertellen wat er moet gebeuren.</para>
0030 <para
0031 >In dit deel worden de verschillende soorten woorden en tekens in &turtlescript; kort uitgelegd. We leggen uit wat <link linkend="comment"
0032 >commentaar</link
0033 > is, <link linkend="command"
0034 >opdrachten</link
0035 > en de drie verschillende soorten van waarden: <link linkend="number"
0036 >getallen</link
0037 >, <link linkend="string"
0038 >tekenreeksen</link
0039 > en <link linkend="boolean-value"
0040 >booleaanse (waar/onwaar) waarden</link
0041 >.</para>
0042 
0043 
0044 <sect2 id="comment">
0045 <title
0046 >Commentaar</title>
0047 <para
0048 >Een programma bestaat uit instructies die worden uitgevoerd als het programma loopt, én zogenoemd commentaar. Commentaar wordt niet uitgevoerd, maar wordt door &kturtle; domweg genegeerd bij het uitvoeren van het programma. Commentaar dient om andere programmeurs (en je zelf, op een later tijdstip) je programma beter te laten begrijpen. Alles dat op een regel volgt na een hekje (<userinput
0049 >#</userinput
0050 >), wordt in &turtlescript; opgevat als commentaar. <screen>
0051 # Dit kleine programma bevat alleen commentaar en doet dus helemaal niets!
0052 </screen
0053 >. Het is wat nutteloos, maar geeft een en ander goed weer.</para>
0054 <para
0055 >Commentaar is erg nuttig wanneer een programma wat ingewikkelder gaat worden. Hierin kan aan andere programmeurs iets worden verteld. In het volgende programma zie je hoe commentaar wordt gebruikt bij het commando <link linkend="print"
0056 >druk</link
0057 >. <screen>
0058 # dit programma werd gemaakt door Cies Breijs.
0059 druk "deze tekst wordt op het canvas afgedrukt"
0060 # de vorige regel was geen commentaar,maar de volgende wel:
0061 # druk "deze tekst wordt niet afgedrukt!"
0062 </screen
0063 >. De eerste regel geeft wat toelichting bij het programma. De tweede wordt door &kturtle; uitgevoerd, en drukt <userinput
0064 >deze tekst wordt op het canvas afgedrukt</userinput
0065 > af op het canvas. De derde regel bevat commentaar. En de vierde regel bevat commentaar meteen stukje &turtlescript;. Als het teken <userinput
0066 >#</userinput
0067 > dat ervoor staat wordt weggehaald, zal &kturtle; ook deze regel uitvoeren, maar met het hekje ervoor niet. Door een hekje ervoor wordt een programmaregel dus uitgeschakeld. </para>
0068 <para
0069 >Commentaarregels worden <glossterm
0070 >geaccentueerd</glossterm
0071 > met lichtgrijs in de <link linkend="the-editor"
0072 >codebewerker</link
0073 >.</para>
0074 </sect2>
0075 
0076 <sect2 id="command">
0077 <title
0078 >Opdrachten</title>
0079 <para
0080 >Met opdrachten kun je de schildpad of &kturtle; opdragen iets te doen.  Bij sommige opdrachten is invoer nodig, en andere geven uitvoer. <screen>
0081 # vooruit is een commando dat invoer nodig heeft, in dit geval het getal 100:
0082 vooruit 100
0083 </screen
0084 > De eerste regel is <link linkend="comment"
0085 >commentaar</link
0086 >. De tweede bevat het commando <userinput
0087 >vooruit</userinput
0088 >, en de invoer is het <link linkend="number"
0089 >getal</link
0090 > <userinput
0091 >100</userinput
0092 >. Het getal wordt niet beschouwd als een deel van het commando, maar als invoer.</para>
0093 <para
0094 >Voor sommige opdrachten &eg; <userinput
0095 >ganaar</userinput
0096 > zijn meerdere invoerwaarden nodig. Deze moeten door een <userinput
0097 >,</userinput
0098 > (komma) worden gescheiden.</para>
0099 <para
0100 >Meer informatie over alle opdrachten die &kturtle; van huis uit kent vind je <link linkend="commands"
0101 >hier</link
0102 >. Deze ingebouwde opdrachten worden met donkerblauw <glossterm
0103 >geaccentueerd</glossterm
0104 ></para>
0105 </sect2>
0106 
0107 <sect2 id="number">
0108 <title
0109 >Getallen</title>
0110 <para
0111 >Getallen ken je vast wel. De manier waarop getallen worden gebruikt in &kturtle; is niet veel anders dan in een spreektaal, of bij het rekenen. Maar er is wel een verschil: ze worden niet met komma's, maar met punten geschreven. Dit is omdat met een komma twee getallen van elkaar worden gescheiden, zodat 2,5 twee getallen, 2 en 5, zijn. Je moet dus 2.5 schrijven, als je maar één getal bedoelt.</para>
0112 <para
0113 >Er zijn ook de natuurlijke getallen: <userinput
0114 >0</userinput
0115 >, <userinput
0116 >1</userinput
0117 >, <userinput
0118 >2</userinput
0119 >, <userinput
0120 >3</userinput
0121 >, <userinput
0122 >4</userinput
0123 >, <userinput
0124 >5</userinput
0125 >, &etc; De negatieve getallen: <userinput
0126 >-1</userinput
0127 >, <userinput
0128 >-2</userinput
0129 >, <userinput
0130 >-3</userinput
0131 >, &etc;.  En de kommagetallen zoals: <userinput
0132 >0,1</userinput
0133 >, <userinput
0134 >3,14</userinput
0135 >, <userinput
0136 >33,3333</userinput
0137 >, <userinput
0138 >-5,05</userinput
0139 >, <userinput
0140 >-1,0</userinput
0141 >. De <userinput
0142 >.</userinput
0143 > punt is het scheidingsteken   voor decimalen: de cijfers achter de komma. </para>
0144 <para
0145 >Getallen kunnen worden gebruikt in <link linkend="mathematical-operators"
0146 >rekenkundige bewerkingen</link
0147 > en <link linkend="comparing-operators"
0148 >vergelijkingsbewerkingen</link
0149 >. Ze kunnen ook worden bewaard in <link linkend="assignment-of-variables"
0150 >variabelen</link
0151 >. Getallen worden <glossterm
0152 >geaccentueerd</glossterm
0153 > in donkerrood.</para>
0154 </sect2>
0155 
0156 <!-- constants like pi? -->
0157 
0158 <sect2 id="string">
0159 <title
0160 >Tekenreeksen</title>
0161 <para
0162 >Eerst een voorbeeld:<screen>
0163 druk "Hallo, ik ben een tekenreeks."
0164 </screen
0165 > In dit voorbeeld is <userinput
0166 >druk</userinput
0167 > een commando en <userinput
0168 >"Hallo, ik ben een tekenreeks"</userinput
0169 > een tekenreeks. Een tekenreeks begint en eindigt met het teken <userinput
0170 >"</userinput
0171 >. Hierdoor weet &kturtle; dat dit een tekenreeks is.</para>
0172 <para
0173 >Tekenreeksen kunnen in <link linkend="assignment-of-variables"
0174 >variabelen</link
0175 > worden bewaard, net zoals <link linkend="number"
0176 >getallen</link
0177 >. Maar, anders dan getallen, kunnen tekenreeksen niet in <link linkend="mathematical-operators"
0178 >berekeningen</link
0179 > of <link linkend="comparing-operators"
0180 >vergelijkingsbewerkingen</link
0181 > worden gebruikt. Tekenreeksen worden met rood <glossterm
0182 >geaccentueerd</glossterm
0183 >.</para>
0184 </sect2>
0185 
0186 <sect2 id="boolean-value">
0187 <title
0188 >Booleaanse waarden (waar/onwaar)</title>
0189 <para
0190 >Er zijn maar twee booleaanse waarden: <userinput
0191 >waar</userinput
0192 ><indexterm
0193 ><primary
0194 >waar</primary
0195 ></indexterm
0196 > en <userinput
0197 >onwaar</userinput
0198 ><indexterm
0199 ><primary
0200 >onwaar</primary
0201 ></indexterm
0202 >. Ze worden ook wel genoemd: <quote
0203 ><userinput
0204 >aan</userinput
0205 ></quote
0206 > en <quote
0207 ><userinput
0208 >uit</userinput
0209 ></quote
0210 >, <quote
0211 ><userinput
0212 >ja</userinput
0213 ></quote
0214 > en <quote
0215 ><userinput
0216 >nee</userinput
0217 ></quote
0218 >, <quote
0219 ><userinput
0220 >een</userinput
0221 ></quote
0222 > en <quote
0223 ><userinput
0224 >nul</userinput
0225 ></quote
0226 >. Maar in &turtlescript; worden zij altijd , <userinput
0227 >waar</userinput
0228 > en <userinput
0229 >onwaar</userinput
0230 > genoemd. Bekijk dit stukje &turtlescript;: <screen>
0231 $a = waar
0232 </screen
0233 > In de <link linkend="the-inspector"
0234 >Inspector</link
0235 > kun je zien dat de <link linkend="assignment-of-variables"
0236 >variabele</link
0237 > <userinput
0238 >$a</userinput
0239 > de waarde <userinput
0240 >waar</userinput
0241 > heeft, en booleaans is.</para>
0242 <para
0243 >Vaak zijn booleaanse waarden het resultaat van <link linkend="comparing-operators"
0244 >vergelijkingsbewerkingen</link
0245 >, zoals in het volgende stukje  &turtlescript;: <screen>
0246 $antwoord = 10 &gt; 3
0247 </screen
0248 > De <link linkend="assignment-of-variables"
0249 >variabele</link
0250 > <userinput
0251 >$antwoord</userinput
0252 > krijgt de waarde <userinput
0253 >waar</userinput
0254 > omdat <userinput
0255 >10</userinput
0256 > inderdaad groter is dan <userinput
0257 >3</userinput
0258 >.</para>
0259 <para
0260 >Booleaanse waarden, <userinput
0261 >waar</userinput
0262 > en <userinput
0263 >onwaar</userinput
0264 >, worden met donkerrood <glossterm
0265 >geaccentueerd</glossterm
0266 >.</para>
0267 </sect2>
0268 
0269 </sect1>
0270 
0271 
0272 
0273 <sect1 id="operators">
0274 <title
0275 >Rekenkundige, booleaanse en vergelijkingsbewerkingen</title>
0276 <para
0277 >De naam van dit deel klinkt misschien moeilijk, maar het valt allemaal best mee.</para>
0278 
0279 <sect2 id="mathematical-operators">
0280 <title
0281 >Rekenkundige bewerkingen</title>
0282 <para
0283 >Dit zijn de basisbewerkingen van het rekenen: optellen (<userinput
0284 >+</userinput
0285 >), aftrekken (<userinput
0286 >-</userinput
0287 >), vermenigvuldigen (<userinput
0288 >*</userinput
0289 >), delen (<userinput
0290 >/</userinput
0291 >) en machtsverheffen (<userinput
0292 >^</userinput
0293 >).</para>
0294 
0295 <para
0296 >Hier is een klein voorbeeld van het gebruik van rekenkundige bewerkingen in &turtlescript;: <screen>
0297 $optellen                = 1 + 1
0298 $aftrekken              = 20 - 5
0299 $vermenigvuldigen = 15 * 2
0300 $delen                    = 30 / 30
0301 $machtsverheffen   = 2 ^ 2
0302 </screen
0303 > De waarden die deze bewerkingen opleveren worden <link linkend="assignment-of-variables"
0304 >toegekend</link
0305 > aan de verschillende <link linkend="assignment-of-variables"
0306 >variabelen</link
0307 > (die je willekeurige $namen kunt geven). In de <link linkend="the-inspector"
0308 >inspectie</link
0309 > kun je deze waarden zien.</para>
0310 <para
0311 >Als je alleen maar een eenvoudige berekening wilt laten doen, dan kan dat bijvoorbeeld zo: <screen
0312 >druk 2010-12
0313 </screen
0314 ></para>
0315 <para
0316 >Nu een voorbeeld met haakjes: <screen>
0317 druk ( ( 20 - 5 ) * 2 / 30 ) + 1
0318 </screen
0319 > Het gedeelte tussen de binnenste haakjes wordt het eerst  uitgerekend. In dit voorbeeld wordt 20 - 5 berekend, dan wordt de uitkomst vermenigvuldigd met 2, en daarna wordt er gedeeld door 30. Tot slot wordt er 1 bij opgeteld (het antwoord is 2). Haakjes kunnen ook in andere gevallen worden gebruikt.</para>
0320 <para
0321 >&kturtle; heeft ook nog wat wiskundige eigenschappen in de vorm van opdrachten. Kijk maar eens naar de volgende opdrachten, die, let op, wel wat gevorderd zijn: <link linkend="round"
0322 >afronden</link
0323 >, <link linkend="random"
0324 >gok</link
0325 >, <link linkend="sqrt"
0326 >wortel</link
0327 > , <link linkend="pi"
0328 >pi</link
0329 >, <link linkend="sin"
0330 >sin</link
0331 >, <link linkend="cos"
0332 >cos</link
0333 >, <link linkend="tan"
0334 >tan</link
0335 >, <link linkend="arcsin"
0336 >arcsin</link
0337 >, <link linkend="arccos"
0338 >arccos</link
0339 >, <link linkend="arctan"
0340 >arctan</link
0341 >.</para>
0342 </sect2>
0343 
0344 <sect2 id="boolean-operators">
0345 <title
0346 >Booleaanse bewerkingen (waar/onwaar)</title>
0347 <para
0348 >Waar <link linkend="mathematical-operators"
0349 >wiskundige bewerkingen</link
0350 > vooral werken met<link linkend="number"
0351 >getallen</link
0352 >, werken booleaanse bewerkingen met de <link linkend="boolean-value"
0353 >booleaanse waarden</link
0354 > (<userinput
0355 >waar</userinput
0356 > en <userinput
0357 >onwaar</userinput
0358 >). Er zijn slechts drie booleaanse bewerkingen, namelijk: <userinput
0359 >en</userinput
0360 ><indexterm
0361 ><primary
0362 >en</primary
0363 ></indexterm
0364 >, <userinput
0365 >of</userinput
0366 ><indexterm
0367 ><primary
0368 >of</primary
0369 ></indexterm
0370 >, en <userinput
0371 >niet</userinput
0372 ><indexterm
0373 ><primary
0374 >niet</primary
0375 ></indexterm
0376 >. In het volgende stuk &turtlescript; kan je zien hoe dit te gebruiken: <screen>
0377 $and_1_1 = waar en waar          # -> waar
0378 $and_1_0 = waar en onwaar      # -> onwaar
0379 $and_0_1 = onwaar en waar      # -> onwaar
0380 $and_0_0 = onwaar en onwaar  # -> onwaar
0381 
0382 $or_1_1 = waar of waar              # -> waar
0383 $or_1_0 = waar of onwaar          # -> waar
0384 $or_0_1 = onwaar of waar          # -> waar
0385 $or_0_0 = onwaar of onwaar      # -> onwaar
0386 
0387 $not_1 = niet waar      # -> onwaar
0388 $not_0 = niet onwaar  # -> waar
0389 </screen
0390 > Met behulp van de <link linkend="the-inspector"
0391 >inspector</link
0392 > kan je de waarden zien, maar we geven toch de resultaten aan als commentaar aan het einde van de regels. <userinput
0393 >en</userinput
0394 > wordt alleen <userinput
0395 >waar</userinput
0396 > als beide booleaanse waarden<userinput
0397 >waar</userinput
0398 > zijn. <userinput
0399 >of</userinput
0400 > wordt alleen <userinput
0401 >onwaar</userinput
0402 >als beide booleaanse waarden <userinput
0403 >onwaar</userinput
0404 > zijn. En <userinput
0405 >niet</userinput
0406 > verandert een <userinput
0407 >waar</userinput
0408 > in <userinput
0409 >onwaar</userinput
0410 > en een <userinput
0411 >onwaar</userinput
0412 > in <userinput
0413 >waar</userinput
0414 >.</para>
0415 <para
0416 >Booleaanse bewerkingen worden <glossterm
0417 >geaccentueerd</glossterm
0418 > met roze.</para>
0419 
0420 <sect3 id="boolean-operators-advanced-examples">
0421 <title
0422 >Enkele meer gevorderde voorbeelden</title>
0423 <para
0424 >Kijk naar het volgende voorbeeld met <userinput
0425 >en</userinput
0426 >: <screen>
0427 $a = 1
0428 $b = 5
0429 als (($a &lt; 10) en ($b == 5)) en ($a &lt; $b) {
0430   druk "hallo"
0431 }
0432 </screen
0433 > In dit stukje &turtlescript; worden de antwoorden van drie <link linkend="comparing-operators"
0434 >vergelijkingsbewerkingen</link
0435 > samengevoegd door bewerkingen met <userinput
0436 >en</userinput
0437 >. Dit betekent dat ze alle drie "waar" moeten zijn, voordat de tekst "hallo" wordt afgedrukt (op het scherm).</para>
0438 
0439 <para
0440 >Een voorbeeld met <userinput
0441 >of</userinput
0442 >: <screen>
0443 $n = 1
0444 if ($n &lt; 10) or ($n == 2) {
0445   print "hallo"
0446 }
0447 </screen
0448 > In dit stukje &turtlescript; is links van <userinput
0449 >of</userinput
0450 > de vergelijking 'waar', en rechts  'onwaar'. Omdat één van de twee zijden van <userinput
0451 >of</userinput
0452 >  'waar' is, is hier het resultaat van <userinput
0453 >of</userinput
0454 > de waarde 'waar'.  En dus wordt "hallo" afgedrukt (op het scherm).</para>
0455 
0456 <para
0457 >En tenslotte een voorbeeld met <userinput
0458 >niet</userinput
0459 >, die de waarde <quote
0460 >waar</quote
0461 >verandert naar  <quote
0462 >onwaar</quote
0463 > en <quote
0464 >onwaar</quote
0465 > naar <quote
0466 >waar</quote
0467 >. Kijk maar: <screen
0468 >$n = 1
0469 als niet ($n == 3) {
0470   druk "hallo"
0471 } anders {
0472   druk "niet hallo ;-)"
0473 }
0474 </screen
0475 ></para>
0476 </sect3>
0477 </sect2>
0478 
0479 <sect2 id="comparing-operators">
0480 <title
0481 >Vergelijkingsbewerkingen</title>
0482 <para
0483 >Kijk naar deze eenvoudige vergelijking: <screen>
0484 $antwoord = 10 &gt; 3
0485 </screen
0486 > Hier wordt <userinput
0487 >10</userinput
0488 > vergeleken met <userinput
0489 >3</userinput
0490 > met de bewerking 'groter dan'. Het resultaat van deze vergelijking, de <link linkend="boolean-value"
0491 >booleaanse waarde</link
0492 > <userinput
0493 >waar</userinput
0494 > wordt bewaard in de <link linkend="assignment-of-variables"
0495 >variabele</link
0496 > <userinput
0497 >$antwoord</userinput
0498 >.</para>
0499 <para
0500 >Alle <link linkend="number"
0501 >getallen</link
0502 > en <link linkend="assignment-of-variables"
0503 >variabelen</link
0504 > (die getallen bevatten) kunnen met deze vergelijkingsbewerkingen met elkaar worden vergeleken.</para>
0505 <para
0506 >Hier vind je alle vergelijkingsbewerkingen: <table
0507 > <title
0508 > Vragen:</title
0509 > <tgroup cols="3"
0510 > <tbody
0511 > <row
0512 > <entry
0513 ><userinput
0514 >$A == $B</userinput
0515 ></entry
0516 > <entry
0517 >gelijk aan</entry
0518 > <entry
0519 >antwoord is is <quote
0520 >waar</quote
0521 > als <userinput
0522 >$A</userinput
0523 > gelijk is aan <userinput
0524 >$B</userinput
0525 ></entry
0526 > </row
0527 > <row
0528 > <entry
0529 ><userinput
0530 >$A != $B</userinput
0531 ></entry
0532 > <entry
0533 >niet gelijk is </entry
0534 > <entry
0535 >antwoord is <quote
0536 >waar</quote
0537 > als<userinput
0538 >$A</userinput
0539 > niet gelijk is aan <userinput
0540 >$B</userinput
0541 ></entry
0542 > </row
0543 > <row
0544 > <entry
0545 ><userinput
0546 >$A &gt; $B</userinput
0547 ></entry
0548 > <entry
0549 >groter dan</entry
0550 > <entry
0551 >antwoord is <quote
0552 >waar</quote
0553 > als <userinput
0554 >$A</userinput
0555 > groter is dan <userinput
0556 >$B</userinput
0557 ></entry
0558 > </row
0559 > <row
0560 > <entry
0561 ><userinput
0562 >$A &lt; $B</userinput
0563 ></entry
0564 > <entry
0565 >kleiner dan</entry
0566 > <entry
0567 >antwoord is <quote
0568 >waar</quote
0569 > als <userinput
0570 >$A</userinput
0571 > kleiner is dan <userinput
0572 >$B</userinput
0573 ></entry
0574 > </row
0575 > <row
0576 > <entry
0577 ><userinput
0578 >$A &gt;= $B</userinput
0579 ></entry
0580 > <entry
0581 >groter dan of gelijk aan</entry
0582 > <entry
0583 >antwoord is <quote
0584 >waar</quote
0585 > als <userinput
0586 >$A</userinput
0587 > groter is dan of gelijk aan <userinput
0588 >$B</userinput
0589 ></entry
0590 > </row
0591 > <row
0592 > <entry
0593 ><userinput
0594 >$A &lt;= $B</userinput
0595 ></entry
0596 > <entry
0597 >smaller than or equals</entry
0598 > <entry
0599 >answer is <quote
0600 >waar</quote
0601 > als <userinput
0602 >$A</userinput
0603 > kleiner is dan of gelijk aan <userinput
0604 >$B</userinput
0605 ></entry
0606 > </row
0607 > </tbody
0608 > </tgroup
0609 > </table
0610 > Let erop dat <userinput
0611 >$A</userinput
0612 > en <userinput
0613 >$B</userinput
0614 > getallen <link linkend="number"
0615 > moeten zijn</link
0616 > of <link linkend="assignment-of-variables"
0617 >variabelen </link
0618 > met een getalswaarde.</para>
0619 </sect2>
0620 
0621 
0622 </sect1>
0623 
0624 
0625 
0626 <sect1 id="commands">
0627 <title
0628 >Opdrachten</title>
0629 <para
0630 >Met behulp van opdrachten vertel je de schildpad of &kturtle; iets te doen. Sommige opdrachten hebben een invoer nodig, anderen geven een uitvoer. In dit deel zullen we alle ingebouwde opdrachten die in &kturtle; kunnen worden gebruikt, uitleggen. Met het commando <link linkend="learn"
0631 >leer</link
0632 > kunnen overigens zelf opdrachten worden gemaakt. De hier besproken ingebouwde (dus oorspronkelijke) opdrachten worden met donkerblauw <glossterm
0633 >geaccentueerd</glossterm
0634 ></para>
0635 
0636 <sect2 id="moving-the-turtle">
0637 <title
0638 >De schildpad bewegen</title>
0639 <para
0640 >Er zijn verschillende opdrachten waarmee je de schildpad over het scherm kunt bewegen.</para>
0641 
0642   <variablelist>
0643     <anchor id="forward"/>
0644     <varlistentry
0645 > 
0646       <term
0647 >vooruit (vt)<indexterm
0648 ><primary
0649 >vooruit (vt)</primary
0650 ></indexterm
0651 ></term>
0652       <listitem
0653 ><para
0654 ><screen
0655 >vooruit X</screen
0656 ><userinput
0657 >vooruit X</userinput
0658 > verplaatst de schildpad X pixels vooruit. Als de pen neer is laat de schildpad een spoor achter. <userinput
0659 >vooruit</userinput
0660 > kan worden afgekort met <userinput
0661 >vt</userinput
0662 ></para
0663 ></listitem>
0664     </varlistentry>
0665   </variablelist>
0666   <variablelist>
0667     <anchor id="backward"/>
0668     <varlistentry
0669 >  
0670       <term
0671 >achteruit (at)<indexterm
0672 ><primary
0673 >achteruit (at)</primary
0674 ></indexterm
0675 ></term>
0676       <listitem
0677 ><para
0678 ><screen
0679 >achteruit X</screen
0680 ><userinput
0681 >achteruit X</userinput
0682 > verplaatst de schildpad X pixels achteruit. Als de pen neer is laat de schildpad een spoor achter. <userinput
0683 >achteruit</userinput
0684 > kan worden afgekort met <userinput
0685 >at</userinput
0686 >.</para
0687 ></listitem>
0688     </varlistentry>
0689   </variablelist>
0690   <variablelist>
0691     <anchor id="turnleft"/>
0692     <varlistentry
0693 > 
0694       <term
0695 >draailinks (dl)<indexterm
0696 ><primary
0697 >draailinks (dl)</primary
0698 ></indexterm
0699 ></term>
0700       <listitem
0701 ><para
0702 ><screen
0703 >draailinks X</screen
0704 ><userinput
0705 >draailinks X</userinput
0706 > laat de schildpad X graden naar links draaien. <userinput
0707 >draailinks</userinput
0708 > kan worden afgekort met <userinput
0709 >dl</userinput
0710 >.</para
0711 ></listitem>
0712     </varlistentry>
0713   </variablelist>
0714   <variablelist>
0715     <anchor id="turnright"/>
0716     <varlistentry
0717 > 
0718       <term
0719 >draairechts (dr)<indexterm
0720 ><primary
0721 >draairechts (dr)</primary
0722 ></indexterm
0723 ></term>
0724       <listitem
0725 ><para
0726 ><screen
0727 >draairechts X</screen
0728 ><userinput
0729 >draairechts X</userinput
0730 > laat de schildpad X graden naar rechts draaien. <userinput
0731 >draairechts</userinput
0732 > kan worden afgekort met <userinput
0733 >dr</userinput
0734 >.</para
0735 ></listitem>
0736     </varlistentry>
0737   </variablelist>
0738   <variablelist>
0739     <anchor id="direction"/>
0740     <varlistentry
0741 > 
0742       <term
0743 >richting (rt)<indexterm
0744 ><primary
0745 >richting (rt)</primary
0746 ></indexterm
0747 ></term>
0748       <listitem
0749 ><para
0750 ><screen
0751 >richting X</screen
0752 ><userinput
0753 >richting X</userinput
0754 > zet de richting van de schildpad op X graden, geteld vanaf 0 (recht naar boven). Dus niet ten opzichte van de vorige positie van de schildpad. <userinput
0755 >richting</userinput
0756 > kan worden afgekort met <userinput
0757 >rt</userinput
0758 >.</para
0759 ></listitem>
0760     </varlistentry>
0761   </variablelist>
0762   <variablelist>
0763     <anchor id="getdirection"/>
0764     <varlistentry
0765 > 
0766       <term
0767 >haalrichting<indexterm
0768 ><primary
0769 >haalrichting</primary
0770 ></indexterm
0771 ></term>
0772       <listitem
0773 ><para
0774 ><screen
0775 >haalrichting</screen
0776 ><userinput
0777 >haalrichting X</userinput
0778 > geeft de ricting terug van de schildpad, in de vorm van een aantal graden, geteld vanaf nul. Nul is de richting recht naar boven, dus als de schildpad recht naar boven loopt.</para
0779 ></listitem>
0780     </varlistentry>
0781   </variablelist>
0782   <variablelist>
0783     <anchor id="center"/>
0784     <varlistentry
0785 > 
0786       <term
0787 >thuis<indexterm
0788 ><primary
0789 >thuis</primary
0790 ></indexterm
0791 ></term>
0792       <listitem
0793 ><para
0794 ><screen
0795 >thuis</screen
0796 ><userinput
0797 >thuis</userinput
0798 > plaatst de schildpad in het midden van het canvas.</para
0799 ></listitem>
0800     </varlistentry>
0801   </variablelist>
0802   <variablelist>
0803     <anchor id="go"/>
0804     <varlistentry
0805 > 
0806       <term
0807 >ganaar<indexterm
0808 ><primary
0809 >ganaar</primary
0810 ></indexterm
0811 ></term>
0812       <listitem
0813 ><para
0814 ><screen
0815 >ganaar X,Y</screen
0816 ><userinput
0817 >ganaar</userinput
0818 > plaatst de schildpad op een bepaalde plaats op het canvas. De plaats is op X <glossterm linkend="pixels"
0819 >pixels</glossterm
0820 > vanaf de linkerkant en Y <glossterm linkend="pixels"
0821 >pixels</glossterm
0822 > vanaf de bovenkant van het canvas.</para
0823 ></listitem>
0824     </varlistentry>
0825   </variablelist>
0826   <variablelist>
0827     <anchor id="gox"/>
0828     <varlistentry
0829 > 
0830       <term
0831 >ganaarx<indexterm
0832 ><primary
0833 >ganaarx (gx)</primary
0834 ></indexterm
0835 ></term>
0836       <listitem
0837 ><para
0838 ><screen
0839 >ganaarx X</screen
0840 ><userinput
0841 >ganaarx X</userinput
0842 > laat de schildpad naar een positie gaan op X <glossterm linkend="pixels"
0843 >pixels</glossterm
0844 > vanaf de linkerkant van het canvas. De hoogte blijft hetzelfde. <userinput
0845 >gox</userinput
0846 > kan wordenafgekort tot <userinput
0847 >gx</userinput
0848 >.</para
0849 ></listitem>
0850     </varlistentry>
0851   </variablelist>
0852   <variablelist>
0853     <anchor id="goy"/>
0854     <varlistentry
0855 > 
0856       <term
0857 >ganaary<indexterm
0858 ><primary
0859 >ganaary (gy)</primary
0860 ></indexterm
0861 ></term>
0862       <listitem
0863 ><para
0864 ><screen
0865 >ganaary Y</screen
0866 ><userinput
0867 >ganaary</userinput
0868 > laat de schildpad naar een positie gaan die Y <glossterm linkend="pixels"
0869 >pixels</glossterm
0870 > vanaf de bovenkant van het canvas ligt. De afstand vanaf de linkerkant van het canvas blijft hetzelfde. <userinput
0871 >ganaary</userinput
0872 > kan wordenafgekort tot <userinput
0873 >gy</userinput
0874 >.</para
0875 ></listitem>
0876     </varlistentry>
0877   </variablelist>
0878   <note
0879 ><para
0880 >Met de opdrachten <userinput
0881 >ganaar</userinput
0882 >, <userinput
0883 >ganaarx</userinput
0884 >, <userinput
0885 >ganaary</userinput
0886 > en <userinput
0887 >thuis</userinput
0888 > tekent de schildpad geen lijn, onafhankelijk van of de pen op is of neer.</para>
0889   </note>
0890 </sect2>
0891 
0892 <sect2 id="locate-the-turtle">
0893 <title
0894 >Waar is de schildpad?</title>
0895 <para
0896 >Er zijn twee opdrachten die de positie van de schildpad op het scherm doorgeven (teruggeven).</para>
0897 
0898   <variablelist>
0899     <anchor id="getx"/>
0900     <varlistentry
0901 > 
0902       <term
0903 >haalx<indexterm
0904 ><primary
0905 >haalx</primary
0906 ></indexterm
0907 ></term>
0908       <listitem
0909 ><para
0910 ><userinput
0911 >haalx</userinput
0912 > geeft het aantal pixels door dat de huidige positie van de schildpad is vanaf de linkerkant van het scherm.</para
0913 ></listitem>
0914     </varlistentry>
0915   </variablelist>
0916   <variablelist>
0917     <anchor id="gety"/>
0918     <varlistentry
0919 > 
0920       <term
0921 >haaly<indexterm
0922 ><primary
0923 >haaly</primary
0924 ></indexterm
0925 ></term>
0926       <listitem
0927 ><para
0928 ><userinput
0929 >haaly</userinput
0930 > geeft het aantal pixels door dat de huidige positie van de schildpad is vanaf de bovenkant van het scherm.</para
0931 ></listitem>
0932     </varlistentry>
0933   </variablelist>
0934 </sect2>
0935 
0936 <sect2 id="pen">
0937 <title
0938 >De schildpad heeft een pen</title>
0939 <para
0940 >De schildpad heeft een pen die een lijn tekent als de schildpad beweegt. Er zijn een aantal opdrachten voor het besturen van de pen. In dit deel leggen we deze opdrachten uit.</para>
0941   <variablelist>
0942     <anchor id="penup"/>
0943     <varlistentry
0944 > 
0945       <term
0946 >penop (po)<indexterm
0947 ><primary
0948 >penop (po)</primary
0949 ></indexterm
0950 ></term>
0951       <listitem
0952 ><para
0953 ><screen
0954 >penop</screen
0955 ><userinput
0956 >penop</userinput
0957 > tilt de pen op van het canvas. Als de pen <quote
0958 >op</quote
0959 > is, wordt er geen lijn getekend als de schildpad beweegt. Kijk ook bij <userinput
0960 >penneer</userinput
0961 >. <userinput
0962 >penop</userinput
0963 > kan worden afgekort met <userinput
0964 >po</userinput
0965 >.</para
0966 ></listitem>
0967     </varlistentry>
0968   </variablelist>
0969   <variablelist>
0970     <anchor id="pendown"/>
0971     <varlistentry
0972 > 
0973       <term
0974 >penneer (pn)<indexterm
0975 ><primary
0976 >penneer (pn)</primary
0977 ></indexterm
0978 ></term>
0979       <listitem
0980 ><para
0981 ><screen
0982 >penneer</screen
0983 ><userinput
0984 >penneer</userinput
0985 > zet de pen neer op het canvas. Als de pen <quote
0986 >neer</quote
0987 > is op het canvas, wordt er een lijn getekend als de schildpad beweegt. Zie ook <userinput
0988 >penop</userinput
0989 >. <userinput
0990 >penneer</userinput
0991 > kan worden afgekort met <userinput
0992 >pn</userinput
0993 >.</para
0994 ></listitem>
0995     </varlistentry>
0996   </variablelist>
0997   <variablelist>
0998     <anchor id="setpenwidth"/>
0999     <varlistentry
1000 > 
1001       <term
1002 >pendikte (pd)<indexterm
1003 ><primary
1004 >pendikte (pd)</primary
1005 ></indexterm
1006 ></term>
1007       <listitem
1008 ><para
1009 ><screen
1010 >pendikte X</screen
1011 ><userinput
1012 >pendikte X</userinput
1013 > stelt de dikte van de pen (de breedte van de lijn) op X <glossterm linkend="pixels"
1014 >pixels</glossterm
1015 >. <userinput
1016 >pendikte</userinput
1017 > kan worden afgekort met <userinput
1018 >pd</userinput
1019 >.</para
1020 ></listitem>
1021     </varlistentry>
1022   </variablelist>
1023   <variablelist>
1024     <anchor id="setfgcolor"/>
1025     <varlistentry
1026 > 
1027       <term
1028 >penkleur (pk)<indexterm
1029 ><primary
1030 >penkleur (pk)</primary
1031 ></indexterm
1032 ></term>
1033       <listitem
1034 ><para
1035 ><screen
1036 >penkleur R,G,B</screen
1037 ><userinput
1038 >penkleur</userinput
1039 > stelt de kleur in van de pen. <userinput
1040 >penkleur</userinput
1041 > heeft een <glossterm linkend="rgb"
1042 >RGB-combinatie (drie getallen tussen 0 en 255) </glossterm
1043 > nodig als invoer. <userinput
1044 >penkleur</userinput
1045 > kan worden afgekort met <userinput
1046 >pk</userinput
1047 >.</para
1048 ></listitem>
1049     </varlistentry>
1050   </variablelist>
1051 </sect2>
1052 
1053 <sect2 id="canvas">
1054 <title
1055 >Opdrachten voor het canvas</title>
1056 <para
1057 >Er zijn verschillende opdrachten voor de besturing van het canvas</para>
1058   <variablelist>
1059     <anchor id="resizecanvas"/>
1060     <varlistentry>
1061       <term
1062 >canvasmaat (cm)<indexterm
1063 ><primary
1064 >canvasmaat (cm)</primary
1065 ></indexterm
1066 ></term>
1067       <listitem
1068 ><para
1069 ><screen
1070 >canvasmaat X,Y</screen
1071 >Met het commando <userinput
1072 >canvasmaat</userinput
1073 > kan de grootte van het canvas worden ingesteld. Invoer is X en Y, waarbij X is de nieuwe canvasbreedte is in <glossterm linkend="pixels"
1074 >pixels</glossterm
1075 >, en Y de nieuwe hoogte van het  canvas, ook in <glossterm linkend="pixels"
1076 >pixels</glossterm
1077 >. <userinput
1078 >canvasmaat</userinput
1079 > kan worden afgekort tot <userinput
1080 >cs</userinput
1081 >.</para
1082 ></listitem>
1083     </varlistentry>
1084   </variablelist>
1085   <variablelist>
1086     <anchor id="setbgcolor"/>
1087     <varlistentry
1088 > 
1089       <term
1090 >canvaskleur (ck)<indexterm
1091 ><primary
1092 >canvaskleur (ck)</primary
1093 ></indexterm
1094 ></term>
1095       <listitem
1096 ><para
1097 ><screen
1098 >canvaskleur R,G,B</screen
1099 ><userinput
1100 >canvaskleur</userinput
1101 > stelt de kleur in van het canvas. <userinput
1102 >canvaskleur</userinput
1103 > heeft een <glossterm linkend="rgb"
1104 >RGB-combinatie (drie getallen tussen 0 en 255) </glossterm
1105 > nodig als invoer. <userinput
1106 >canvaskleur</userinput
1107 > kan worden afgekort met <userinput
1108 >ck</userinput
1109 >.</para
1110 ></listitem>
1111     </varlistentry>
1112   </variablelist>
1113 </sect2>
1114 
1115 <sect2 id="clean">
1116 <title
1117 >Opdrachten om schoon te maken</title>
1118 <para
1119 >Er zijn twee opdrachten waarmee je het canvas kunt schoonmaken nadat je er een bende van hebt gemaakt.</para>
1120   <variablelist>
1121     <anchor id="clear"/>
1122     <varlistentry
1123 > 
1124       <term
1125 >schoon (cs)<indexterm
1126 ><primary
1127 >schoon (cs)</primary
1128 ></indexterm
1129 ></term>
1130       <listitem
1131 ><para
1132 ><screen
1133 >schoon</screen
1134 >Met <userinput
1135 >schoon</userinput
1136 > kunnen alle tekeningen op het canvas worden gewist. De rest blijft staan, de positie en de hoek van de schildpad, de kleur van het canvas, de zichtbaarheid van de schildpad en de grootte van het canvas blijven zoals ze waren.</para
1137 ></listitem>
1138     </varlistentry>
1139   </variablelist>
1140   <variablelist>
1141     <anchor id="reset"/>
1142     <varlistentry
1143 > 
1144       <term
1145 >alsnieuw<indexterm
1146 ><primary
1147 >alsnieuw</primary
1148 ></indexterm
1149 ></term>
1150       <listitem
1151 ><para
1152 ><screen
1153 >alsnieuw</screen
1154 ><userinput
1155 >alsnieuw</userinput
1156 > maakt nog meer schoon dan het commando <userinput
1157 >schoon</userinput
1158 >. Na het commando <userinput
1159 >alsnieuw</userinput
1160 > is alles weer zoals het was direct na het starten van &kturtle;. De schildpad wordt in het midden van het scherm gezet (met de neus naar boven), de canvaskleur is wit,  de schildpad tekent een zwarte lijn op het canvas, en de grootte van het canvas is weer 400 x 400 pixels.</para
1161 ></listitem>
1162     </varlistentry>
1163   </variablelist>
1164 </sect2>
1165 
1166 <sect2 id="sprites">
1167 <title
1168 >De schildpad is een sprite  (zeg maar: sprait)</title>
1169 <para
1170 >Eerst volgt hier een korte uitleg van wat sprites zijn: sprites zijn kleine plaatjes die je kunt verplaatsen op het scherm, zoals je vaak in computerspelletjes ziet. Onze schildpad is zo'n sprite. Voor meer info, zie de woordenlijst bij <glossterm
1171 >linkend="sprites"
1172 >sprites</glossterm
1173 >. Noot vertaler: eigenlijk zijn sprites zoiets als geesten, feeën of kabouters.</para>
1174 <para
1175 >Hierna volgt een volledig overzicht van alle opdrachten die je kunt gebruiken bij sprites.</para>
1176 <note
1177 ><para
1178 >[De huidige versie van &kturtle; heeft alleen een schildpad als sprite. Andere sprites zijn er dus niet. In toekomstige versies van het programma zul je de schildpad kunnen veranderen naar je eigen ontwerp]</para
1179 ></note>
1180   <variablelist>
1181     <anchor id="spriteshow"/>
1182     <varlistentry
1183 > 
1184       <term
1185 >toon (ts)<indexterm
1186 ><primary
1187 >toon (ts)</primary
1188 ></indexterm
1189 ></term>
1190       <listitem
1191 ><para
1192 ><screen
1193 >toon</screen
1194 ><userinput
1195 >toon</userinput
1196 > maakt de schilpad weer zichtbaar nadat die is verborgen. <userinput
1197 >toon</userinput
1198 > kan worden afgekort met <userinput
1199 >ts</userinput
1200 >.</para
1201 ></listitem>
1202     </varlistentry>
1203   </variablelist>
1204   <variablelist>
1205     <anchor id="spritehide"/>
1206     <varlistentry
1207 > 
1208       <term
1209 >verberg<indexterm
1210 ><primary
1211 >verberg (vs)</primary
1212 ></indexterm
1213 ></term>
1214       <listitem
1215 ><para
1216 ><screen
1217 >verberg</screen
1218 ><userinput
1219 >verberg</userinput
1220 > verbergt de schildpad. Dit is handig als de  de schildpad niet in de tekening past. <userinput
1221 >verberg</userinput
1222 > kan worden afgekort met <userinput
1223 >vs</userinput
1224 >.</para
1225 ></listitem>
1226     </varlistentry>
1227   </variablelist>
1228 </sect2>
1229 
1230 <sect2 id="writing">
1231 <title
1232 >Kan de schildpad schrijven?</title>
1233 <para
1234 >Het antwoord is: <quote
1235 >ja</quote
1236 >. De schildpad kan schrijven. Hij schrijft zo'n beetje alles wat je hem opdraagt.</para>
1237   <variablelist>
1238     <anchor id="print"/>
1239     <varlistentry
1240 > 
1241       <term
1242 >druk<indexterm
1243 ><primary
1244 >druk</primary
1245 ></indexterm
1246 ></term>
1247       <listitem
1248 ><para
1249 ><screen
1250 >druk X</screen
1251 >Het commando <userinput
1252 >druk</userinput
1253 > kan worden gebruikt om de schildpad iets op het canvas te laten schrijven. <userinput
1254 >druk</userinput
1255 > heeft  getallen en tekenreeksen nodig als invoer. Je kunt verschillende getallen en stukken tekst <userinput
1256 >laten schrijven</userinput
1257 > met behulp van het <quote
1258 >+</quote
1259 >-symbool. Hier is een klein voorbeeld: <screen
1260 >$jaar = 2003
1261 $auteur = "Cies"
1262 druk $auteur + " begon het KTurtle-project in " + $jaar + " en vindt het nog steeds leuk om er aan te werken!"
1263 </screen>
1264       </para
1265 ></listitem>
1266     </varlistentry>
1267   </variablelist>
1268   <variablelist>
1269     <anchor id="fontsize"/>
1270     <varlistentry
1271 > 
1272       <term
1273 >lettermaat<indexterm
1274 ><primary
1275 >lettermaat</primary
1276 ></indexterm
1277 ></term>
1278       <listitem
1279 ><para
1280 ><screen
1281 >lettermaat X</screen
1282 ><userinput
1283 >lettermaat</userinput
1284 > bepaalt de grootte van de letters voor het commando <userinput
1285 >druk</userinput
1286 >. <userinput
1287 >lettermaat</userinput
1288 > heeft een getal nodig als invoer. De grootte geef je op in <glossterm linkend="pixels"
1289 >pixels</glossterm
1290 >.</para
1291 ></listitem>
1292     </varlistentry>
1293   </variablelist>
1294 </sect2>
1295 
1296 <sect2 id="math-commands">
1297 <title
1298 >Wiskundige opdrachten</title>
1299 <para
1300 >Hier volgen de wiskundige opdrachten die &kturtle; kent.</para>
1301   <variablelist>
1302     <anchor id="round"/>
1303     <varlistentry>
1304       <term
1305 >afronden<indexterm
1306 ><primary
1307 >afronden</primary
1308 ></indexterm
1309 ></term>
1310       <listitem
1311 ><para
1312 ><screen
1313 >afronden X</screen
1314 ><userinput
1315 >afronden</userinput
1316 > van het gegeven getal naar het dichtstbijzijnde gehele getal. <screen>
1317 druk afronden 10.8              #denk erom: een punt
1318    vooruit 20
1319 druk afronden 10.3
1320 </screen
1321 >Hiermee drukt de schildpad de getallen 11 en 10 af.</para
1322 ></listitem>
1323     </varlistentry>
1324   </variablelist>
1325   <variablelist>
1326     <anchor id="random"/>
1327     <varlistentry
1328 > 
1329       <term
1330 >gok (gk)<indexterm
1331 ><primary
1332 >gok (gk)</primary
1333 ></indexterm
1334 ></term>
1335       <listitem
1336 ><para
1337 ><screen
1338 >gok X,Y</screen
1339 ><userinput
1340 >gok</userinput
1341 > is een commando met invoer en uitvoer. Als invoerheeft het commando twee getallen nodig, het eerste getal (X) is de minimum grootte van de uitvoer, en het tweede (Y) de maximum grootte. De uitvoer is een willekeurig getal dat gelijk is aan of groter dan het minimum en gelijk aan of kleiner dan het maximum. Hier is een klein voorbeeld:<screen>
1342 herhaal 500 [
1343  $x = gok 10,200
1344  vooruit $x
1345  draailinks 10 - $x
1346 ]
1347 </screen
1348 > Met het commando <userinput
1349 >gok</userinput
1350 > kun je wat chaos aan je programma toevoegen.</para
1351 ></listitem>
1352     </varlistentry>
1353   </variablelist>
1354   <variablelist>
1355     <anchor id="mod"/>
1356     <varlistentry
1357 > 
1358       <term
1359 >mod<indexterm
1360 ><primary
1361 >mod</primary
1362 ></indexterm
1363 ></term>
1364       <listitem
1365 ><para
1366 ><screen
1367 >mod X,Y</screen
1368 >Met het commando <userinput
1369 >mod</userinput
1370 > wordt de rest berekend vande deling van het eerste getal door het tweede getal.</para
1371 ></listitem>
1372     </varlistentry>
1373   </variablelist>
1374   <variablelist>
1375     <anchor id="sqrt"/>
1376     <varlistentry
1377 > 
1378       <term
1379 >wortel<indexterm
1380 ><primary
1381 >wortel</primary
1382 ></indexterm
1383 ></term>
1384       <listitem
1385 ><para
1386 ><screen
1387 >wortel X</screen
1388 >Met het commando <userinput
1389 >wortel X</userinput
1390 > wordt de wortel van het getal X berekend.</para
1391 ></listitem>
1392     </varlistentry>
1393   </variablelist>
1394 <!--
1395   <variablelist>
1396     <anchor id="exp"/>
1397     <varlistentry
1398 > 
1399       <term
1400 >exp<indexterm
1401 ><primary
1402 >exp</primary
1403 ></indexterm
1404 ></term>
1405       <listitem
1406 ><para
1407 ><screen
1408 >sqrt X</screen>
1409       </para
1410 ></listitem>
1411     </varlistentry>
1412   </variablelist>
1413 -->
1414   <variablelist>
1415     <anchor id="pi"/>
1416     <varlistentry
1417 > 
1418       <term
1419 >pi<indexterm
1420 ><primary
1421 >pi</primary
1422 ></indexterm
1423 ></term>
1424       <listitem
1425 ><para
1426 ><screen
1427 >pi</screen
1428 >Dit commando geeft de constante pi, <userinput
1429 >3.14159</userinput
1430 >, door. </para
1431 ></listitem>
1432     </varlistentry>
1433   </variablelist>
1434   <variablelist>
1435     <anchor id="sin"/>
1436     <anchor id="cos"/>
1437     <anchor id="tan"/>
1438     <varlistentry>
1439       <term
1440 >sin<indexterm
1441 ><primary
1442 >sin</primary
1443 ></indexterm
1444 >, cos<indexterm
1445 ><primary
1446 >cos</primary
1447 ></indexterm
1448 >, tan<indexterm
1449 ><primary
1450 >tan</primary
1451 ></indexterm
1452 ></term>
1453       <listitem
1454 ><para>
1455 <screen
1456 >sin X
1457 cos X
1458 tan X
1459 </screen
1460 >Met deze drie opdrachten worden de welbekende goniometrische functies <userinput
1461 >sinus</userinput
1462 >, <userinput
1463 >cosinus</userinput
1464 > en <userinput
1465 >tangens</userinput
1466 > berekend. De invoer van deze opdrachten, X, is een<link linkend="number"
1467 >getal</link
1468 > (in graden).</para
1469 ></listitem>
1470     </varlistentry>
1471   </variablelist>
1472   <variablelist>
1473     <anchor id="arcsin"/>
1474     <anchor id="arccos"/>
1475     <anchor id="arctan"/>
1476     <varlistentry>
1477       <term
1478 >arcsin<indexterm
1479 ><primary
1480 >arcsin</primary
1481 ></indexterm
1482 >, arccos<indexterm
1483 ><primary
1484 >arccos</primary
1485 ></indexterm
1486 >, arctan<indexterm
1487 ><primary
1488 >arctan</primary
1489 ></indexterm
1490 ></term>
1491       <listitem
1492 ><para>
1493 <screen
1494 >arcsin X
1495 arccos X
1496 arctan X
1497 </screen
1498 >Deze opdrachten zijn de inverse (dat is hier: terug-) functies van <link linkend="sin"
1499 >sin</link
1500 >, <link linkend="cos"
1501 >cos</link
1502 > en <link linkend="tan"
1503 >tan</link
1504 >. De invoer van deze functies, X, is een <link linkend="number"
1505 >getal</link
1506 >. Die kan overigens niet elke waarde hebben, alléén die waarden die sin X, cos X en tan X kunnen hebben.</para
1507 ></listitem>
1508     </varlistentry>
1509   </variablelist>
1510 </sect2>
1511 
1512 <sect2 id="dialogs">
1513 <title
1514 >Invoer en terugkoppeling met behulp van dialogen</title>
1515 <para
1516 >Een dialoog is een venstertje met daarin een boodschap, of waarin om invoer wordt gevraagd. &kturtle; kent twee opdrachten voor een dialoog, namelijk <userinput
1517 >bericht</userinput
1518 > en <userinput
1519 >vraag</userinput
1520 ></para>
1521   <variablelist>
1522     <anchor id="message"/>
1523     <varlistentry
1524 > 
1525       <term
1526 >bericht<indexterm
1527 ><primary
1528 >bericht</primary
1529 ></indexterm
1530 ></term>
1531       <listitem
1532 ><para
1533 ><screen
1534 >bericht X</screen
1535 >De opdracht <userinput
1536 >bericht</userinput
1537 > heeft als invoer een <link linkend="string"
1538 >tekenreeks</link
1539 >. Er wordt een venstertje getoond waarin een dialoog met de tekst van deze <link linkend="string"
1540 >tekenreeks</link
1541 >. <screen
1542 >bericht "Cies begon het KTurtle-project in 2003 en vindt het nog steeds leuk om er aan te werken!"
1543 </screen>
1544       </para
1545 ></listitem>
1546     </varlistentry>
1547   </variablelist>
1548   <variablelist>
1549     <anchor id="ask"/>
1550     <varlistentry
1551 > 
1552       <term
1553 >vraag<indexterm
1554 ><primary
1555 >vraag</primary
1556 ></indexterm
1557 ></term>
1558       <listitem
1559 ><para
1560 ><screen
1561 >vraag X</screen
1562 ><userinput
1563 >vraag</userinput
1564 > heeft als invoer een <link linkend="string"
1565 >tekenreeks</link
1566 >. Er wordt een venstertje getoond met de tekst van deze tekenreeks, net als bij het commando <link linkend="message"
1567 >bericht</link
1568 >. Maar in deze dialoog is ook een invoerveld. In dit invoerveld kan een gebruiker een <link linkend="number"
1569 >getal</link
1570 > of een <link linkend="string"
1571 >tekenreeks</link
1572 > invoeren die in een <link linkend="assignment-of-variables"
1573 >variabele</link
1574 > kan worden opgeslagen, of aan een <link linkend="commands"
1575 >commando</link
1576 > kan worden doorgegeven. Bijvoorbeeld <screen>
1577 $in = vraag "Hoe oud ben je?"
1578 $uit = 5 + $in
1579 druk "Over 5 jaar ben je " + $uit + " jaar."
1580 </screen
1581 >. Als de gebruiker de invoerdialoog annuleert of niets invult wordt de <link linkend="assignment-of-variables"
1582 >variabele</link
1583 > leeg gemaakt.</para
1584 ></listitem>
1585     </varlistentry>
1586   </variablelist>
1587 </sect2>
1588 
1589 </sect1>
1590 
1591 
1592 
1593 <sect1 id="assignment-of-variables">
1594 <title
1595 >Toewijzingen aan variabelen</title>
1596 <para
1597 >Eerst bekijken we variabelen, daarna hoe we daar waarden aan kunnen toewijzen. </para>
1598 
1599 <para
1600 >Variabelen zijn woorden die met een <quote
1601 >$</quote
1602 > beginnen, in de <link linkend="the-editor"
1603 >codebewerker </link
1604 > worden ze met paars <glossterm
1605 >geaccentueerd</glossterm
1606 >.</para>
1607 
1608 <para
1609 >In een variabele kan elk <link linkend="number"
1610 >getal</link
1611 >, <link linkend="string"
1612 >tekenreeks</link
1613 > of <link linkend="boolean-value"
1614 >booleaanse waarde (waar/onwaar)</link
1615 > worden bewaard. Met behulp van de toewijzing, <userinput
1616 >=</userinput
1617 >, kan de variabele zijn inhoud krijgen. Die inhoud blijft hierin aanwezig, totdat het programma eindigt, of als de variabele een andere waarde krijgt.</para>
1618 
1619 <para
1620 >Variabelen, mits met inhoud, kunnen in de plaats van hun inhoud worden gebruikt. Zie bijvoorbeeld het volgende stukje &turtlescript;: <screen>
1621 $x = 10
1622 $x = $x / 3
1623 print $x
1624 </screen
1625 > Eerst krijgt de variabele <userinput
1626 >$x</userinput
1627 > de waarde<userinput
1628 >10</userinput
1629 >. Daarna krijgt <userinput
1630 >$x</userinput
1631 > een nieuwe waarde, van zichzelf, gedeeld door <userinput
1632 >3</userinput
1633 > &mdash; dit betekent dus dat  <userinput
1634 >$x</userinput
1635 > daarna de waarde <userinput
1636 >10 / 3</userinput
1637 > heeft. Tenslotte wordt <userinput
1638 >$x</userinput
1639 > afgedrukt (op het scherm). In regels 2 en 3 zie je dat <userinput
1640 >$x</userinput
1641 > in de plaats van zijn inhoud wordt gebruikt.</para>
1642 
1643 <para
1644 >Variabelen meten een waarde hebben gekregen voordat ze kunnen worden gebruikt. Bijvoorbeeld:  <screen>
1645 druk $n
1646 </screen
1647 > zal een foutmelding geven.</para>
1648 
1649 <para
1650 >Beschouw het volgende stukje &turtlescript;: <screen>
1651 $a = 2004
1652 $b = 25
1653 
1654 # Het volgende commando drukt "2029" af
1655 druk $a + $b
1656 achteruit 30
1657 # Het volgende commando drukt "2004 plus 25 is gelijk aan 2029" af
1658 print $a + " plus " + $b + " is gelijk aan " + ($a + $b)
1659 </screen
1660 > In de eerste twee regels krijgen de variabelen <userinput
1661 >$a</userinput
1662 > en  <userinput
1663 >$b</userinput
1664 > de waarden 2004 en 25. Daarna volgen twee  <userinput
1665 >druk</userinput
1666 >-opdrachten met daartussen in een <userinput
1667 >achteruit 30</userinput
1668 >. In het commentaar voor de <userinput
1669 >druk</userinput
1670 >- opdrachten wordt uitgelegd wat er gebeurt. Zoals je ziet worden variabelen precies zo gebruikt als hun inhoud, je kunt ze met elke soort <link linkend="operators"
1671 >bewerkingen</link
1672 > gebruiken, of als invoer voor  <link linkend="commands"
1673 >opdrachten</link
1674 >.</para>
1675 
1676 <para
1677 >Nog een voorbeeld: <screen>
1678 $naam = vraag "Hoe heet je?"
1679 print "Ha die " + $naam + "! Veel plezier met het leren programmeren..."
1680 </screen
1681 > Tamelijk recht zo die gaat. Ook hier kun je zien dat de variabele  <userinput
1682 >$naam</userinput
1683 > precies als zijn inhoud, een tekenreeks, wordt gebruikt.</para>
1684 
1685 <para
1686 >Bij het gebruik van variabelen is de <link linkend="the-inspector"
1687 >inspectie</link
1688 > erg nuttig. Hierin kun je de inhoud zien van alle huidige variabelen.</para>
1689 </sect1>
1690 
1691 
1692 
1693 <sect1 id="controlling-execution">
1694 <title
1695 >Sturen van het programma</title>
1696 <para
1697 >De programmastuuropdrachten maken het mogelijk, &mdash;zoals de naam al zegt&mdash; het verloop van een programma te sturen.</para>
1698 <para
1699 >Opdrachten die het programmaverloop sturen worden <glossterm
1700 >geaccentueerd </glossterm
1701 > met donkergroen in een vet lettertype. De accolades worden meestal samen met de programmastuuropdrachten gebruikt en worden <glossterm
1702 >geaccentueerd</glossterm
1703 > met zwart.</para>
1704 
1705 <sect2 id="wait">
1706 <title
1707 >De schildpad laten wachten</title>
1708 <para
1709 >Als je al wat hebt geprogrammeerd in &kturtle;, dan heb je vast gemerkt dat de schildpad erg snel tekent. Dit commando laat de schildpad steeds een opgegeven tijdsduur te wachten.</para>
1710   <variablelist>
1711     <varlistentry>
1712       <term
1713 >wacht<indexterm
1714 ><primary
1715 >wacht</primary
1716 ></indexterm
1717 ></term>
1718       <listitem
1719 ><para
1720 ><screen
1721 >wacht X</screen
1722 ><userinput
1723 >wacht X</userinput
1724 > laat de schildpad X seconden wachten. <screen>
1725 herhaal 36{
1726  vooruit 5
1727  draairechts 10
1728  wacht 0.5           # Denk erom: een punt
1729 }
1730 </screen
1731 > Deze programmacode tekent een cirkel, maar de schildpad zal na elke stap een halve seconde wachten. Hier door lijkt het net of de schildpad kruipt.</para
1732 ></listitem>
1733     </varlistentry>
1734   </variablelist>
1735 </sect2>
1736 
1737 <sect2 id="if">
1738 <title
1739 >Uitvoeren <quote
1740 >indien</quote
1741 ></title>
1742   <variablelist>
1743     <varlistentry>
1744       <term
1745 >als<indexterm
1746 ><primary
1747 >als</primary
1748 ></indexterm
1749 ></term>
1750       <listitem
1751 ><para
1752 ><screen
1753 >als <link linkend="boolean-value"
1754 >boolean</link
1755 > { ... }</screen
1756 >De programmacode tussen de accolades wordt alleen uitgevoerd <userinput
1757 >als</userinput
1758 > de <link linkend="boolean-value"
1759 >booleaanse waarde</link
1760 > de waarde <quote
1761 >waar</quote
1762 > krijgt. <screen>
1763 $x = 6
1764 als $x &gt; 5 {
1765   druk "$x is groter dan 5!"
1766 }
1767 </screen
1768 > Op de eerste regel krijgt <userinput
1769 >$x</userinput
1770 > de waarde 6. Op de tweede regel wordt een <link linkend="comparing-operators"
1771 >vergelijkingsbewerking</link
1772 > gebruikt om de waarde van <userinput
1773 >$x &gt; 5</userinput
1774 > te bepalen. Omdat die <quote
1775 >waar</quote
1776 > is, 6 is groter dan 5, zal het programmastuurcommando <userinput
1777 >als</userinput
1778 > de programmacode tussen de accolades laten uitvoeren.</para
1779 ></listitem>
1780     </varlistentry>
1781   </variablelist>
1782 </sect2>
1783 
1784 <sect2 id="else">
1785 <title
1786 >Als niet, of in andere woorden: <quote
1787 >anders</quote
1788 ></title>
1789   <variablelist>
1790     <varlistentry>
1791       <term
1792 >anders<indexterm
1793 ><primary
1794 >anders</primary
1795 ></indexterm
1796 ></term>
1797       <listitem
1798 ><para
1799 ><screen
1800 >als <link linkend="boolean-value"
1801 >booleaanse waarde</link
1802 > { ... } anders { ... }</screen
1803 ><userinput
1804 >anders</userinput
1805 > kan worden gebruikt bij het programmastuurcommando <link linkend="if"
1806 ><userinput
1807 >als</userinput
1808 ></link
1809 >. De programmacode tussen de accolades na <userinput
1810 >anders</userinput
1811 > wordt alleen uitgevoerd als de <link linkend="boolean-value"
1812 >booleaanse waarde</link
1813 > de waarde <quote
1814 >onwaar</quote
1815 > heeft. <screen>
1816 alsnieuw
1817  $x = 4
1818 als $x &gt; 5 {
1819   druk "x is groter dan vijf!"
1820 }
1821 anders
1822 {
1823   druk "x is kleiner dan zes!"
1824 }
1825 </screen
1826 > De <link linkend="comparing-operators"
1827 >vergelijkingsbewerking</link
1828 > bepaalt de waarde van <userinput
1829 >$x &gt; 5</userinput
1830 >. Omdat 4 niet groter is dan 5 is die waarde <quote
1831 >onwaar</quote
1832 >. Dit betekent dat de programmacode tussen de accolades na <userinput
1833 >anders</userinput
1834 > wordt uitgevoerd.</para
1835 ></listitem>
1836     </varlistentry>
1837   </variablelist>
1838 </sect2>
1839 
1840 <sect2 id="while">
1841 <title
1842 >De <quote
1843 >terwijl</quote
1844 >-lus </title>
1845   <variablelist>
1846     <varlistentry>
1847       <term
1848 >terwijl<indexterm
1849 ><primary
1850 >terwijl</primary
1851 ></indexterm
1852 ></term>
1853       <listitem
1854 ><para
1855 ><screen
1856 >terwijl <link linkend="boolean-value"
1857 >booleaanse bewerking</link
1858 > { ... }</screen
1859 >Het programmastuurcommando <userinput
1860 >terwijl</userinput
1861 > lijkt veel op <link linkend="if"
1862 >als<userinput
1863 ></userinput
1864 ></link
1865 >. Het verschil is dat <userinput
1866 >terwijl</userinput
1867 > de programmacode tussen de accolades blijft herhalen totdat de <link linkend="boolean-value"
1868 >booleaanse waarde</link
1869 > <quote
1870 >onwaar</quote
1871 > is geworden. <screen>
1872 $x = 1
1873 terwijl $x &lt; 8 {
1874   vooruit 10
1875   wacht 1
1876   $x = $x + 1
1877 }
1878 </screen
1879 > Op de eerste regel krijgt <userinput
1880 >$x</userinput
1881 > de waarde 1. Op de tweede regel wordt de waarde bepaald van<userinput
1882 >$x &lt; 8</userinput
1883 >. Omdat die waarde <quote
1884 >waar</quote
1885 > is, start het programmastuurcommando<userinput
1886 >terwijl</userinput
1887 > het uitvoeren van de code tussen de accolades totdat de waarde van <userinput
1888 >$x &lt; 8</userinput
1889 > <quote
1890 >onwaar</quote
1891 > is geworden. In dit voorbeeld wordt de code tussen de accolades 7 keer uitgevoerd, omdat telkens als de vijfde regel wordt uitgevoerd de waarde <userinput
1892 >$x</userinput
1893 > met 1 wordt vermeerderd.</para
1894 ></listitem>
1895     </varlistentry>
1896   </variablelist>
1897 </sect2>
1898 
1899 <sect2 id="repeat">
1900 <title
1901 >De <quote
1902 >herhaal</quote
1903 >-loop</title>
1904   <variablelist>
1905     <varlistentry>
1906       <term
1907 >herhaal<indexterm
1908 ><primary
1909 >herhaal</primary
1910 ></indexterm
1911 ></term>
1912       <listitem
1913 ><para
1914 ><screen
1915 >Herhaal <link linkend="number"
1916 >getal</link
1917 > { ... }</screen
1918 >Het programmastuurcommando <userinput
1919 >herhaal</userinput
1920 > lijkt veel op <link linkend="while"
1921 ><userinput
1922 >terwijl</userinput
1923 ></link
1924 >. Het verschil is dat <userinput
1925 >herhaal</userinput
1926 > de programmacode tussen de accolades het in het getal opgegeven aantal keren blijft herhalen</para
1927 ></listitem>
1928     </varlistentry>
1929   </variablelist>
1930 </sect2>
1931 
1932 <sect2 id="for">
1933 <title
1934 >De <quote
1935 >voor</quote
1936 >-lus, een tellende lus</title>
1937   <variablelist>
1938     <varlistentry>
1939       <term
1940 >voor<indexterm
1941 ><primary
1942 >voor</primary
1943 ></indexterm
1944 ><indexterm
1945 ><primary
1946 >naar</primary
1947 ></indexterm
1948 ><indexterm
1949 ><primary
1950 >stap</primary
1951 ></indexterm
1952 ></term>
1953       <listitem
1954 ><para
1955 ><screen
1956 >voor <link linkend="assignment-of-variables"
1957 >variabele</link
1958 > = <link linkend="number"
1959 >getal</link
1960 > tot <link linkend="number"
1961 >getal</link
1962 > { ... }</screen
1963 >De lus <userinput
1964 >voor</userinput
1965 > is een <quote
1966 >tellende lus</quote
1967 >, en telt dus voor jou. <screen>
1968 voor $x = 1 tot 10 {
1969  druk $x * 7
1970  vooruit 15
1971 }
1972 </screen
1973 > Telkens als de programmacode tussen de accolades wordt uitgevoerd wordt de waarde <userinput
1974 >$x</userinput
1975 > met 1 vermeerderd (dit gaat dus van zelf), totdat <userinput
1976 >$x</userinput
1977 > de waarde 10 heeft bereikt. De programmacode tussen de accolades schrijft de waarde van <userinput
1978 >$x</userinput
1979 > (op het scherm), vermenigvuldigd met 7. Nadat deze opdrachten zijn uitgevoerd zie je de tafel van 7 op het canvas staan. </para>
1980      <para
1981 >De standaard stapgrootte in een lus is 1, maar een andere waarde kan worden ingesteld met  <screen
1982 >voor <link linkend="assignment-of-variables"
1983 >variabele</link
1984 > = <link linkend="number"
1985 >getal</link
1986 > tot <link linkend="number"
1987 >getal </link
1988 > stap <link linkend="number"
1989 >getal</link
1990 > { ... }</screen
1991 ></para
1992 ></listitem>
1993     </varlistentry>
1994   </variablelist>
1995 </sect2>
1996 
1997 <sect2 id="break">
1998 <title
1999 >Een lus verlaten</title>
2000   <variablelist>
2001     <varlistentry>
2002       <term
2003 >kap<indexterm
2004 ><primary
2005 >kap</primary
2006 ></indexterm
2007 ></term>
2008       <listitem
2009 ><para
2010 ><screen
2011 >kap</screen
2012 >Stopt onmiddellijk met het uitvoeren van de huidige lus en ga verder met het uitvoeren van de programmaregel direct na de lus.</para
2013 ></listitem>
2014     </varlistentry>
2015   </variablelist>
2016 </sect2>
2017 
2018 <sect2 id="exit">
2019 <title
2020 >Het uitvoeren van je programma stoppen</title>
2021   <variablelist>
2022     <varlistentry>
2023       <term
2024 >afsluiten<indexterm
2025 ><primary
2026 >afsluiten</primary
2027 ></indexterm
2028 ></term>
2029       <listitem
2030 ><para
2031 ><screen
2032 >afsluiten</screen
2033 >Beëindigt het uitvoeren van je programma.</para
2034 ></listitem>
2035     </varlistentry>
2036   </variablelist>
2037 </sect2>
2038 
2039 <sect2 id="assert">
2040 <title
2041 >Invoer testen</title>
2042   <variablelist>
2043     <varlistentry>
2044       <term
2045 >test<indexterm
2046 ><primary
2047 >test</primary
2048 ></indexterm
2049 ></term>
2050       <listitem
2051 ><para
2052 ><screen
2053 >test <link linkend="boolean-value"
2054 >boolean</link
2055 > { ... }</screen
2056 >Kan worden gebruikt voor het beredeneren van de juistheid van het programma of van de invoer. <screen
2057 >$in = ask "In welk jaar ben je geboren?"
2058 # het jaartal moet positief zijn
2059 test $in 
2060 > 0
2061 </screen
2062 ></para
2063 ></listitem>
2064     </varlistentry>
2065   </variablelist>
2066 </sect2>
2067 </sect1>
2068 
2069 
2070 <sect1 id="learn">
2071 
2072 <title
2073 >Eigen opdrachten maken met <quote
2074 >leer</quote
2075 ></title>
2076 <para
2077 ><userinput
2078 >leer</userinput
2079 ><indexterm
2080 ><primary
2081 >leer</primary
2082 ></indexterm
2083 >  is een erg leuk commando, omdat die kan worden gebruikt om je eigen opdrachten te maken. Opdrachten die je maakt kunnen <glossterm linkend="input-output"
2084 >invoer</glossterm
2085 > nodig hebben en <glossterm linkend="input-output"
2086 >uitvoer</glossterm
2087 > teruggeven. Laten we eens kijken hoe je een nieuw commando kunt maken: <screen>
2088 leer cirkel $x {
2089    herhaal 36 {
2090      vooruit $x
2091      draailinks 10
2092   }
2093 }
2094 </screen
2095 > Het nieuwe commando heet hier dus <userinput
2096 >cirkel</userinput
2097 >. <userinput
2098 >cirkel</userinput
2099 > heeft een <glossterm linkend="input-output"
2100 >invoer</glossterm
2101 > nodig, een getal, dat de grootte van de cirkel bepaalt. <userinput
2102 >cirkel</userinput
2103 > geeft geen <glossterm linkend="input-output"
2104 >uitvoer</glossterm
2105 > terug. Het commando <userinput
2106 >cirkel</userinput
2107 > kan nu worden gebruikt als een normaal commando in de rest van de programmacode. Hier een voorbeeld: <screen
2108 >leer cirkel $x {
2109   herhaal 36 { 
2110     vooruit $x 
2111     draailinks 10 
2112   } 
2113 } 
2114 
2115 ganaar 200,200 
2116 cirkel 20
2117 
2118 ganaar 300,200 
2119 cirkel 40  
2120 </screen>
2121 </para>
2122 <para
2123 >In het volgende voorbeeld maken we een commando met een <indexterm
2124 ><primary
2125 >uitvoerwaarde</primary
2126 ></indexterm
2127 >. <screen>
2128 leer faculteit $x {
2129     $r = 1
2130     voor $i = 1 tot $x {
2131         $r = $r * $i
2132     }
2133   geefdoor $r
2134 }
2135 
2136 druk faculteit 5
2137 </screen
2138 > In dit voorbeeld maken we een nieuw commando met de naam  <userinput
2139 >faculteit</userinput
2140 >. Als de invoer van dit commando <userinput
2141 >5</userinput
2142 > is, dan is de uitvoer <userinput
2143 >5*4*3*2*1</userinput
2144 >, en dat is 120. Door  <userinput
2145 >geefdoor</userinput
2146 > wordt de waarde van de <glossterm linkend="input-output"
2147 >uitvoer</glossterm
2148 > doorgegeven (of ook wel: teruggegeven), zodat die bijvoorbeeld kan worden afgedrukt op het scherm, zoals in de laatste regel.</para>
2149 <para
2150 >Opdrachten kunnen meer dan een <glossterm linkend="input-output"
2151 >invoer</glossterm
2152 > nodig hebben. In het volgende voorbeeld maken we een commando dat een rechthoek tekent: <screen>
2153 leer rechthoek $x, $y {
2154   vooruit $y
2155   draairechts 90
2156   vooruit $x
2157   draairechts 90
2158   vooruit $y
2159   draairechts 90
2160   vooruit $x
2161   draairechts 90
2162 }
2163 </screen
2164 > Nu kun je  <userinput
2165 >rechthoek 50, 100</userinput
2166 > doen, waarna de schildpad een rechthoek tekent op het canvas. </para>
2167   
2168 </sect1>
2169 
2170 </chapter>