~ubuntu-branches/ubuntu/quantal/kde-l10n-ca/quantal-proposed

« back to all changes in this revision

Viewing changes to docs/kdeedu/kturtle/programming-reference.docbook

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2011-12-07 16:36:07 UTC
  • mfrom: (1.12.9)
  • Revision ID: package-import@ubuntu.com-20111207163607-62yh4t6orj6kz3ne
Tags: 4:4.7.3-0ubuntu1
New upstream release (svn: 1261159, type: stable)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<chapter id="reference">
 
2
<title
 
3
>Referència de programació de &turtlescript;</title>
 
4
<para
 
5
>Aquesta és la referència per a &turtlescript; de &kturtle;. En la primera secció d'aquest capítol es fa un repàs a alguns aspectes de la <link linkend="grammar"
 
6
>gramàtica</link
 
7
> dels programes de &turtlescript;. La segona secció es refereix exclusivament a els <link linkend="mathematical-operators"
 
8
>operadors matemàtics</link
 
9
>, els <link linkend="boolean-operators"
 
10
>operadors booleans (true/false -cert/fals-)</link
 
11
> i els <link linkend="comparing-operators"
 
12
>operadors de comparació</link
 
13
>. La tercera secció bàsicament és una llista gegant explicant de totes les <link linkend="commands"
 
14
>ordres</link
 
15
> instrucció a instrucció. La quarta secció explica com <link linkend="assignment-of-variables"
 
16
>assignar</link
 
17
> valors a les <link linkend="assignment-of-variables"
 
18
>variables</link
 
19
>. Per finalitzar s'explica la forma d'organitzar l'execució d'ordres amb les <link linkend="controlling-execution"
 
20
>sentències de control de l'execució</link
 
21
> en la cinquena secció i com crear les vostres pròpies ordres amb <link linkend="learn"
 
22
>aprendre</link
 
23
> en la sisena secció.</para>
 
24
 
 
25
<sect1 id="grammar">
 
26
<title
 
27
>La gramàtica de &turtlescript;</title>
 
28
<para
 
29
>Igual que en qualsevol llenguatge, &turtlescript; té diferents tipus de paraules i símbols. En anglès es distingeixen els verbs (com «to walk» -caminar- o «to sing» -cantar-) i noms (com «sister» -germana- o «house» -casa-), que s'utilitzen per a diferents propòsits. &turtlescript; és un llenguatge de programació, que s'utilitza per indicar el que ha de fer &kturtle;.</para>
 
30
<para
 
31
>En aquesta secció s'expliquen amb brevetat alguns dels diferents tipus de paraules i símbols de &turtlescript;. Expliquem els <link linkend="comment"
 
32
>comentaris</link
 
33
>, les <link linkend="command"
 
34
>ordres</link
 
35
> i els tres diferents tipus de literals: <link linkend="number"
 
36
>nombres</link
 
37
>, <link linkend="string"
 
38
>cadenes</link
 
39
> i <link linkend="boolean-value"
 
40
>valors booleans («true/false» -cert/fals-)</link
 
41
>.</para>
 
42
 
 
43
 
 
44
<sect2 id="comment">
 
45
<title
 
46
>Comentaris</title>
 
47
<para
 
48
>Un programa consisteix en les instruccions que s'executen quan s'executa el programa i els anomenats comentaris. Els comentaris no s'executen, &kturtle; simplement els ignora en executar el vostre programa. Els comentaris hi són perquè altres programadors entenguin millor el vostre programa. Tot el que segueix a un símbol <userinput
 
49
>#</userinput
 
50
> és considerat un comentari de &turtlescript;. Per exemple, aquest petit programa que no fa res: <screen>
 
51
# aquest petit programa no fa res. Només és un comentari!
 
52
</screen
 
53
> És un xic inútil, però plasma molt bé l'assumpte.</para>
 
54
<para
 
55
>Els comentaris són molt útils quan el programa es fa més complex. Poden ajudar a donar un consell als altres programadors. En el següent programa veureu que els comentaris s'utilitzen juntament amb l'ordre <link linkend="print"
 
56
>print</link
 
57
>. <screen>
 
58
# Aquest programa ha estat realitzat per Cies Breijs.
 
59
print "Aquest text serà imprès en el llenç"
 
60
# La línia anterior no és un comentari, però sí la línia següent:
 
61
# print "Aquest text no s'imprimirà!"
 
62
</screen
 
63
> La primera línia descriu el programa. La segona línia és executada per &kturtle; i imprimeix <userinput
 
64
>Aquest text serà imprès en el llenç</userinput
 
65
>. La tercera línia és un comentari. I la quarta línia és un comentari que conté un tros de &turtlescript;, si s'elimina el símbol <userinput
 
66
>#</userinput
 
67
> en la quarta línia, la declaració d'impressió serà executada per &kturtle;. Els programadors diuen: La sentència d'impressió en la quarta línia és un comentat (commented out).</para>
 
68
<para
 
69
>Les línies comentades es <glossterm
 
70
>ressalten</glossterm
 
71
> en color gris clar en l'<link linkend="the-editor"
 
72
>editor de codi</link
 
73
>.</para>
 
74
</sect2>
 
75
 
 
76
<sect2 id="command">
 
77
<title
 
78
>Ordres</title>
 
79
<para
 
80
>L'ús d'odres li diuen a la tortuga o &kturtle; que faci quelcom. Algunes ordres necessiten alguna entrada, alguna sortida. <screen>
 
81
# «forward» és una ordre que necessita una entrada, en aquest cas el número 100:
 
82
forward 100
 
83
</screen
 
84
> La primera línia és un <link linkend="comment"
 
85
>comentari</link
 
86
>. La segona línia conté l'ordre «<userinput
 
87
>forward</userinput
 
88
>» i el nombre 100. El nombre no forma part de l'ordre, es considera l'«entrada» d'aquesta.</para>
 
89
<para
 
90
>Per a una descripció detallada de totes les ordres que suporta &kturtle; aneu <link linkend="commands"
 
91
>aquí</link
 
92
>. Les ordres encastades es <glossterm
 
93
>ressalten</glossterm
 
94
> en color blau fosc.</para>
 
95
</sect2>
 
96
 
 
97
<sect2 id="number">
 
98
<title
 
99
>Nombres</title>
 
100
<para
 
101
>El més probable és que ja sabeu quelcom sobre els números. La manera com s'utilitzen en &kturtle; no és gaire diferent del llenguatge parlat, o les matemàtiques. </para>
 
102
<para
 
103
>Tenim els anomenats nombres naturals: <userinput
 
104
>0</userinput
 
105
>, <userinput
 
106
>1</userinput
 
107
>, <userinput
 
108
>2</userinput
 
109
>, <userinput
 
110
>3</userinput
 
111
>, <userinput
 
112
>4</userinput
 
113
>, <userinput
 
114
>5</userinput
 
115
>, &etc; Els nombres negatius: <userinput
 
116
>-1</userinput
 
117
>, <userinput
 
118
>-2</userinput
 
119
>, <userinput
 
120
>-3</userinput
 
121
>,&etc; I els nombres amb decimals, per exemple: <userinput
 
122
>0.1</userinput
 
123
>, <userinput
 
124
>3.14</userinput
 
125
>, <userinput
 
126
>33.3333</userinput
 
127
>, <userinput
 
128
>-5.05</userinput
 
129
>, <userinput
 
130
>-1.0</userinput
 
131
>. </para>
 
132
<para
 
133
>Els nombres es poden utilitzar en <link linkend="mathematical-operators"
 
134
>operacions matemàtiques</link
 
135
> i <link linkend="comparing-operators"
 
136
>operadors de comparació</link
 
137
>. També es poden desar en les <link linkend="assignment-of-variables"
 
138
>variables</link
 
139
>. Els números són <glossterm
 
140
>ressaltats</glossterm
 
141
> en color vermell fosc.</para>
 
142
</sect2>
 
143
 
 
144
<!-- constants like pi? -->
 
145
 
 
146
<sect2 id="string">
 
147
<title
 
148
>Cadenes</title>
 
149
<para
 
150
>Primer un exemple: <screen>
 
151
print "Hola, sóc una cadena."
 
152
</screen
 
153
> En aquest exemple <userinput
 
154
>print</userinput
 
155
> és una ordre i on <userinput
 
156
>"Hola, sóc una cadena."</userinput
 
157
> és una cadena. Les cadenes comencen i acaben amb la marca <userinput
 
158
>"</userinput
 
159
>, per aquestes marques &kturtle; sabrà que és una cadena.</para>
 
160
<para
 
161
>Les cadenes es poden posar en les <link linkend="assignment-of-variables"
 
162
>variables</link
 
163
>, igual que els <link linkend="number"
 
164
>nombres</link
 
165
>. No obstant, a diferència dels nombres, les cadenes no es poden utilitzar en els <link linkend="mathematical-operators"
 
166
>operadors matemàtics</link
 
167
> o els <link linkend="comparing-operators"
 
168
>operadors de comparació</link
 
169
>. Les cadenes es <glossterm
 
170
>ressalten</glossterm
 
171
> en color vermell.</para>
 
172
</sect2>
 
173
 
 
174
<sect2 id="boolean-value">
 
175
<title
 
176
>Els valors booleans («true/false» -cert/fals-)</title>
 
177
<para
 
178
>Només hi ha dos valors booleans: <userinput
 
179
>true</userinput
 
180
> i <userinput
 
181
>false</userinput
 
182
> (<userinput
 
183
>cert</userinput
 
184
> i <userinput
 
185
>fals</userinput
 
186
>). De vegades també se'ls crida: «on» i «off», «1» i «0». Però en &turtlescript; sempre se'ls crida, <userinput
 
187
>true</userinput
 
188
> i <userinput
 
189
>false</userinput
 
190
>. Feu una ullada a aquest tros de &turtlescript;: <screen>
 
191
$a = true
 
192
</screen
 
193
> Si ens fixem en l'<link linkend="the-inspector"
 
194
>inspector</link
 
195
> podeu veure que la <link linkend="assignment-of-variables"
 
196
>variable</link
 
197
> <userinput
 
198
>$a</userinput
 
199
> s'estableix a <userinput
 
200
>true</userinput
 
201
>, i té el tipus booleà.</para>
 
202
<para
 
203
>Els valors booleans sovint són el resultat d'un <link linkend="comparing-operators"
 
204
>operador de comparació</link
 
205
>, com en el següent fragment de &turtlescript;: <screen>
 
206
$answer = 10 &gt; 3
 
207
</screen
 
208
> La <link linkend="assignment-of-variables"
 
209
>variable</link
 
210
> <userinput
 
211
>$answer</userinput
 
212
> està establerta a <userinput
 
213
>true</userinput
 
214
>, perquè <userinput
 
215
>10</userinput
 
216
> és més gran que <userinput
 
217
>3</userinput
 
218
>.</para>
 
219
<para
 
220
>Els valors booleans, <userinput
 
221
>true</userinput
 
222
> i <userinput
 
223
>false</userinput
 
224
>, es <glossterm
 
225
>ressalten</glossterm
 
226
> en color vermell fosc.</para>
 
227
</sect2>
 
228
 
 
229
</sect1>
 
230
 
 
231
 
 
232
 
 
233
<sect1 id="operators">
 
234
<title
 
235
>Els operadors matemàtics, booleans i de comparació</title>
 
236
<para
 
237
>El títol d'aquesta secció pot reservar una certa dificultat, però, no és tan difícil com sona.</para>
 
238
 
 
239
<sect2 id="mathematical-operators">
 
240
<title
 
241
>Els operadors matemàtics</title>
 
242
<para
 
243
>Aquests són els símbols matemàtics bàsics coneguts com: add «suma» (<userinput
 
244
>+</userinput
 
245
>), subtract «resta» (<userinput
 
246
>-</userinput
 
247
>), multiply «multiplicació» (<userinput
 
248
>*</userinput
 
249
>), divide «divisió» (<userinput
 
250
>/</userinput
 
251
>) i power «potència» (<userinput
 
252
>^</userinput
 
253
>).</para>
 
254
 
 
255
<para
 
256
>Aquí teniu un petit exemple dels operadors matemàtics que podeu utilitzar en &turtlescript;: <screen>
 
257
$add      = 1 + 1
 
258
$subtract = 20 - 5
 
259
$multiply = 15 * 2
 
260
$divide   = 30 / 30
 
261
$power    = 2 ^ 2
 
262
</screen
 
263
> Els valors resultants de les operacions matemàtiques són <link linkend="assignment-of-variables"
 
264
>assignats</link
 
265
> a diverses <link linkend="assignment-of-variables"
 
266
>variables</link
 
267
>. Utilitzant l'<link linkend="the-inspector"
 
268
>inspector</link
 
269
> podeu veure els valors.</para>
 
270
<para
 
271
>Si el que voleu és fer un càlcul senzill podeu fer quelcom com això: <screen
 
272
>print 2010-12
 
273
</screen
 
274
></para>
 
275
<para
 
276
>Ara veurem un exemple amb parèntesis: <screen>
 
277
print ( ( 20 - 5 ) * 2 / 30 ) + 1
 
278
</screen
 
279
> Les expressions entre parèntesis es calculen primer. En aquest exemple, es calcula 20-5, després es multiplica per dos, dividit per 30, i després es suma 1 (el qual ens dóna 2). Els parèntesis també es poden utilitzar en altres casos.</para>
 
280
<para
 
281
>&kturtle; també té funcions matemàtiques més avançades en forma d'ordres. Feu una ullada a les següents ordres, però penseu que es tracten d'operacions avançades: <link linkend="round"
 
282
>round</link
 
283
>, <link linkend="random"
 
284
>random</link
 
285
>, <link linkend="sqrt"
 
286
>sqrt</link
 
287
>, <link linkend="pi"
 
288
>pi</link
 
289
>, <link linkend="sin"
 
290
>sin</link
 
291
>, <link linkend="cos"
 
292
>cos</link
 
293
>, <link linkend="tan"
 
294
>tan</link
 
295
>, <link linkend="arcsin"
 
296
>arcsin</link
 
297
>, <link linkend="arccos"
 
298
>arccos</link
 
299
>, <link linkend="arctan"
 
300
>arctan</link
 
301
>.</para>
 
302
</sect2>
 
303
 
 
304
<sect2 id="boolean-operators">
 
305
<title
 
306
>Els operadors booleans («true/false» -cert/fals-)</title>
 
307
<para
 
308
>On els <link linkend="mathematical-operators"
 
309
>operadors matemàtics</link
 
310
> són principalment per els <link linkend="number"
 
311
>nombres</link
 
312
>, els operadors booleans són per els <link linkend="boolean-value"
 
313
>valors booleans</link
 
314
> (<userinput
 
315
>true</userinput
 
316
> i <userinput
 
317
>false</userinput
 
318
>). Només hi ha tres operadors booleans, anomenats: <userinput
 
319
>and</userinput
 
320
>, <userinput
 
321
>or</userinput
 
322
> i <userinput
 
323
>not</userinput
 
324
>. El següent fragment de &turtlescript; mostra com usar-los: <screen>
 
325
$and_1_1 = true and true    # -> true
 
326
$and_1_0 = true and false   # -> false
 
327
$and_0_1 = false and true   # -> false
 
328
$and_0_0 = false and false  # -> false
 
329
 
 
330
$or_1_1 = true or true    # -> true
 
331
$or_1_0 = true or false   # -> true
 
332
$or_0_1 = false or true   # -> true
 
333
$or_0_0 = false or false  # -> false
 
334
 
 
335
$not_1 = not true   # -> false
 
336
$not_0 = not false  # -> true
 
337
</screen
 
338
> Utilitzant l'<link linkend="the-inspector"
 
339
>inspector</link
 
340
> podreu veure els valors, però també oferim aquests resultats com petits comentaris al final de les línies. <userinput
 
341
>and</userinput
 
342
> avalua <userinput
 
343
>true</userinput
 
344
> només si ambdues parts són <userinput
 
345
>true</userinput
 
346
>. <userinput
 
347
>or</userinput
 
348
> avalua <userinput
 
349
>true</userinput
 
350
> si una i altra part són <userinput
 
351
>true</userinput
 
352
>. I <userinput
 
353
>not</userinput
 
354
> torna un <userinput
 
355
>true</userinput
 
356
> en <userinput
 
357
>false</userinput
 
358
> i <userinput
 
359
>false</userinput
 
360
> en <userinput
 
361
>true</userinput
 
362
>.</para>
 
363
<para
 
364
>Els operadors booleans es <glossterm
 
365
>ressalten</glossterm
 
366
> en color rosa.</para>
 
367
 
 
368
<sect3 id="boolean-operators-advanced-examples">
 
369
<title
 
370
>Alguns exemples més avançats</title>
 
371
<para
 
372
>Considerem el següent exemple amb <userinput
 
373
>and</userinput
 
374
>: <screen>
 
375
 $a = 1
 
376
$b = 5
 
377
if (($a &lt; 10) and ($b == 5)) and ($a &lt; $b) {
 
378
  print "hola"
 
379
}
 
380
</screen
 
381
> En aquest fragment de &turtlescript; el resultat de tres <link linkend="comparing-operators"
 
382
>operadors de comparació</link
 
383
> es fusionen utilitzant els operadors <userinput
 
384
>and</userinput
 
385
>. Això significa que els tres han d'avaluar «true» per a que s'imprimeixi «hola».</para>
 
386
 
 
387
<para
 
388
>Un exemple amb <userinput
 
389
>or</userinput
 
390
>: <screen>
 
391
$n = 1
 
392
if ($n &lt; 10) or ($n == 2) {
 
393
  print "hola"
 
394
}
 
395
</screen
 
396
> En aquest fragment de &turtlescript; la part esquerra de <userinput
 
397
>or</userinput
 
398
> està avaluant a «true», el costat dret de «false». Atès que un dels dos costats de l'operador <userinput
 
399
>or</userinput
 
400
> és «true», l'operador <userinput
 
401
>or</userinput
 
402
> avaluarà «true». El qual vol dir que s'imprimirà «hola».</para>
 
403
 
 
404
<para
 
405
>I, finalment, un exemple amb <userinput
 
406
>not</userinput
 
407
> que els canvis de «true» a «fals» i de «fals» a «true». Feu un cop d'ull: <screen
 
408
>$n = 1
 
409
if not ($n == 3) {
 
410
  print "hola"
 
411
} else {
 
412
  print "sense hola ;-)"
 
413
}
 
414
</screen
 
415
></para>
 
416
</sect3>
 
417
</sect2>
 
418
 
 
419
<sect2 id="comparing-operators">
 
420
<title
 
421
>Els operadors de comparació</title>
 
422
<para
 
423
>Considereu en la possibilitat d'aquesta simple comparació: <screen>
 
424
$answer = 10 &gt; 3
 
425
</screen
 
426
> Aquí <userinput
 
427
>10</userinput
 
428
> és comparat amb <userinput
 
429
>3</userinput
 
430
> amb l'operador «major que». El resultat d'aquesta comparació, el <link linkend="boolean-value"
 
431
>valor booleà</link
 
432
> <userinput
 
433
>true</userinput
 
434
> es desa a la <link linkend="assignment-of-variables"
 
435
>variable</link
 
436
> <userinput
 
437
>$answer</userinput
 
438
>.</para>
 
439
<para
 
440
>Tots els <link linkend="number"
 
441
>nombres</link
 
442
> i les <link linkend="assignment-of-variables"
 
443
>variables</link
 
444
> (que contenen nombres) es poden comparar entre si amb els operadors de comparació.</para>
 
445
<para
 
446
>Aquí hi ha tots els possibles operadors de comparació: <table
 
447
> <title
 
448
>Tipus de preguntes</title
 
449
> <tgroup cols="3"
 
450
> <tbody
 
451
> <row
 
452
> <entry
 
453
><userinput
 
454
>$A == $B</userinput
 
455
></entry
 
456
> <entry
 
457
>igual que</entry
 
458
> <entry
 
459
>respon <quote
 
460
>true</quote
 
461
> si <userinput
 
462
>$A</userinput
 
463
> és igual que <userinput
 
464
>$B</userinput
 
465
></entry
 
466
> </row
 
467
> <row
 
468
> <entry
 
469
><userinput
 
470
>$A != $B</userinput
 
471
></entry
 
472
> <entry
 
473
>no igual que</entry
 
474
> <entry
 
475
>respon <quote
 
476
>true</quote
 
477
> si <userinput
 
478
>$A</userinput
 
479
> no és igual que <userinput
 
480
>$B</userinput
 
481
></entry
 
482
> </row
 
483
> <row
 
484
> <entry
 
485
><userinput
 
486
>$A &gt; $B</userinput
 
487
></entry
 
488
> <entry
 
489
>major que</entry
 
490
> <entry
 
491
>respon <quote
 
492
>true</quote
 
493
> si <userinput
 
494
>$A</userinput
 
495
> és major que <userinput
 
496
>$B</userinput
 
497
></entry
 
498
> </row
 
499
> <row
 
500
> <entry
 
501
><userinput
 
502
>$A &lt; $B</userinput
 
503
></entry
 
504
> <entry
 
505
>menor que</entry
 
506
> <entry
 
507
>respon <quote
 
508
>true</quote
 
509
> si <userinput
 
510
>$A</userinput
 
511
> és menor que <userinput
 
512
>$B</userinput
 
513
></entry
 
514
> </row
 
515
> <row
 
516
> <entry
 
517
><userinput
 
518
>$A &gt;= $B</userinput
 
519
></entry
 
520
> <entry
 
521
>major o igual que</entry
 
522
> <entry
 
523
>respon <quote
 
524
>true</quote
 
525
> si <userinput
 
526
>$A</userinput
 
527
> és major o igual que <userinput
 
528
>$B</userinput
 
529
></entry
 
530
> </row
 
531
> <row
 
532
> <entry
 
533
><userinput
 
534
>$A &lt;= $B</userinput
 
535
></entry
 
536
> <entry
 
537
>menor o igual que</entry
 
538
> <entry
 
539
>respon <quote
 
540
>true</quote
 
541
> si <userinput
 
542
>$A</userinput
 
543
> és menor o igual que <userinput
 
544
>$B</userinput
 
545
></entry
 
546
> </row
 
547
> </tbody
 
548
> </tgroup
 
549
> </table
 
550
> Tingueu en compte que $A i $B han de ser <link linkend="number"
 
551
>nombres</link
 
552
> o <link linkend="assignment-of-variables"
 
553
>variables</link
 
554
> que contenen nombres.</para>
 
555
</sect2>
 
556
 
 
557
 
 
558
</sect1>
 
559
 
 
560
 
 
561
 
 
562
<sect1 id="commands">
 
563
<title
 
564
>Ordres</title>
 
565
<para
 
566
>Utilitzant ordres li direu a la tortuga o &kturtle; que faci quelcom. Algunes ordres necessiten alguna entrada o sortida. En aquesta secció explicarem totes els ordres integrades de &kturtle;. D'altra banda, utilitzant <link linkend="learn"
 
567
>learn (aprèn)</link
 
568
>, podreu crear les vostres pròpies ordres. Les ordres integrades que es debaten aquí es <glossterm
 
569
>ressalten</glossterm
 
570
> amb color blau fosc.</para>
 
571
 
 
572
<sect2 id="moving-the-turtle">
 
573
<title
 
574
>Moure la tortuga</title>
 
575
<para
 
576
>Hi ha diverses ordres per moure la tortuga sobre la pantalla.</para>
 
577
 
 
578
  <variablelist>
 
579
    <anchor id="forward"/>
 
580
    <varlistentry
 
581
 
582
      <term
 
583
>forward -fw- (avança -av-)<indexterm
 
584
><primary
 
585
>forward -fw- (avança -av-)</primary
 
586
></indexterm
 
587
></term>
 
588
      <listitem
 
589
><para
 
590
><screen
 
591
>forward X</screen>
 
592
<userinput
 
593
>forward</userinput
 
594
> mou la tortuga cap endavant la quantitat de X píxels. Quan el llapis està sota la tortuga aquesta deixa un rastre. <userinput
 
595
>forward</userinput
 
596
> pot abreujar-se com <userinput
 
597
>fw</userinput
 
598
>.</para
 
599
></listitem>
 
600
    </varlistentry>
 
601
  </variablelist>
 
602
  <variablelist>
 
603
    <anchor id="backward"/>
 
604
    <varlistentry
 
605
>  
 
606
      <term
 
607
>backward -bw- (recula -re-)<indexterm
 
608
><primary
 
609
>backward -bw- (recula -re-)</primary
 
610
></indexterm
 
611
></term>
 
612
      <listitem
 
613
><para
 
614
><screen
 
615
>backward X</screen>
 
616
<userinput
 
617
>backward</userinput
 
618
> mou la tortuga cap enrere la quantitat de X píxels. Quan el llapis està sota la tortuga deixa un rastre. <userinput
 
619
>backward</userinput
 
620
> pot abreujar-se com <userinput
 
621
>bw</userinput
 
622
>.</para
 
623
></listitem>
 
624
    </varlistentry>
 
625
  </variablelist>
 
626
  <variablelist>
 
627
    <anchor id="turnleft"/>
 
628
    <varlistentry
 
629
 
630
      <term
 
631
>turnleft -tl- (giraesquerra -ge-)<indexterm
 
632
><primary
 
633
>turnleft -tl- (giraesquerra -ge-)</primary
 
634
></indexterm
 
635
></term>
 
636
      <listitem
 
637
><para
 
638
><screen
 
639
>turnleft X</screen>
 
640
<userinput
 
641
>turnleft</userinput
 
642
> ordena a la tortuga tornar una quantitat de X graus cap a l'esquerra. <userinput
 
643
>turnleft</userinput
 
644
> pot abreujar-se com <userinput
 
645
>tl</userinput
 
646
>.</para
 
647
></listitem>
 
648
    </varlistentry>
 
649
  </variablelist>
 
650
  <variablelist>
 
651
    <anchor id="turnright"/>
 
652
    <varlistentry
 
653
 
654
      <term
 
655
>turnright -tr- (giradreta -gd-)<indexterm
 
656
><primary
 
657
>turnright -tr- (giradreta -gd-)</primary
 
658
></indexterm
 
659
></term>
 
660
      <listitem
 
661
><para
 
662
><screen
 
663
>turnright X</screen>
 
664
<userinput
 
665
>turnright</userinput
 
666
> ordena a la tortuga tornar una quantitat de X graus cap a la dreta. <userinput
 
667
>turnright</userinput
 
668
> pot abreujar-se com <userinput
 
669
>tr</userinput
 
670
>.</para
 
671
></listitem>
 
672
    </varlistentry>
 
673
  </variablelist>
 
674
  <variablelist>
 
675
    <anchor id="direction"/>
 
676
    <varlistentry
 
677
 
678
      <term
 
679
>direction -dir- (direcció -dir-)<indexterm
 
680
><primary
 
681
>direction -dir- (direcció -dir-)</primary
 
682
></indexterm
 
683
></term>
 
684
      <listitem
 
685
><para
 
686
><screen
 
687
>direction X</screen>
 
688
<userinput
 
689
>direction</userinput
 
690
> estableix la direcció de la tortuga a una quantitat de X graus X comptant des de zero, i per tant no és relativa a la direcció anterior de la tortuga. <userinput
 
691
>direction</userinput
 
692
> pot abreujar-se com <userinput
 
693
>dir</userinput
 
694
>.</para
 
695
></listitem>
 
696
    </varlistentry>
 
697
  </variablelist>
 
698
  <variablelist>
 
699
    <anchor id="center"/>
 
700
    <varlistentry
 
701
 
702
      <term
 
703
>center (centra)<indexterm
 
704
><primary
 
705
>center (centra)</primary
 
706
></indexterm
 
707
></term>
 
708
      <listitem
 
709
><para
 
710
><screen
 
711
>center</screen>
 
712
<userinput
 
713
>center</userinput
 
714
> mourà la tortuga cap al centre sobre el llenç.</para
 
715
></listitem>
 
716
    </varlistentry>
 
717
  </variablelist>
 
718
  <variablelist>
 
719
    <anchor id="go"/>
 
720
    <varlistentry
 
721
 
722
      <term
 
723
>go (vésa)<indexterm
 
724
><primary
 
725
>go (vésa)</primary
 
726
></indexterm
 
727
></term>
 
728
      <listitem
 
729
><para
 
730
><screen
 
731
>go X,Y</screen>
 
732
<userinput
 
733
>go</userinput
 
734
> ordena a la tortuga anar cap a un lloc determinat en el llenç. Aquest lloc és X <glossterm linkend="pixels"
 
735
>píxels</glossterm
 
736
> des de l'esquerra del llenç, i Y <glossterm linkend="pixels"
 
737
>píxels</glossterm
 
738
> des de la part superior del llenç. </para
 
739
></listitem>
 
740
    </varlistentry>
 
741
  </variablelist>
 
742
  <variablelist>
 
743
    <anchor id="gox"/>
 
744
    <varlistentry
 
745
 
746
      <term
 
747
>gox (vésax)<indexterm
 
748
><primary
 
749
>gox (vésax)</primary
 
750
></indexterm
 
751
></term>
 
752
      <listitem
 
753
><para
 
754
><screen
 
755
>gox X</screen>
 
756
<userinput
 
757
>gox</userinput
 
758
> ordena a la tortuga que es desplaci X <glossterm linkend="pixels"
 
759
>píxels</glossterm
 
760
> des de l'esquerra del llenç mantenint la seva estada a la mateixa alçada.</para
 
761
></listitem>
 
762
    </varlistentry>
 
763
  </variablelist>
 
764
  <variablelist>
 
765
    <anchor id="goy"/>
 
766
    <varlistentry
 
767
 
768
      <term
 
769
>goy (vésay)<indexterm
 
770
><primary
 
771
>goy (vésay)</primary
 
772
></indexterm
 
773
></term>
 
774
      <listitem
 
775
><para
 
776
><screen
 
777
>goy Y</screen>
 
778
<userinput
 
779
>goy</userinput
 
780
> ordena a la tortuga que es desplaci Y <glossterm linkend="pixels"
 
781
>píxels</glossterm
 
782
> des de la part superior del llenç mantenint la seva estada a la mateixa distància de la vora esquerra del llenç.</para
 
783
></listitem>
 
784
    </varlistentry>
 
785
  </variablelist>
 
786
  <note
 
787
><para
 
788
>Utilitzant les ordres <userinput
 
789
>go</userinput
 
790
>, <userinput
 
791
>gox</userinput
 
792
>, <userinput
 
793
>goy</userinput
 
794
> i <userinput
 
795
>center</userinput
 
796
> la tortuga no dibuixarà una línia, tant se val si el llapis és cap amunt o cap avall.</para>
 
797
  </note>
 
798
</sect2>
 
799
 
 
800
<sect2 id="locate-the-turtle">
 
801
<title
 
802
>On és la tortuga?</title>
 
803
<para
 
804
>Hi ha dues ordres que retornen la posició de la tortuga sobre la pantalla.</para>
 
805
 
 
806
  <variablelist>
 
807
    <anchor id="getx"/>
 
808
    <varlistentry
 
809
 
810
      <term
 
811
>getx (obtinguesx)<indexterm
 
812
><primary
 
813
>getx (obtinguesx)</primary
 
814
></indexterm
 
815
></term>
 
816
      <listitem
 
817
><para
 
818
><userinput
 
819
>getx</userinput
 
820
> retorna el nombre de píxels des de l'esquerra del llenç cap a la posició actual de la tortuga.</para
 
821
></listitem>
 
822
    </varlistentry>
 
823
  </variablelist>
 
824
  <variablelist>
 
825
    <anchor id="gety"/>
 
826
    <varlistentry
 
827
 
828
      <term
 
829
>gety (obtinguesy)<indexterm
 
830
><primary
 
831
>gety (obtinguesy)</primary
 
832
></indexterm
 
833
></term>
 
834
      <listitem
 
835
><para
 
836
><userinput
 
837
>gety</userinput
 
838
> retorna el nombre de píxels des de la part superior del llenç cap a la posició actual de la tortuga.</para
 
839
></listitem>
 
840
    </varlistentry>
 
841
  </variablelist>
 
842
</sect2>
 
843
 
 
844
<sect2 id="pen">
 
845
<title
 
846
>La tortuga té un llapis</title>
 
847
<para
 
848
>La tortuga té un llapis que traça una línia quan aquesta es mou. Hi ha unes quantes ordres per controlar el llapis. S'expliquen en aquesta secció.</para>
 
849
  <variablelist>
 
850
    <anchor id="penup"/>
 
851
    <varlistentry
 
852
 
853
      <term
 
854
>penup -pu- (aixecallapis -al-)<indexterm
 
855
><primary
 
856
>penup -pu- (aixecallapis -al-)</primary
 
857
></indexterm
 
858
></term>
 
859
      <listitem
 
860
><para
 
861
><screen
 
862
>penup</screen>
 
863
<userinput
 
864
>penup</userinput
 
865
> aixeca el llapis del llenç. Quan el llapis està <quote
 
866
>aixecat</quote
 
867
> no es dibuixarà cap línia quan es mogui la tortuga. Veure també <userinput
 
868
>pendown</userinput
 
869
>. <userinput
 
870
>penup</userinput
 
871
> pot abreujar-se com <userinput
 
872
>pu</userinput
 
873
>.</para
 
874
></listitem>
 
875
    </varlistentry>
 
876
  </variablelist>
 
877
  <variablelist>
 
878
    <anchor id="pendown"/>
 
879
    <varlistentry
 
880
 
881
      <term
 
882
>pendown -pd- (baixallapis -bl-)<indexterm
 
883
><primary
 
884
>pendown -pd- (baixallapis -bl-)</primary
 
885
></indexterm
 
886
></term>
 
887
      <listitem
 
888
><para
 
889
><screen
 
890
>pendown</screen>
 
891
<userinput
 
892
>penup</userinput
 
893
> pressiona el llapis sobre el llenç. Quan el llapis està <quote
 
894
>abaixat</quote
 
895
> es dibuixarà una línia quan es mogui la tortuga. Veure també <userinput
 
896
>penup</userinput
 
897
>. <userinput
 
898
>pendown</userinput
 
899
> pot abreujar-se com <userinput
 
900
>pd</userinput
 
901
>.</para
 
902
></listitem>
 
903
    </varlistentry>
 
904
  </variablelist>
 
905
  <variablelist>
 
906
    <anchor id="setpenwidth"/>
 
907
    <varlistentry
 
908
 
909
      <term
 
910
>penwidth -pw- (gruixllapis -gl-)<indexterm
 
911
><primary
 
912
>penwidth -pw- (gruixllapis -gl-)</primary
 
913
></indexterm
 
914
></term>
 
915
      <listitem
 
916
><para
 
917
><screen
 
918
>penwidth X</screen>
 
919
<userinput
 
920
>penwidth</userinput
 
921
> estableix l'amplada del traç del llapis (l'amplada de la línia) per una quantitat de X <glossterm linkend="pixels"
 
922
>píxels</glossterm
 
923
>. <userinput
 
924
>penwidth</userinput
 
925
> pot abreujar-se com <userinput
 
926
>pw</userinput
 
927
>.</para
 
928
></listitem>
 
929
    </varlistentry>
 
930
  </variablelist>
 
931
  <variablelist>
 
932
    <anchor id="setfgcolor"/>
 
933
    <varlistentry
 
934
 
935
      <term
 
936
>pencolor -pc- (colorllapis -cl-)<indexterm
 
937
><primary
 
938
>pencolor -pc- (colorllapis -cl-)</primary
 
939
></indexterm
 
940
></term>
 
941
      <listitem
 
942
><para
 
943
><screen
 
944
>pencolor R,G,B</screen>
 
945
<userinput
 
946
>pencolor</userinput
 
947
> estableix el color del llapis. <userinput
 
948
>pencolor</userinput
 
949
> pren una <glossterm linkend="rgb"
 
950
>combinació RGB</glossterm
 
951
> com a entrada. <userinput
 
952
>pencolor</userinput
 
953
> pot abreujar-se com <userinput
 
954
>pc</userinput
 
955
>.</para
 
956
></listitem>
 
957
    </varlistentry>
 
958
  </variablelist>
 
959
</sect2>
 
960
 
 
961
<sect2 id="canvas">
 
962
<title
 
963
>Ordres per controlar el llenç</title>
 
964
<para
 
965
>Hi ha diverses odres per controlar el llenç.</para>
 
966
  <variablelist>
 
967
    <anchor id="resizecanvas"/>
 
968
    <varlistentry>
 
969
      <term
 
970
>canvassize -cs- (midapaper -mp-)<indexterm
 
971
><primary
 
972
>canvassize -cs- (midapaper -mp-)</primary
 
973
></indexterm
 
974
></term>
 
975
      <listitem
 
976
><para
 
977
><screen
 
978
>canvassize X,Y</screen>
 
979
Amb l'ordre <userinput
 
980
>canvassize</userinput
 
981
> podreu establir la mida del llenç. Agafa X i Y com a entrada, on X és l'amplada del nou llenç en <glossterm linkend="pixels"
 
982
>píxels</glossterm
 
983
>, i Y és l'alçada del nou llenç en <glossterm linkend="pixels"
 
984
>píxels</glossterm
 
985
>. <userinput
 
986
>canvassize</userinput
 
987
> pot abreujar-se com <userinput
 
988
>cs</userinput
 
989
>.</para
 
990
></listitem>
 
991
    </varlistentry>
 
992
  </variablelist>
 
993
  <variablelist>
 
994
    <anchor id="setbgcolor"/>
 
995
    <varlistentry
 
996
 
997
      <term
 
998
>canvascolor -cc- (colorpaper -cp-)<indexterm
 
999
><primary
 
1000
>canvascolor -cc- (colorpaper -cp-)</primary
 
1001
></indexterm
 
1002
></term>
 
1003
      <listitem
 
1004
><para
 
1005
><screen
 
1006
>canvascolor R,G,B</screen>
 
1007
<userinput
 
1008
>canvascolor</userinput
 
1009
> estableix el color del llenç. <userinput
 
1010
>canvascolor</userinput
 
1011
> pren una <glossterm linkend="rgb"
 
1012
>combinació RGB</glossterm
 
1013
> com a entrada. <userinput
 
1014
>canvascolor</userinput
 
1015
> pot abreujar-se com <userinput
 
1016
>cc</userinput
 
1017
>.</para
 
1018
></listitem>
 
1019
    </varlistentry>
 
1020
  </variablelist>
 
1021
</sect2>
 
1022
 
 
1023
<sect2 id="clean">
 
1024
<title
 
1025
>Ordres per netejar</title>
 
1026
<para
 
1027
>Hi ha dues ordres per netejar el llenç després d'haver fet un embolic.</para>
 
1028
  <variablelist>
 
1029
    <anchor id="clear"/>
 
1030
    <varlistentry
 
1031
 
1032
      <term
 
1033
>clear -ccl- (neteja -net-)<indexterm
 
1034
><primary
 
1035
>clear -ccl- (neteja -net-)</primary
 
1036
></indexterm
 
1037
></term>
 
1038
      <listitem
 
1039
><para
 
1040
><screen
 
1041
>clear</screen>
 
1042
Amb <userinput
 
1043
>clear</userinput
 
1044
> podreu netejar tots els dibuixos del llenç. Totes les altres coses hi romandran: La posició i l'angle de la tortuga, el color del llenç, la visibilitat de la tortuga, i la mida del llenç.</para
 
1045
></listitem>
 
1046
    </varlistentry>
 
1047
  </variablelist>
 
1048
  <variablelist>
 
1049
    <anchor id="reset"/>
 
1050
    <varlistentry
 
1051
 
1052
      <term
 
1053
>reset (inicialitza)<indexterm
 
1054
><primary
 
1055
>reset (inicialitza)</primary
 
1056
></indexterm
 
1057
></term>
 
1058
      <listitem
 
1059
><para
 
1060
><screen
 
1061
>reset</screen>
 
1062
<userinput
 
1063
>reset</userinput
 
1064
> neteja molt més a fons que l'ordre <userinput
 
1065
>clear</userinput
 
1066
>. Després d'una ordre <userinput
 
1067
>reset</userinput
 
1068
> tot quedarà com en iniciar &kturtle;. La tortuga es col·loca al centre de la pantalla, el color del llenç és blanc, la tortuga dibuixa un traç negre sobre el llenç i la mida del llenç s'estableix a 400 x 400 píxels.</para
 
1069
></listitem>
 
1070
    </varlistentry>
 
1071
  </variablelist>
 
1072
</sect2>
 
1073
 
 
1074
<sect2 id="sprites">
 
1075
<title
 
1076
>La tortuga és un sprite</title>
 
1077
<para
 
1078
>En primer lloc una breu explicació del que són els sprites: Els sprites són imatges petites que es poden moure per la pantalla, com veiem sovint en els jocs d'ordinador. La nostra tortuga és un sprite. Per a més informació veure el glossari quant a <glossterm linkend="sprites"
 
1079
>sprites</glossterm
 
1080
>. </para>
 
1081
<para
 
1082
>A continuació trobareu una descripció completa de totes les ordres per a treballar amb sprites.</para>
 
1083
<para
 
1084
>[La versió actual de &kturtle; encara no suporta l'ús d'sprites que no sigui la tortuga. Amb les futures versions es podrà canviar la tortuga per alguna cosa del vostre propi disseny.]</para>
 
1085
  <variablelist>
 
1086
    <anchor id="spriteshow"/>
 
1087
    <varlistentry
 
1088
 
1089
      <term
 
1090
>spriteshow -ss- (mostra -mo-)<indexterm
 
1091
><primary
 
1092
>spriteshow -ss- (mostra -mo-)</primary
 
1093
></indexterm
 
1094
></term>
 
1095
      <listitem
 
1096
><para
 
1097
><screen
 
1098
>spriteshow</screen>
 
1099
<userinput
 
1100
>spriteshow</userinput
 
1101
> fa la tortuga visible de nou després d'haver-la ocultat. <userinput
 
1102
>spriteshow</userinput
 
1103
> pot abreujar-se com <userinput
 
1104
>ss</userinput
 
1105
>.</para
 
1106
></listitem>
 
1107
    </varlistentry>
 
1108
  </variablelist>
 
1109
  <variablelist>
 
1110
    <anchor id="spritehide"/>
 
1111
    <varlistentry
 
1112
 
1113
      <term
 
1114
>spritehide -sh- (oculta -oc-)<indexterm
 
1115
><primary
 
1116
>spritehide -sh- (oculta -oc-)</primary
 
1117
></indexterm
 
1118
></term>
 
1119
      <listitem
 
1120
><para
 
1121
><screen
 
1122
>spritehide</screen>
 
1123
<userinput
 
1124
>spritehide</userinput
 
1125
> oculta la tortuga. Es pot utilitzar si la tortuga no s'ajusta al vostre dibuix. <userinput
 
1126
>spritehide</userinput
 
1127
> pot abreujar-se com <userinput
 
1128
>sh</userinput
 
1129
>.</para
 
1130
></listitem>
 
1131
    </varlistentry>
 
1132
  </variablelist>
 
1133
</sect2>
 
1134
 
 
1135
<sect2 id="writing">
 
1136
<title
 
1137
>Pot escriure la tortuga?</title>
 
1138
<para
 
1139
>La resposta és: <quote
 
1140
>Sí</quote
 
1141
>. La tortuga pot escriure: Escriu gairebé tot el que se li ordena.</para>
 
1142
  <variablelist>
 
1143
    <anchor id="print"/>
 
1144
    <varlistentry
 
1145
 
1146
      <term
 
1147
>print (imprimeix)<indexterm
 
1148
><primary
 
1149
>print (imprimeix)</primary
 
1150
></indexterm
 
1151
></term>
 
1152
      <listitem
 
1153
><para
 
1154
><screen
 
1155
>print X</screen>
 
1156
L'ordre <userinput
 
1157
>print</userinput
 
1158
> s'utilitza per ordenar a la tortuga per escrigui quelcom en el llenç. <userinput
 
1159
>print</userinput
 
1160
> pren els números i cadenes com a entrada. Podeu imprimir diversos nombres i cadenes mitjançant el símbol <quote
 
1161
>+</quote
 
1162
>. Veure aquest petit exemple: <screen
 
1163
>$year = 2003
 
1164
$author = "Joan"
 
1165
print "En " + $author + " va començar el projecte KTurtle al " + $year + " i encara gaudeix treballant-hi!"
 
1166
</screen>
 
1167
      </para
 
1168
></listitem>
 
1169
    </varlistentry>
 
1170
  </variablelist>
 
1171
  <variablelist>
 
1172
    <anchor id="fontsize"/>
 
1173
    <varlistentry
 
1174
 
1175
      <term
 
1176
>fontsize (midalletra)<indexterm
 
1177
><primary
 
1178
>fontsize (midalletra)</primary
 
1179
></indexterm
 
1180
></term>
 
1181
      <listitem
 
1182
><para
 
1183
><screen
 
1184
>fontsize X</screen>
 
1185
<userinput
 
1186
>fontsize</userinput
 
1187
> estableix la mida del tipus de lletra utilitza per <userinput
 
1188
>print</userinput
 
1189
>. <userinput
 
1190
>fontsize</userinput
 
1191
> pren una entrada que ha de ser un nombre. La mida s'estableix en <glossterm linkend="pixels"
 
1192
>píxels</glossterm
 
1193
>.</para
 
1194
></listitem>
 
1195
    </varlistentry>
 
1196
  </variablelist>
 
1197
</sect2>
 
1198
 
 
1199
<sect2 id="math-commands">
 
1200
<title
 
1201
>Ordres matemàtiques</title>
 
1202
<para
 
1203
>Les següents ordres són les ordres matemàtiques més avançades de &kturtle;.</para>
 
1204
  <variablelist>
 
1205
    <anchor id="round"/>
 
1206
    <varlistentry>
 
1207
      <term
 
1208
>round (arrod)<indexterm
 
1209
><primary
 
1210
>round (arrod)</primary
 
1211
></indexterm
 
1212
></term>
 
1213
      <listitem
 
1214
><para
 
1215
><screen
 
1216
>round(x)</screen>
 
1217
<userinput
 
1218
>round</userinput
 
1219
> arrodoneix el nombre indicat a l'enter més proper. <screen>
 
1220
print round(10.8)
 
1221
forward 20
 
1222
print round(10.3)
 
1223
</screen
 
1224
> Amb aquest codi la tortuga imprimirà els nombres 11 i 10.</para
 
1225
></listitem>
 
1226
    </varlistentry>
 
1227
  </variablelist>
 
1228
  <variablelist>
 
1229
    <anchor id="random"/>
 
1230
    <varlistentry
 
1231
 
1232
      <term
 
1233
>random -rnd- (aleatori -ale-)<indexterm
 
1234
><primary
 
1235
>random -rnd- (aleatori -ale-)</primary
 
1236
></indexterm
 
1237
></term>
 
1238
      <listitem
 
1239
><para
 
1240
><screen
 
1241
>random X,Y</screen>
 
1242
<userinput
 
1243
>random</userinput
 
1244
> és una ordre que pren l'entrada i dóna una sortida. Com entrada requereix dos nombres, el primer (X) estableix el mínim de la sortida, el segon (Y) estableix el màxim. La sortida és un nombre escollit a l'atzar que és igual o superior al mínim i igual o menor que el màxim. Aquí hi ha un petit exemple: <screen>
 
1245
repeat 500 {
 
1246
  $x = random 1,20
 
1247
  forward $x
 
1248
  turnleft 10 - $x
 
1249
}
 
1250
</screen
 
1251
> Utilitzant l'ordre <userinput
 
1252
>random</userinput
 
1253
> podeu afegir una mica de caos al vostre programa.</para
 
1254
></listitem>
 
1255
    </varlistentry>
 
1256
  </variablelist>
 
1257
  <variablelist>
 
1258
    <anchor id="sqrt"/>
 
1259
    <varlistentry
 
1260
 
1261
      <term
 
1262
>sqrt (arrel)<indexterm
 
1263
><primary
 
1264
>sqrt (arrel)</primary
 
1265
></indexterm
 
1266
></term>
 
1267
      <listitem
 
1268
><para
 
1269
><screen
 
1270
>sqrt X</screen>
 
1271
L'ordre <userinput
 
1272
>sqrt</userinput
 
1273
> és un requeriment per trobar l'arrel quadrada d'un nombre, X.</para
 
1274
></listitem>
 
1275
    </varlistentry>
 
1276
  </variablelist>
 
1277
<!--
 
1278
  <variablelist>
 
1279
    <anchor id="exp"/>
 
1280
    <varlistentry
 
1281
 
1282
      <term
 
1283
>exp<indexterm
 
1284
><primary
 
1285
>exp</primary
 
1286
></indexterm
 
1287
></term>
 
1288
      <listitem
 
1289
><para
 
1290
><screen
 
1291
>sqrt X</screen>
 
1292
      </para
 
1293
></listitem>
 
1294
    </varlistentry>
 
1295
  </variablelist>
 
1296
-->
 
1297
  <variablelist>
 
1298
    <anchor id="pi"/>
 
1299
    <varlistentry
 
1300
 
1301
      <term
 
1302
>pi<indexterm
 
1303
><primary
 
1304
>pi</primary
 
1305
></indexterm
 
1306
></term>
 
1307
      <listitem
 
1308
><para
 
1309
><screen
 
1310
>pi</screen>
 
1311
Aquesta ordre retorna la constant Pi, <userinput
 
1312
>3.14159</userinput
 
1313
>.</para
 
1314
></listitem>
 
1315
    </varlistentry>
 
1316
  </variablelist>
 
1317
  <variablelist>
 
1318
    <anchor id="sin"/>
 
1319
    <anchor id="cos"/>
 
1320
    <anchor id="tan"/>
 
1321
    <varlistentry>
 
1322
      <term
 
1323
>sin<indexterm
 
1324
><primary
 
1325
>sin</primary
 
1326
></indexterm
 
1327
>, cos<indexterm
 
1328
><primary
 
1329
>cos</primary
 
1330
></indexterm
 
1331
>, tan<indexterm
 
1332
><primary
 
1333
>tan</primary
 
1334
></indexterm
 
1335
></term>
 
1336
      <listitem
 
1337
><para>
 
1338
<screen
 
1339
>sin X
 
1340
cos X
 
1341
tan X
 
1342
</screen>
 
1343
Aquestes tres ordres representen les famoses funcions trigonomètriques <userinput
 
1344
>sin</userinput
 
1345
>, <userinput
 
1346
>cos</userinput
 
1347
> i <userinput
 
1348
>tan</userinput
 
1349
>. L'argument d'entrada d'aquestes ordres, X, és un <link linkend="number"
 
1350
>nombre</link
 
1351
>.</para
 
1352
></listitem>
 
1353
    </varlistentry>
 
1354
  </variablelist>
 
1355
  <variablelist>
 
1356
    <anchor id="arcsin"/>
 
1357
    <anchor id="arccos"/>
 
1358
    <anchor id="arctan"/>
 
1359
    <varlistentry>
 
1360
      <term
 
1361
>arcsin<indexterm
 
1362
><primary
 
1363
>arcsin</primary
 
1364
></indexterm
 
1365
>, arccos<indexterm
 
1366
><primary
 
1367
>arccos</primary
 
1368
></indexterm
 
1369
>, arctan<indexterm
 
1370
><primary
 
1371
>arctan</primary
 
1372
></indexterm
 
1373
></term>
 
1374
      <listitem
 
1375
><para>
 
1376
<screen
 
1377
>arcsin X
 
1378
arccos X
 
1379
arctan X
 
1380
</screen>
 
1381
Aquestes ordres són les funcions inverses de <link linkend="sin"
 
1382
>sin</link
 
1383
>, <link linkend="cos"
 
1384
>cos</link
 
1385
> i <link linkend="tan"
 
1386
>tan</link
 
1387
>. L'argument d'entrada d'aquestes ordres, X, és un <link linkend="number"
 
1388
>nombre</link
 
1389
>.</para
 
1390
></listitem>
 
1391
    </varlistentry>
 
1392
  </variablelist>
 
1393
</sect2>
 
1394
 
 
1395
<sect2 id="dialogs">
 
1396
<title
 
1397
>Aportacions i comentaris amb els diàlegs</title>
 
1398
<para
 
1399
>Un diàleg és una petita finestra emergent que proporciona alguna informació o us demana alguna entrada. &kturtle; té dos ordres per als diàlegs, anomenades: <userinput
 
1400
>message</userinput
 
1401
> i <userinput
 
1402
>ask</userinput
 
1403
></para>
 
1404
  <variablelist>
 
1405
    <anchor id="message"/>
 
1406
    <varlistentry
 
1407
 
1408
      <term
 
1409
>message (missatge)<indexterm
 
1410
><primary
 
1411
>message (missatge)</primary
 
1412
></indexterm
 
1413
></term>
 
1414
      <listitem
 
1415
><para
 
1416
><screen
 
1417
>message X</screen>
 
1418
L'ordre <userinput
 
1419
>message</userinput
 
1420
> pren una <link linkend="string"
 
1421
>cadena</link
 
1422
> com a entrada. Mostra un diàleg emergent que conté el text de la <link linkend="string"
 
1423
>cadena</link
 
1424
>. <screen
 
1425
>message "En Joan va començar el projecte KTurtle al 2003 i encara gaudeix treballant-hi!"
 
1426
</screen>
 
1427
      </para
 
1428
></listitem>
 
1429
    </varlistentry>
 
1430
  </variablelist>
 
1431
  <variablelist>
 
1432
    <anchor id="ask"/>
 
1433
    <varlistentry
 
1434
 
1435
      <term
 
1436
>ask (pregunta)<indexterm
 
1437
><primary
 
1438
>ask (pregunta)</primary
 
1439
></indexterm
 
1440
></term>
 
1441
      <listitem
 
1442
><para
 
1443
><screen
 
1444
>ask X</screen>
 
1445
<userinput
 
1446
>ask</userinput
 
1447
> pren una cadena com a entrada. La mostra en un diàleg emergent (similar a <link linkend="string"
 
1448
>message</link
 
1449
>), juntament amb un camp d'entrada. Després que l'usuari ha introduït un nombre o una cadena, el resultat es pot desar en una variable o passar-lo com a argument a una ordre. Per exemple: <screen>
 
1450
$in = ask "Quina és la vostra data de naixement?"
 
1451
$out = 2003 - $in
 
1452
print "L'any 2003 que van ser " + $out + " anys d'edat en algun moment."
 
1453
</screen
 
1454
> Si l'usuari cancel·la el diàleg d'entrada, o no entra res, la variable quedarà buida.</para
 
1455
></listitem>
 
1456
    </varlistentry>
 
1457
  </variablelist>
 
1458
</sect2>
 
1459
 
 
1460
</sect1>
 
1461
 
 
1462
 
 
1463
 
 
1464
<sect1 id="assignment-of-variables">
 
1465
<title
 
1466
>Assignar les variables</title>
 
1467
<para
 
1468
>En primer lloc farem una ullada a les variables, llavors ens centrarem en l'assignació de valors a aquestes variables. </para>
 
1469
 
 
1470
<para
 
1471
>Les variables són paraules que comencen amb un <quote
 
1472
>$</quote
 
1473
>, en l'<link linkend="the-editor"
 
1474
>editor</link
 
1475
> es ressalten amb color <glossterm
 
1476
>porpra</glossterm
 
1477
>.</para>
 
1478
 
 
1479
<para
 
1480
>Les variables poden contenir qualsevol <link linkend="number"
 
1481
>nombre</link
 
1482
>, <link linkend="string"
 
1483
>cadena</link
 
1484
> o <link linkend="boolean-value"
 
1485
>valor booleà (true/false -cert/fals-)</link
 
1486
>. Utilitzant l'assignació, <userinput
 
1487
>=</userinput
 
1488
>, una variable pren el seu contingut. La qual mantindrà el contingut fins que el programa s'acabi d'executar o fins que la variable es torni a assignar a quelcom altre.</para>
 
1489
 
 
1490
<para
 
1491
>Podeu utilitzar variables, un cop assignades, simplement mantenen el seu contingut. Per exemple, en el següent fragment de &turtlescript;: <screen>
 
1492
$x = 10
 
1493
$x = $x / 3
 
1494
print $x
 
1495
</screen
 
1496
> Primer a la variable <userinput
 
1497
>$x</userinput
 
1498
> se li assigna <userinput
 
1499
>10</userinput
 
1500
>. Llavors a <userinput
 
1501
>$x</userinput
 
1502
> es torna a assignar a la seva divisió per <userinput
 
1503
>3</userinput
 
1504
> -això significa que <userinput
 
1505
>$x</userinput
 
1506
> es torna assignar al producte de <userinput
 
1507
>10 / 3</userinput
 
1508
>. Finalment imprimeix <userinput
 
1509
>$x</userinput
 
1510
>. En la línia dos i tres veureu que <userinput
 
1511
>$x</userinput
 
1512
> s'utilitza com si fos el seu contingut.</para>
 
1513
 
 
1514
<para
 
1515
>Les variables han de ser assignades per tal de ser utilitzades. Per exemple: <screen>
 
1516
print $n
 
1517
</screen
 
1518
> Donarà com a resultat un missatge d'error.</para>
 
1519
 
 
1520
<para
 
1521
>Observem el següent fragment de &turtlescript;: <screen>
 
1522
$a = 2004
 
1523
$b = 25
 
1524
 
 
1525
# Les següents ordres imprimeixen «2029»
 
1526
print $a + $b
 
1527
backward 30
 
1528
# La següent ordre imprimeix «2004 més 25 és igual que 2029»
 
1529
print $a + " més " + $b + " és igual que " + ($a + $b)
 
1530
</screen
 
1531
> En les dues primeres línies les variables <userinput
 
1532
>$a</userinput
 
1533
> i <userinput
 
1534
>$b</userinput
 
1535
> s'estableixen a 2004 i 25. Després s'executen dues ordres <userinput
 
1536
>print</userinput
 
1537
> amb una <userinput
 
1538
>backward 30</userinput
 
1539
> al mig. Els comentaris abans de l'ordre <userinput
 
1540
>print</userinput
 
1541
> expliquen el que faran. L'ordre <userinput
 
1542
>backward 30</userinput
 
1543
> hi és per assegurar que cada sortida és una nova línia. Com podeu veure les variables es poden utilitzar com si fossin el que contenen, es poden utilitzar amb qualsevol tipus d'<link linkend="operators"
 
1544
>operador</link
 
1545
> o com a entrada en utilitzar altres <link linkend="commands"
 
1546
>ordres</link
 
1547
>.</para>
 
1548
 
 
1549
<para
 
1550
>Un exemple més: <screen>
 
1551
$name = ask "Quin és el teu nom?"
 
1552
print "Hola " + $name + "! Bona sort mentre apreneu l'art de la programació..."
 
1553
</screen
 
1554
> Força simple. Una vegada més podeu veure com la variable <userinput
 
1555
>$name</userinput
 
1556
>, és tractada com una cadena.</para>
 
1557
 
 
1558
<para
 
1559
>En utilitzar variables l'<link linkend="the-inspector"
 
1560
>inspector</link
 
1561
> resulta molt útil. Mostra el contingut de totes les variables que estan actualment en ús.</para>
 
1562
</sect1>
 
1563
 
 
1564
 
 
1565
 
 
1566
<sect1 id="controlling-execution">
 
1567
<title
 
1568
>Controlar l'execució</title>
 
1569
<para
 
1570
>Els controladors de l'execució us permeten -tal com el seu nom indica- controlar l'execució.</para>
 
1571
<para
 
1572
>Els controladors de l'execució es <glossterm
 
1573
>ressalten</glossterm
 
1574
> amb color verd fosc en un tipus de lletra en negreta. Els parèntesis s'utilitzen juntament amb els controladors de l'execució i es ressalten amb color negre.</para>
 
1575
 
 
1576
<sect2 id="wait">
 
1577
<title
 
1578
>Fer que la tortuga esperi</title>
 
1579
<para
 
1580
>Si heu fet quelcom de programació en &kturtle; us haureu adonat que la tortuga pot ser molt ràpida dibuixant. Aquesta ordre farà que la tortuga esperi un període de temps determinat.</para>
 
1581
  <variablelist>
 
1582
    <varlistentry>
 
1583
      <term
 
1584
>wait (espera)<indexterm
 
1585
><primary
 
1586
>wait (espera)</primary
 
1587
></indexterm
 
1588
></term>
 
1589
      <listitem
 
1590
><para
 
1591
><screen
 
1592
>wait X</screen>
 
1593
<userinput
 
1594
>wait</userinput
 
1595
> fa que la tortuga esperi durant X segons. <screen>
 
1596
repeat 36 {
 
1597
  forward 5
 
1598
  turnright 10
 
1599
  wait 0.5
 
1600
}
 
1601
</screen
 
1602
> Aquest codi dibuixa un cercle, però la tortuga esperarà mig segon després de cada pas. Això fa l'efecte d'una tortuga lenta.</para
 
1603
></listitem>
 
1604
    </varlistentry>
 
1605
  </variablelist>
 
1606
</sect2>
 
1607
 
 
1608
<sect2 id="if">
 
1609
<title
 
1610
>Executa «if -si-»</title>
 
1611
  <variablelist>
 
1612
    <varlistentry>
 
1613
      <term
 
1614
>if (si)<indexterm
 
1615
><primary
 
1616
>if (si)</primary
 
1617
></indexterm
 
1618
></term>
 
1619
      <listitem
 
1620
><para
 
1621
><screen
 
1622
>if <link linkend="boolean-value"
 
1623
>booleà</link
 
1624
> { ... }</screen>
 
1625
El codi que es col·loca entre els claudàtors només s'executarà si el <link linkend="boolean-value"
 
1626
>valor booleà</link
 
1627
> avalua <quote
 
1628
>true</quote
 
1629
>. <screen>
 
1630
$x = 6
 
1631
if $x &gt; 5 {
 
1632
  print "$x és major que quatre!"
 
1633
}
 
1634
</screen
 
1635
> A la primera línia <userinput
 
1636
>$x</userinput
 
1637
> està establert a 6. En la segona línia s'utilitza un <link linkend="boolean-value"
 
1638
>operador de comparació</link
 
1639
> per avaluar $x &gt; 5. Atès que aquest avalua <quote
 
1640
>true</quote
 
1641
>, 6 és més gran que 5, el controlador de l'execució <userinput
 
1642
>if</userinput
 
1643
> permet executar el codi entre els claudàtors.</para
 
1644
></listitem>
 
1645
    </varlistentry>
 
1646
  </variablelist>
 
1647
</sect2>
 
1648
 
 
1649
<sect2 id="else">
 
1650
<title
 
1651
>Si no, en altres paraules: «else -altrament-»</title>
 
1652
  <variablelist>
 
1653
    <varlistentry>
 
1654
      <term
 
1655
>else (altrament)<indexterm
 
1656
><primary
 
1657
>else (altrament)</primary
 
1658
></indexterm
 
1659
></term>
 
1660
      <listitem
 
1661
><para
 
1662
><screen
 
1663
>if <link linkend="boolean-value"
 
1664
>booleà</link
 
1665
> { ... } else { ... }</screen>
 
1666
<userinput
 
1667
>else</userinput
 
1668
> es pot utilitzar a més del controlador de l'execució <link linkend="if"
 
1669
><userinput
 
1670
>if</userinput
 
1671
></link
 
1672
>. El codi entre claudàtors després de <userinput
 
1673
>else</userinput
 
1674
> només s'executa si el <link linkend="boolean-value"
 
1675
>booleà</link
 
1676
> avalua <quote
 
1677
>false</quote
 
1678
>. <screen>
 
1679
reset
 
1680
$x = 4
 
1681
if $x &gt; 5 {
 
1682
  print "$x és major que cinc!"
 
1683
} else {
 
1684
  print "$x és menor que sis!"
 
1685
}
 
1686
</screen
 
1687
> L'<link linkend="comparing-operators"
 
1688
>operador de comparació</link
 
1689
> avalua l'expressió <userinput
 
1690
>$x &gt; 5</userinput
 
1691
>. Donat que 4 no és més gran que 5, l'expressió s'avalua com <quote
 
1692
>fals</quote
 
1693
>. Això significa que el codi entre claudàtors després de <userinput
 
1694
>else</userinput
 
1695
> serà executat.</para
 
1696
></listitem>
 
1697
    </varlistentry>
 
1698
  </variablelist>
 
1699
</sect2>
 
1700
 
 
1701
<sect2 id="while">
 
1702
<title
 
1703
>El bucle «while -mentre-»</title>
 
1704
  <variablelist>
 
1705
    <varlistentry>
 
1706
      <term
 
1707
>while (mentre)<indexterm
 
1708
><primary
 
1709
>while (mentre)</primary
 
1710
></indexterm
 
1711
></term>
 
1712
      <listitem
 
1713
><para
 
1714
><screen
 
1715
>while <link linkend="boolean-value"
 
1716
>booleà</link
 
1717
> { ... }</screen>
 
1718
El controlador de l'execució <userinput
 
1719
>while</userinput
 
1720
> s'assembla molt a <link linkend="if"
 
1721
><userinput
 
1722
>if</userinput
 
1723
></link
 
1724
>. La diferència és que <userinput
 
1725
>while</userinput
 
1726
> no deixa de repetir (en bucle) el codi entre claudàtors fins que el <link linkend="boolean-value"
 
1727
>booleà</link
 
1728
> avalua <quote
 
1729
>false</quote
 
1730
>. <screen>
 
1731
$x = 1
 
1732
while $x &lt; 5 {
 
1733
  forward 10
 
1734
  wait 1
 
1735
  $x = $x + 1
 
1736
}
 
1737
</screen
 
1738
> En la primera línia <userinput
 
1739
>$x</userinput
 
1740
> s'estableix a 1. En la segona línia s'avalua <userinput
 
1741
>$x &lt; 5</userinput
 
1742
>. Atès que la resposta a aquesta pregunta és <quote
 
1743
>true</quote
 
1744
> el controlador de l'execució while començarà a executar el codi entre claudàtors fins que <userinput
 
1745
>$x &lt; 5</userinput
 
1746
> avaluï <quote
 
1747
>false</quote
 
1748
>. En aquest cas el codi entre els claudàtors s'executarà quatre vegades, perquè cada vegada que s'executa la cinquena línia <userinput
 
1749
>$x</userinput
 
1750
> s'incrementa en 1.</para
 
1751
></listitem>
 
1752
    </varlistentry>
 
1753
  </variablelist>
 
1754
</sect2>
 
1755
 
 
1756
<sect2 id="repeat">
 
1757
<title
 
1758
>El bucle «repeat -repeteix-»</title>
 
1759
  <variablelist>
 
1760
    <varlistentry>
 
1761
      <term
 
1762
>repeat (repeteix)<indexterm
 
1763
><primary
 
1764
>repeat (repeteix)</primary
 
1765
></indexterm
 
1766
></term>
 
1767
      <listitem
 
1768
><para
 
1769
><screen
 
1770
>repeat <link linkend="number"
 
1771
>nombre</link
 
1772
> { ... }</screen>
 
1773
El controlador de l'execució <userinput
 
1774
>repeat</userinput
 
1775
> és molt similar <link linkend="while"
 
1776
><userinput
 
1777
>while</userinput
 
1778
></link
 
1779
>. La diferència és que <userinput
 
1780
>repeat</userinput
 
1781
> no deixa de repetir (en bucle) el codi entre els claudàtors fins abastar les vegades que el nombre indica.</para
 
1782
></listitem>
 
1783
    </varlistentry>
 
1784
  </variablelist>
 
1785
</sect2>
 
1786
 
 
1787
<sect2 id="for">
 
1788
<title
 
1789
>El bucle «for -per-», un bucle de comptatge</title>
 
1790
  <variablelist>
 
1791
    <varlistentry>
 
1792
      <term
 
1793
>for (per)<indexterm
 
1794
><primary
 
1795
>for (per)</primary
 
1796
></indexterm
 
1797
><indexterm
 
1798
><primary
 
1799
>step (pas)</primary
 
1800
></indexterm
 
1801
></term>
 
1802
      <listitem
 
1803
><para
 
1804
><screen
 
1805
>for <link linkend="assignment-of-variables"
 
1806
>variable</link
 
1807
> = <link linkend="number"
 
1808
>nombre</link
 
1809
> to <link linkend="number"
 
1810
>nombre</link
 
1811
> { ... }</screen>
 
1812
El bucle <userinput
 
1813
>for</userinput
 
1814
> és un <quote
 
1815
>bucle de comptatge</quote
 
1816
>, &ead;, que porta el compte per a vós. El primer nombre estableix la variable amb el valor en el primer bucle. Cada bucle incrementa aquest nombre fins que s'assoleix el segon nombre. <screen>
 
1817
for $x = 1 to 10 {
 
1818
  print $x * 7
 
1819
  forward 15
 
1820
}
 
1821
</screen
 
1822
> Cada vegada que s'executa el codi entre claudàtors <userinput
 
1823
>$x</userinput
 
1824
> s'incrementa en 1, fins que <userinput
 
1825
>$x</userinput
 
1826
> assoleix al valor de 10. El codi entre claudàtors imprimeix <userinput
 
1827
>$x</userinput
 
1828
> multiplicat per 7. Després que aquest programa acaba la seva execució veureu la taula de temps de 7 en el llenç. </para>
 
1829
     <para
 
1830
>L'increment per omissió d'un bucle és 1, podeu utilitzar un altre valor amb <screen
 
1831
>for <link linkend="assignment-of-variables"
 
1832
>variable</link
 
1833
> = <link linkend="number"
 
1834
>nombre</link
 
1835
> to <link linkend="number"
 
1836
>nombre</link
 
1837
> step <link linkend="number"
 
1838
>nombre</link
 
1839
> { ... }</screen
 
1840
></para
 
1841
></listitem>
 
1842
    </varlistentry>
 
1843
  </variablelist>
 
1844
</sect2>
 
1845
 
 
1846
<sect2 id="break">
 
1847
<title
 
1848
>Deixar un bucle</title>
 
1849
  <variablelist>
 
1850
    <varlistentry>
 
1851
      <term
 
1852
>break (trenca)<indexterm
 
1853
><primary
 
1854
>break (trenca)</primary
 
1855
></indexterm
 
1856
></term>
 
1857
      <listitem
 
1858
><para
 
1859
><screen
 
1860
>break</screen>
 
1861
Finalitza el bucle actual immediatament i transfereix el control a la sentència immediatament següent a aquest bucle.</para
 
1862
></listitem>
 
1863
    </varlistentry>
 
1864
  </variablelist>
 
1865
</sect2>
 
1866
 
 
1867
<sect2 id="exit">
 
1868
<title
 
1869
>Aturar l'execució del vostre programa</title>
 
1870
  <variablelist>
 
1871
    <varlistentry>
 
1872
      <term
 
1873
>exit (surt)<indexterm
 
1874
><primary
 
1875
>exit (surt)</primary
 
1876
></indexterm
 
1877
></term>
 
1878
      <listitem
 
1879
><para
 
1880
><screen
 
1881
>exit</screen>
 
1882
Finalitza l'execució del vostre programa.</para
 
1883
></listitem>
 
1884
    </varlistentry>
 
1885
  </variablelist>
 
1886
</sect2>
 
1887
</sect1>
 
1888
 
 
1889
 
 
1890
<sect1 id="learn">
 
1891
 
 
1892
 
 
1893
<!--<sect2 id="name">
 
1894
<title
 
1895
>Names</title>
 
1896
<para
 
1897
>When using the &turtlescript; programming language you create new things. If you write a program you will often need <link linkend="containers"
 
1898
>containers</link
 
1899
> and in some cases you need <link linkend="learn"
 
1900
>learn</link
 
1901
> to create new commands. When making a new command with <link linkend="learn"
 
1902
>learn</link
 
1903
> you will have to specify a name.</para>
 
1904
<para
 
1905
>You can choose any name, as long as it does not already have a meaning. For instance you cannot name a function <link linkend="forward"
 
1906
>forward</link
 
1907
>, since that name is already used for an internal command.
 
1908
<screen
 
1909
>
 
1910
# here forward is used as a new command, 
 
1911
# but it already has a meaning so 
 
1912
# this will produce an error:
 
1913
learn forward {
 
1914
  print "this is invalid"
 
1915
}
 
1916
 
 
1917
# this works:
 
1918
learn myforward {
 
1919
  print "this is ok"
 
1920
}
 
1921
</screen>
 
1922
Names can contain only letters, numbers and underscores (_). Yet they have to start with a letter. Container names have to start with the container prefix ($).
 
1923
<screen
 
1924
>
 
1925
# here forward is used as a container, 
 
1926
# starting with the $ prefix, so it does
 
1927
# not conflict with the forward command
 
1928
$forward = 20
 
1929
print $forward
 
1930
</screen>
 
1931
</para>
 
1932
<para
 
1933
>Containers are <glossterm
 
1934
>highlighted</glossterm
 
1935
> with bolded purple in the <link linkend="the-editor"
 
1936
>code editor</link
 
1937
>.</para>
 
1938
<para>
 
1939
Please read the documentation on <link linkend="containers"
 
1940
>containers</link
 
1941
> and the <link linkend="learn"
 
1942
>learn</link
 
1943
> command for a better explanation and more examples.
 
1944
</para>
 
1945
</sect2
 
1946
>-->
 
1947
 
 
1948
 
 
1949
 
 
1950
 
 
1951
 
 
1952
<title
 
1953
>Crear les vostres pròpies ordres amb <quote
 
1954
>learn -aprèn-</quote
 
1955
></title>
 
1956
<para
 
1957
><userinput
 
1958
>learn</userinput
 
1959
> és especial, ja que s'utilitza per crear els vostres pròpies ordres. Les ordres que creeu poden agafar una <glossterm linkend="input-output"
 
1960
>entrada</glossterm
 
1961
> i retornar una <glossterm linkend="input-output"
 
1962
>sortida</glossterm
 
1963
>. Fem una ullada a com es crea un nova ordre: <screen>
 
1964
learn circle $x {
 
1965
  repeat 36 {
 
1966
    forward $x
 
1967
    turnleft 10
 
1968
  }
 
1969
}
 
1970
</screen
 
1971
> La nova ordre s'anomena <userinput
 
1972
>circle</userinput
 
1973
>. <userinput
 
1974
>circle</userinput
 
1975
> té una <glossterm linkend="input-output"
 
1976
>entrada</glossterm
 
1977
> com argument, per establir la mida del cercle. <userinput
 
1978
>circle</userinput
 
1979
> no torna cap <glossterm linkend="input-output"
 
1980
>sortida</glossterm
 
1981
>. Ara podeu utilitzar l'ordre <userinput
 
1982
>circle</userinput
 
1983
> com una ordre normal a la resta del codi. Veure aquest exemple: <screen
 
1984
>learn circle $X {
 
1985
  repeat 36 {
 
1986
    forward $X 
 
1987
    turnleft 10 
 
1988
  }
 
1989
}
 
1990
 
 
1991
go 200,200 
 
1992
circle 20
 
1993
 
 
1994
go 300,200 
 
1995
circle 40  
 
1996
</screen>
 
1997
</para>
 
1998
<para
 
1999
>En el següent exemple, es crea una ordre amb un valor de retorn. <screen>
 
2000
learn faculty $x {
 
2001
  $r = 1
 
2002
  for $i = 1 to $x {
 
2003
    $r = $r * $i
 
2004
  }
 
2005
  return $r
 
2006
}
 
2007
 
 
2008
print faculty 5
 
2009
</screen
 
2010
>En aquest exemple es crea un nova ordre anomenada <userinput
 
2011
>faculty</userinput
 
2012
>. Si l'entrada d'aquesta ordre és <userinput
 
2013
>5</userinput
 
2014
>, la sortida serà <userinput
 
2015
>5*4*3*2*1</userinput
 
2016
>. Mitjançant l'ús de <userinput
 
2017
>return</userinput
 
2018
> s'especificarà el valor de la <glossterm linkend="input-output"
 
2019
>sortida</glossterm
 
2020
> i es retornarà la fi de l'execució.</para>
 
2021
<para
 
2022
>Les ordres poden tenir més d'una <glossterm linkend="input-output"
 
2023
>entrada</glossterm
 
2024
>. En el següent exemple, es crea una ordre que dibuixa un rectangle: <screen>
 
2025
learn box $x, $y {
 
2026
  forward $y
 
2027
  turnright 90
 
2028
  forward $x
 
2029
  turnright 90
 
2030
  forward $y
 
2031
  turnright 90
 
2032
  forward $x
 
2033
  turnright 90
 
2034
}
 
2035
</screen
 
2036
> Ara podeu executar <userinput
 
2037
>box 50, 100</userinput
 
2038
> i la tortuga dibuixarà un rectangle en el llenç. </para>
 
2039
  
 
2040
</sect1>
 
2041
 
 
2042
</chapter>