Warning, /education/kturtle/po/it/docs/kturtle/programming-reference.docbook is written in an unsupported language. File is not indexed.
0001 <chapter id="reference"> 0002 <title 0003 >Guida alla programmazione &turtlescript;</title> 0004 <para 0005 >Questa è la guida del linguaggio &turtlescript; di &kturtle;. La prima sezione di questo capitolo offre una carrellata di alcuni degli aspetti della <link linkend="grammar" 0006 >grammatica</link 0007 > dei programmi &turtlescript;. La seconda tratta esclusivamente di <link linkend="mathematical-operators" 0008 >operatori matematici</link 0009 >, di <link linkend="boolean-operators" 0010 >operatori booleani (vero/falso)</link 0011 > e di <link linkend="comparing-operators" 0012 >operatori di confronto</link 0013 >. La terza sezione fornisce invece una lunga lista di tutti i <link linkend="commands" 0014 >comandi</link 0015 >, spiegandoli uno per uno. La quarta spiega come <link linkend="assignment-of-variables" 0016 >assegnare</link 0017 > dei valori alle <link linkend="assignment-of-variables" 0018 >variabili</link 0019 >. Infine, nella quinta spieghiamo come organizzare l'esecuzione dei comandi usando <link linkend="controlling-execution" 0020 >le istruzioni di controllo dell'esecuzione</link 0021 >, infine, nella sesta sezione, come creare propri comandi usando <link linkend="learn" 0022 ><userinput 0023 >impara</userinput 0024 ></link 0025 >.</para> 0026 0027 <sect1 id="grammar"> 0028 <title 0029 >La grammatica &turtlescript;</title> 0030 <para 0031 >Come in ogni lingua, &turtlescript; ha diversi tipi di parole e simboli. In italiano distinguiamo tra verbi (come «camminare» o «cantare») e nomi (come «sorella» o «casa»), usati per scopi diversi. &turtlescript; è un linguaggio di programmazione, usato per dire a &kturtle; cosa fare.</para> 0032 <para 0033 >In questa sezione sono brevemente spiegati alcuni dei diversi tipi di parole e di simboli. Spieghiamo <link linkend="comment" 0034 >i commenti</link 0035 >, <link linkend="command" 0036 >i comandi</link 0037 > e i tre tipi di valori letterali: <link linkend="number" 0038 >i numeri</link 0039 >, <link linkend="string" 0040 >le stringhe</link 0041 > e <link linkend="boolean-value" 0042 >i valori booleani (vero/falso)</link 0043 >.</para> 0044 0045 0046 <sect2 id="comment"> 0047 <title 0048 >Commenti</title> 0049 <para 0050 >Un programma è composto di istruzioni eseguite durante l'esecuzione del programma, e di commenti. I commenti non vengono eseguiti, &kturtle; semplicemente li ignora durante l'esecuzione dei programmi. I commenti aiutano gli altri programmatori a comprendere meglio i tuoi programmi. In &turtlescript;, tutti ciò che segue il carattere <userinput 0051 >#</userinput 0052 > viene considerato un commento. Per esempio, questo piccolo programma non fa nulla: <screen> 0053 # questo piccolo programma non fa nulla, è solo un commento! 0054 </screen 0055 > È un po' inutile, ma spiega bene il concetto.</para> 0056 <para 0057 >I commenti sono utili quando un programma diventa sempre più complesso. Può essere utile dare qualche indicazione ad altri programmatori. Nel programma seguente, puoi vedere commenti usati con il comando <link linkend="print" 0058 >stampa</link 0059 >. <screen> 0060 # questo programma è stato creato da Cies Breijs. 0061 scrivi "questo testo sarà scritto sull'area di disegno" 0062 # la riga precedente non è un commento, ma la riga seguente sì: 0063 # scrivi "questo testo non sarà scritto!" 0064 </screen 0065 > La prima riga descrive il programma. La seconda riga è eseguita da &kturtle;, e scrive <userinput 0066 >questo testo sarà scritto sull'area di disegno</userinput 0067 > sull'area di disegno. La terza riga è un commento. Infine, la quarta è un commento che contiene un'istruzione &turtlescript;; se dalla quarta riga venisse rimosso il carattere <userinput 0068 >#</userinput 0069 >, l'istruzione «scrivi» verrebbe eseguita da &kturtle;. I programmatori dicono: l'istruzione «scrivi» nella quarta riga è stata "commentata".</para> 0070 <para 0071 >Le linee commentate sono <glossterm 0072 >evidenziate</glossterm 0073 > con il grigio chiaro nell'<link linkend="the-editor" 0074 >editor</link 0075 >.</para> 0076 </sect2> 0077 0078 <sect2 id="command"> 0079 <title 0080 >Comandi</title> 0081 <para 0082 >Con i comandi puoi dire alla tartaruga o a &kturtle; di fare qualcosa. Alcuni comandi richiedono degli argomenti, alcuni restituiscono dei risultati. <screen> 0083 # «avanti» è un comando che richiede un argomento, in questo caso il numero 100: 0084 avanti 100 0085 </screen 0086 > La prima riga è un <link linkend="comment" 0087 >commento</link 0088 >. La seconda contiene il comando <userinput 0089 >avanti</userinput 0090 > e il <link linkend="number" 0091 >numero</link 0092 > <userinput 0093 >100</userinput 0094 >. Il numero non è parte di un comando, ma è considerato un "argomento" del comando.</para> 0095 <para 0096 >Alcuni comandi, ⪚ <userinput 0097 >vai</userinput 0098 >, richiedono più di un argomento. Valori multipli devono essere separati usando il carattere <userinput 0099 >,</userinput 0100 > (virgola).</para> 0101 <para 0102 >Per una panoramica dettagliata di tutti i comandi che &kturtle; supporta, vai <link linkend="commands" 0103 >qui</link 0104 >. I comandi predefiniti sono <glossterm 0105 >evidenziati</glossterm 0106 > con il blu scuro.</para> 0107 </sect2> 0108 0109 <sect2 id="number"> 0110 <title 0111 >Numeri</title> 0112 <para 0113 >Molto probabilmente conosci già i numeri. Il modo in cui questi sono usati in &kturtle; non è molto diverso dalla lingua parlata o dalla matematica.</para> 0114 <para 0115 >Abbiamo i cosiddetti numeri naturali: <userinput 0116 >0</userinput 0117 >, <userinput 0118 >1</userinput 0119 >, <userinput 0120 >2</userinput 0121 >, <userinput 0122 >3</userinput 0123 >, <userinput 0124 >4</userinput 0125 >, <userinput 0126 >5</userinput 0127 >, &etc;. I numeri negativi: <userinput 0128 >-1</userinput 0129 >, <userinput 0130 >-2</userinput 0131 >, <userinput 0132 >-3</userinput 0133 >, &etc;. E i numeri decimali, o numeri con la virgola, per esempio: <userinput 0134 >0.1</userinput 0135 >, <userinput 0136 >3.14</userinput 0137 >, <userinput 0138 >33.3333</userinput 0139 >, <userinput 0140 >-5.05</userinput 0141 >, <userinput 0142 >-1.0</userinput 0143 >. Come separatore dei decimali viene usato il carattere <userinput 0144 >.</userinput 0145 > (punto). </para> 0146 <para 0147 >I numeri possono essere usati negli <link linkend="mathematical-operators" 0148 >operatori matematici</link 0149 > e negli <link linkend="comparing-operators" 0150 >operatori di confronto</link 0151 >. Possono anche essere memorizzati nelle <link linkend="assignment-of-variables" 0152 >variabili</link 0153 >. Sono <glossterm 0154 >evidenziati</glossterm 0155 > con il rosso scuro.</para> 0156 </sect2> 0157 0158 <!-- constants like pi? --> 0159 0160 <sect2 id="string"> 0161 <title 0162 >Stringhe</title> 0163 <para 0164 >Prima un esempio: <screen> 0165 scrivi "Ciao, sono una stringa." 0166 </screen 0167 > In questo esempio <userinput 0168 >scrivi</userinput 0169 > è un comando, e <userinput 0170 >"Ciao, sono una stringa."</userinput 0171 > è una stringa. Le stringhe iniziano e finiscono con il carattere <userinput 0172 >"</userinput 0173 >: grazie a questi caratteri &kturtle; sa che è una stringa.</para> 0174 <para 0175 >Le stringhe possono essere memorizzate in <link linkend="assignment-of-variables" 0176 >variabili</link 0177 >, allo stesso modo dei <link linkend="number" 0178 >numeri</link 0179 >. A differenza dei numeri, però, le stringhe non possono essere usate con gli <link linkend="mathematical-operators" 0180 >operatori matematici</link 0181 > o con gli <link linkend="comparing-operators" 0182 >operatori di confronto</link 0183 >. Le stringhe sono <glossterm 0184 >evidenziate</glossterm 0185 > in rosso.</para> 0186 </sect2> 0187 0188 <sect2 id="boolean-value"> 0189 <title 0190 >Valori booleani (vero/falso)</title> 0191 <para 0192 >Ci sono solo due valori booleani: <userinput 0193 >vero</userinput 0194 ><indexterm 0195 ><primary 0196 >vero</primary 0197 ></indexterm 0198 > e <userinput 0199 >falso</userinput 0200 ><indexterm 0201 ><primary 0202 >falso</primary 0203 ></indexterm 0204 >, chiamati anche <quote 0205 ><userinput 0206 >on</userinput 0207 ></quote 0208 > e <quote 0209 ><userinput 0210 >off</userinput 0211 ></quote 0212 >, <quote 0213 ><userinput 0214 >sì</userinput 0215 ></quote 0216 > e <quote 0217 ><userinput 0218 >no</userinput 0219 ></quote 0220 >, <quote 0221 ><userinput 0222 >uno</userinput 0223 ></quote 0224 > e <quote 0225 ><userinput 0226 >zero</userinput 0227 ></quote 0228 >. Tuttavia, in &turtlescript; sono sempre chiamati <userinput 0229 >vero</userinput 0230 > e <userinput 0231 >falso</userinput 0232 >. Guarda questo frammento di codice &turtlescript;: <screen> 0233 $a = vero 0234 </screen 0235 > Se guardi l'<link linkend="the-inspector" 0236 >ispettore</link 0237 >, puoi vedere che la <link linkend="assignment-of-variables" 0238 >variabile</link 0239 > <userinput 0240 >$a</userinput 0241 > è impostata a <userinput 0242 >vero</userinput 0243 >, e che il suo tipo è booleano.</para> 0244 <para 0245 >Spesso i valori booleani sono il risultato di un <link linkend="comparing-operators" 0246 >operatore di confronto</link 0247 >, come nel seguente frammento di &turtlescript;: <screen> 0248 $risposta = 10 > 3 0249 </screen 0250 > La <link linkend="assignment-of-variables" 0251 >variabile</link 0252 > <userinput 0253 >$risposta</userinput 0254 > è impostata a <userinput 0255 >vero</userinput 0256 >, dato che <userinput 0257 >10</userinput 0258 > è maggiore di <userinput 0259 >3</userinput 0260 >.</para> 0261 <para 0262 >I valori booleani, <userinput 0263 >vero</userinput 0264 > e <userinput 0265 >falso</userinput 0266 >, sono <glossterm 0267 >evidenziati</glossterm 0268 > con il rosso scuro.</para> 0269 </sect2> 0270 0271 </sect1> 0272 0273 0274 0275 <sect1 id="operators"> 0276 <title 0277 >Operatori matematici, booleani e di confronto</title> 0278 <para 0279 >Il titolo di questa sezione può far pensare a qualcosa di estremamente complesso; tuttavia non è complicato come si potrebbe pensare.</para> 0280 0281 <sect2 id="mathematical-operators"> 0282 <title 0283 >Operatori matematici</title> 0284 <para 0285 >I simboli matematici di base sono: addizione (<userinput 0286 >+</userinput 0287 >), sottrazione (<userinput 0288 >-</userinput 0289 >), moltiplicazione (<userinput 0290 >*</userinput 0291 >), divisione (<userinput 0292 >/</userinput 0293 >) e potenza (<userinput 0294 >^</userinput 0295 >).</para> 0296 0297 <para 0298 >Ecco un piccolo esempio con gli operatori matematici che puoi usare in &turtlescript;: <screen> 0299 $addizione = 1 + 1 0300 $sottrazione = 20 - 5 0301 $moltiplicazione = 15 * 2 0302 $divisione = 30 / 30 0303 $potenza = 2 ^ 2 0304 </screen 0305 > I valori risultanti dalle operazioni matematiche sono <link linkend="assignment-of-variables" 0306 >assegnati</link 0307 > alle varie <link linkend="assignment-of-variables" 0308 >variabili</link 0309 >. Usando <link linkend="the-inspector" 0310 >l'ispettore</link 0311 > puoi vederne i valori.</para> 0312 <para 0313 >Se vuoi eseguire un semplice calcolo, puoi scrivere qualcosa di simile a questo: <screen 0314 >scrivi 2010-12 0315 </screen 0316 ></para> 0317 <para 0318 >Ora un esempio con le parentesi: <screen> 0319 scrivi ( ( 20 - 5 ) * 2 / 30 ) + 1 0320 </screen 0321 > Ciò che si trova dentro le parentesi sarà calcolato prima. In questo esempio, sarà calcolato prima 20-5, quindi il risultato viene moltiplicato per 2, diviso per 30, e infine viene aggiunto 1 (ottenendo 2 come risultato). Le parentesi possono essere usate anche in altri casi.</para> 0322 <para 0323 >&kturtle; ha anche comandi matematici avanzati. Guarda i seguenti comandi, ricordando che sono operazioni avanzate: <link linkend="round" 0324 >round</link 0325 >, <link linkend="random" 0326 >numerocasuale</link 0327 >, <link linkend="sqrt" 0328 >sqrt</link 0329 >, <link linkend="pi" 0330 >pi</link 0331 >, <link linkend="sin" 0332 >sen</link 0333 >, <link linkend="cos" 0334 >cos</link 0335 >, <link linkend="tan" 0336 >tan</link 0337 >, <link linkend="arcsin" 0338 >arcsen</link 0339 >, <link linkend="arccos" 0340 >arccos</link 0341 >, <link linkend="arctan" 0342 >arctan</link 0343 >.</para> 0344 </sect2> 0345 0346 <sect2 id="boolean-operators"> 0347 <title 0348 >Operatori booleani (vero/falso)</title> 0349 <para 0350 >Se gli <link linkend="mathematical-operators" 0351 >operatori matematici</link 0352 > servono principalmente per i <link linkend="number" 0353 >numeri</link 0354 >, quelli booleani servono per i <link linkend="boolean-value" 0355 >valori booleani</link 0356 > (<userinput 0357 >vero</userinput 0358 > e <userinput 0359 >falso</userinput 0360 >). Ci sono solo tre operatori: <userinput 0361 >e</userinput 0362 ><indexterm 0363 ><primary 0364 >e</primary 0365 ></indexterm 0366 >, <userinput 0367 >o</userinput 0368 ><indexterm 0369 ><primary 0370 >o</primary 0371 ></indexterm 0372 >, e <userinput 0373 >non</userinput 0374 ><indexterm 0375 ><primary 0376 >non</primary 0377 ></indexterm 0378 >. Il seguente codice &turtlescript; mostra come usarli: <screen> 0379 $e_1_1 = vero e vero # -> vero 0380 $e_1_0 = vero e falso # -> falso 0381 $e_0_1 = falso e vero # -> falso 0382 $e_0_0 = falso e falso # -> falso 0383 0384 $o_1_1 = vero o vero # -> vero 0385 $o_1_0 = vero o falso # -> vero 0386 $o_0_1 = falso o vero # -> vero 0387 $o_0_0 = falso o falso # -> falso 0388 0389 $non_1 = non vero # -> falso 0390 $non_0 = non falso # -> vero 0391 </screen 0392 > Puoi vederne i valori usando l'<link linkend="the-inspector" 0393 >ispettore</link 0394 >, anche se i risultati sono forniti come commenti alla fine di ogni riga. <userinput 0395 >e</userinput 0396 > dà come risultato <userinput 0397 >vero</userinput 0398 > solo se entrambi i lati sono <userinput 0399 >vero</userinput 0400 >. <userinput 0401 >o</userinput 0402 > dà come risultato <userinput 0403 >vero</userinput 0404 > se almeno uno dei due lati è <userinput 0405 >vero</userinput 0406 >. Infine, <userinput 0407 >non</userinput 0408 > trasforma <userinput 0409 >vero</userinput 0410 > in <userinput 0411 >falso</userinput 0412 > e <userinput 0413 >falso</userinput 0414 > in <userinput 0415 >vero</userinput 0416 >.</para> 0417 <para 0418 >Gli operatori booleani sono <glossterm 0419 >evidenziati</glossterm 0420 > in rosa.</para> 0421 0422 <sect3 id="boolean-operators-advanced-examples"> 0423 <title 0424 >Alcuni esempi più complessi</title> 0425 <para 0426 >Consideriamo il seguente esempio con <userinput 0427 >e</userinput 0428 >: <screen> 0429 $a = 1 0430 $b = 5 0431 se (($a < 10) e ($b == 5)) e ($a < $b) { 0432 scrivi "ciao" 0433 } 0434 </screen 0435 > In questo frammento di codice &turtlescript;, i risultati di tre <link linkend="comparing-operators" 0436 >operatori di confronto</link 0437 > sono "uniti" usando gli operatori <userinput 0438 >e</userinput 0439 >. Ciò significa che per far stampare <quote 0440 >ciao</quote 0441 >, tutti e tre devono dare come risultato <quote 0442 >vero</quote 0443 >.</para> 0444 0445 <para 0446 >Un esempio con <userinput 0447 >o</userinput 0448 >: <screen> 0449 $n = 1 0450 se ($n < 10) o ($n == 2) { 0451 scrivi "ciao" 0452 } 0453 </screen 0454 > In questo frammento di codice &turtlescript;, il lato sinistro di <userinput 0455 >o</userinput 0456 > dà come risultato <quote 0457 >vero </quote 0458 >, quello destro <quote 0459 >falso</quote 0460 >. Dato che almeno uno dei due lati dell'operatore <userinput 0461 >o</userinput 0462 > è <quote 0463 >vero</quote 0464 >, l'operatore <userinput 0465 >o</userinput 0466 > dà come risultato <quote 0467 >vero</quote 0468 >. Ciò significa che viene stampato <quote 0469 >ciao</quote 0470 >.</para> 0471 0472 <para 0473 >Infine, un esempio con <userinput 0474 >non</userinput 0475 >, che cambia il <quote 0476 >vero</quote 0477 > in <quote 0478 >falso</quote 0479 >, e il <quote 0480 >falso</quote 0481 > in <quote 0482 >vero</quote 0483 > Diamo un'occhiata: <screen 0484 >$n = 1 0485 se non ($n == 3) { 0486 scrivi "ciao" 0487 } altrimenti { 0488 scrivi "non ciao ;-)" 0489 } 0490 </screen 0491 ></para> 0492 </sect3> 0493 </sect2> 0494 0495 <sect2 id="comparing-operators"> 0496 <title 0497 >Operatori di confronto</title> 0498 <para 0499 >Consideriamo questo semplice confronto: <screen> 0500 $risposta = 10 > 3 0501 </screen 0502 > Qui <userinput 0503 >10</userinput 0504 > è confrontato con <userinput 0505 >3</userinput 0506 > usando l'operatore <quote 0507 >maggiore di</quote 0508 >. Il risultato di questo confronto, il <link linkend="boolean-value" 0509 >valore booleano</link 0510 > <userinput 0511 >vero</userinput 0512 >, è memorizzato nella <link linkend="assignment-of-variables" 0513 >variabile</link 0514 > <userinput 0515 >$risposta</userinput 0516 >.</para> 0517 <para 0518 >Tutti i <link linkend="number" 0519 >numeri</link 0520 > e le <link linkend="assignment-of-variables" 0521 >variabili</link 0522 > (che contengono numeri) possono essere confrontate tra di loro usando gli operatori di confronto.</para> 0523 <para 0524 >Tutti gli operatori di confronto possibili sono: <table 0525 > <title 0526 >Tipi di domande</title 0527 > <tgroup cols="3" 0528 > <tbody 0529 > <row 0530 > <entry 0531 ><userinput 0532 >$A == $B</userinput 0533 ></entry 0534 > <entry 0535 >uguale</entry 0536 > <entry 0537 >la risposta è <quote 0538 >vero</quote 0539 > se <userinput 0540 >A</userinput 0541 > è uguale a <userinput 0542 >$B</userinput 0543 ></entry 0544 > </row 0545 > <row 0546 > <entry 0547 ><userinput 0548 >$A != $B</userinput 0549 ></entry 0550 > <entry 0551 >diverso</entry 0552 > <entry 0553 >la risposta è <quote 0554 >vero</quote 0555 > se <userinput 0556 >$A</userinput 0557 > è diverso da <userinput 0558 >$B</userinput 0559 ></entry 0560 > </row 0561 > <row 0562 > <entry 0563 ><userinput 0564 >$A > $B</userinput 0565 ></entry 0566 > <entry 0567 >maggiore di</entry 0568 > <entry 0569 >la risposta è <quote 0570 >vero</quote 0571 > se <userinput 0572 >$A</userinput 0573 > è maggiore di <userinput 0574 >$B</userinput 0575 ></entry 0576 > </row 0577 > <row 0578 > <entry 0579 ><userinput 0580 >$A < $B</userinput 0581 ></entry 0582 > <entry 0583 >minore di</entry 0584 > <entry 0585 >la risposta è <quote 0586 >vero</quote 0587 > se <userinput 0588 >$A</userinput 0589 > è minore di <userinput 0590 >B$</userinput 0591 ></entry 0592 > </row 0593 > <row 0594 > <entry 0595 ><userinput 0596 >$A >= $B</userinput 0597 ></entry 0598 > <entry 0599 >maggiore o uguale a</entry 0600 > <entry 0601 >la risposta è <quote 0602 >vero</quote 0603 > se <userinput 0604 >$A</userinput 0605 > è maggiore o uguale a <userinput 0606 >$B</userinput 0607 ></entry 0608 > </row 0609 > <row 0610 > <entry 0611 ><userinput 0612 >$A <= $B</userinput 0613 ></entry 0614 > <entry 0615 >minore o uguale</entry 0616 > <entry 0617 >la risposta è <quote 0618 >vero</quote 0619 > se <userinput 0620 >$A</userinput 0621 > è minore o uguale a <userinput 0622 >$B</userinput 0623 ></entry 0624 > </row 0625 > </tbody 0626 > </tgroup 0627 > </table 0628 > Nota che <userinput 0629 >$A</userinput 0630 > e <userinput 0631 >$B</userinput 0632 > devono essere <link linkend="number" 0633 >numeri</link 0634 > o <link linkend="assignment-of-variables" 0635 >variabili</link 0636 > che contengono numeri.</para> 0637 </sect2> 0638 0639 0640 </sect1> 0641 0642 0643 0644 <sect1 id="commands"> 0645 <title 0646 >Comandi</title> 0647 <para 0648 >Usando i comandi tu dici alla tartaruga o a &kturtle; di fare qualcosa. Alcuni comandi richiedono argomenti, alcuni restituiscono risultati. In questa sezione spieghiamo tutti i comandi incorporati in &kturtle;. In alternativa, puoi creare comandi personalizzati usando <link linkend="learn" 0649 ><userinput 0650 >impara</userinput 0651 ></link 0652 >. I comandi incorporati di cui parliamo qui sono <glossterm 0653 >evidenziati</glossterm 0654 > in blu scuro.</para> 0655 0656 <sect2 id="moving-the-turtle"> 0657 <title 0658 >Muovere la tartaruga</title> 0659 <para 0660 >Ci sono vari comandi per muovere la tartaruga nello schermo.</para> 0661 0662 <variablelist> 0663 <anchor id="forward"/> 0664 <varlistentry 0665 > 0666 <term 0667 >avanti (av)<indexterm 0668 ><primary 0669 >avanti (av)</primary 0670 ></indexterm 0671 ></term> 0672 <listitem 0673 ><para 0674 ><screen 0675 >avanti X</screen 0676 ><userinput 0677 >avanti</userinput 0678 > muove la tartaruga avanti di X pixel. Quando la penna è giù, la tartaruga lascerà un tratto. <userinput 0679 >avanti</userinput 0680 > può essere abbreviato in <userinput 0681 >av</userinput 0682 >.</para 0683 ></listitem> 0684 </varlistentry> 0685 </variablelist> 0686 <variablelist> 0687 <anchor id="backward"/> 0688 <varlistentry 0689 > 0690 <term 0691 >indietro (in)<indexterm 0692 ><primary 0693 >indietro (in)</primary 0694 ></indexterm 0695 ></term> 0696 <listitem 0697 ><para 0698 ><screen 0699 >indietro X</screen 0700 ><userinput 0701 >indietro</userinput 0702 > muove la tartaruga indietro di X pixel. Quando la penna è giù, la tartaruga lascerà un tratto. <userinput 0703 >indietro</userinput 0704 > può essere abbreviato in <userinput 0705 >in</userinput 0706 >.</para 0707 ></listitem> 0708 </varlistentry> 0709 </variablelist> 0710 <variablelist> 0711 <anchor id="turnleft"/> 0712 <varlistentry 0713 > 0714 <term 0715 >sinistra (sx)<indexterm 0716 ><primary 0717 >sinistra (sx)</primary 0718 ></indexterm 0719 ></term> 0720 <listitem 0721 ><para 0722 ><screen 0723 >sinistra X</screen 0724 ><userinput 0725 >sinistra</userinput 0726 > comanda alla tartaruga di girare X gradi a sinistra. <userinput 0727 >sinistra</userinput 0728 > può essere abbreviato in <userinput 0729 >sx</userinput 0730 >.</para 0731 ></listitem> 0732 </varlistentry> 0733 </variablelist> 0734 <variablelist> 0735 <anchor id="turnright"/> 0736 <varlistentry 0737 > 0738 <term 0739 >destra (dx)<indexterm 0740 ><primary 0741 >destra (dx)</primary 0742 ></indexterm 0743 ></term> 0744 <listitem 0745 ><para 0746 ><screen 0747 >destra X</screen 0748 ><userinput 0749 >destra</userinput 0750 > comanda alla tartaruga di girare X gradi a destra. <userinput 0751 >destra</userinput 0752 > può essere abbreviato in <userinput 0753 >dx</userinput 0754 >.</para 0755 ></listitem> 0756 </varlistentry> 0757 </variablelist> 0758 <variablelist> 0759 <anchor id="direction"/> 0760 <varlistentry 0761 > 0762 <term 0763 >direzione (dir)<indexterm 0764 ><primary 0765 >direzione (dir)</primary 0766 ></indexterm 0767 ></term> 0768 <listitem 0769 ><para 0770 ><screen 0771 >direzione X</screen 0772 ><userinput 0773 >direzione</userinput 0774 > imposta la direzione della tartaruga a X gradi partendo da zero, quindi non relativamente alla direzione precedente della tartaruga. <userinput 0775 >direzione</userinput 0776 > può essere abbreviato in <userinput 0777 >dir</userinput 0778 >.</para 0779 ></listitem> 0780 </varlistentry> 0781 </variablelist> 0782 <variablelist> 0783 <anchor id="getdirection"/> 0784 <varlistentry 0785 > 0786 <term 0787 >valoredirezione<indexterm 0788 ><primary 0789 >valoredirezione</primary 0790 ></indexterm 0791 ></term> 0792 <listitem 0793 ><para 0794 ><screen 0795 >valoredirezione</screen 0796 ><userinput 0797 >valoredirezione</userinput 0798 > restituisce la direzione della tartaruga come un numero in gradi a partire da zero, dove lo zero è la direzione che la tartaruga ha quando è rivolta verso l'alto.</para 0799 ></listitem> 0800 </varlistentry> 0801 </variablelist> 0802 <variablelist> 0803 <anchor id="center"/> 0804 <varlistentry 0805 > 0806 <term 0807 >centra<indexterm 0808 ><primary 0809 >centra</primary 0810 ></indexterm 0811 ></term> 0812 <listitem 0813 ><para 0814 ><screen 0815 >centra</screen 0816 ><userinput 0817 >centra</userinput 0818 > muove la tartaruga al centro dell'area di disegno.</para 0819 ></listitem> 0820 </varlistentry> 0821 </variablelist> 0822 <variablelist> 0823 <anchor id="go"/> 0824 <varlistentry 0825 > 0826 <term 0827 >vai<indexterm 0828 ><primary 0829 >vai</primary 0830 ></indexterm 0831 ></term> 0832 <listitem 0833 ><para 0834 ><screen 0835 >vai X,Y</screen 0836 ><userinput 0837 >vai</userinput 0838 > comanda alla tartaruga di andare in un certo punto dell'area di disegno. Questo punto dista X <glossterm linkend="pixels" 0839 >pixel</glossterm 0840 > da sinistra, e Y <glossterm linkend="pixels" 0841 >pixel</glossterm 0842 > dall'alto dell'area di disegno.</para 0843 ></listitem> 0844 </varlistentry> 0845 </variablelist> 0846 <variablelist> 0847 <anchor id="gox"/> 0848 <varlistentry 0849 > 0850 <term 0851 >vaix<indexterm 0852 ><primary 0853 >vaix (vx)</primary 0854 ></indexterm 0855 ></term> 0856 <listitem 0857 ><para 0858 ><screen 0859 >vaix X</screen 0860 ><userinput 0861 >vaix</userinput 0862 > usando questo comando la tartaruga si muoverà a X <glossterm linkend="pixels" 0863 >pixel</glossterm 0864 > dalla sinistra dell'area di disegno mantenendo la sua altezza. <userinput 0865 >vaix</userinput 0866 > può essere abbreviato in <userinput 0867 >vx</userinput 0868 >.</para 0869 ></listitem> 0870 </varlistentry> 0871 </variablelist> 0872 <variablelist> 0873 <anchor id="goy"/> 0874 <varlistentry 0875 > 0876 <term 0877 >vaiy<indexterm 0878 ><primary 0879 >vaiy (vy)</primary 0880 ></indexterm 0881 ></term> 0882 <listitem 0883 ><para 0884 ><screen 0885 >vaiy Y</screen 0886 ><userinput 0887 >vaiy</userinput 0888 > usando questo comando la tartaruga si muoverà a Y <glossterm linkend="pixels" 0889 >pixel</glossterm 0890 > dall'alto dell'area di disegno mantenendosi alla stessa distanza dal bordo sinistro dell'area di disegno. <userinput 0891 >vaiy</userinput 0892 > può essere abbreviato in <userinput 0893 >vy</userinput 0894 >.</para 0895 ></listitem> 0896 </varlistentry> 0897 </variablelist> 0898 <note 0899 ><para 0900 >Usando i comandi <userinput 0901 >vai</userinput 0902 >, <userinput 0903 >vaix</userinput 0904 >, <userinput 0905 >vaiy</userinput 0906 > e <userinput 0907 >centra</userinput 0908 > la tartaruga non disegnerà una linea, non importa che la penna sia su o giù.</para> 0909 </note> 0910 </sect2> 0911 0912 <sect2 id="locate-the-turtle"> 0913 <title 0914 >Dove è la tartaruga?</title> 0915 <para 0916 >Ci sono due comandi che restituiscono la posizione della tartaruga nello schermo.</para> 0917 0918 <variablelist> 0919 <anchor id="getx"/> 0920 <varlistentry 0921 > 0922 <term 0923 >coordinatax<indexterm 0924 ><primary 0925 >coordinatax</primary 0926 ></indexterm 0927 ></term> 0928 <listitem 0929 ><para 0930 ><userinput 0931 >coordinatax</userinput 0932 > restituisce il numero di pixel dalla sinistra dell'area di disegno fino alla posizione corrente della tartaruga.</para 0933 ></listitem> 0934 </varlistentry> 0935 </variablelist> 0936 <variablelist> 0937 <anchor id="gety"/> 0938 <varlistentry 0939 > 0940 <term 0941 >coordinatay<indexterm 0942 ><primary 0943 >coordinatay</primary 0944 ></indexterm 0945 ></term> 0946 <listitem 0947 ><para 0948 ><userinput 0949 >coordinatay</userinput 0950 > restituisce il numero di pixel dall'alto dell'area di disegno fino alla posizione corrente della tartaruga.</para 0951 ></listitem> 0952 </varlistentry> 0953 </variablelist> 0954 </sect2> 0955 0956 <sect2 id="pen"> 0957 <title 0958 >La tartaruga ha una penna</title> 0959 <para 0960 >La tartaruga ha una penna, che disegna una linea quando la tartaruga si muove. Ci sono alcuni comandi che controllano la penna. In questa sezione vengono spiegati.</para> 0961 <variablelist> 0962 <anchor id="penup"/> 0963 <varlistentry 0964 > 0965 <term 0966 >pennasu (ps)<indexterm 0967 ><primary 0968 >pennasu (ps)</primary 0969 ></indexterm 0970 ></term> 0971 <listitem 0972 ><para 0973 ><screen 0974 >pennasu</screen 0975 ><userinput 0976 >pennasu</userinput 0977 > alza la penna dall'area di disegno. Quando la penna è <quote 0978 >su</quote 0979 >, non sarà disegnata alcuna linea mentre la tartaruga si muove. Vedi anche <userinput 0980 >pennagiu</userinput 0981 >. <userinput 0982 >pennasu</userinput 0983 > può essere abbreviato in <userinput 0984 >ps</userinput 0985 >.</para 0986 ></listitem> 0987 </varlistentry> 0988 </variablelist> 0989 <variablelist> 0990 <anchor id="pendown"/> 0991 <varlistentry 0992 > 0993 <term 0994 >pennagiu (pg)<indexterm 0995 ><primary 0996 >pennagiu (pg)</primary 0997 ></indexterm 0998 ></term> 0999 <listitem 1000 ><para 1001 ><screen 1002 >pennagiu</screen 1003 ><userinput 1004 >pennagiu</userinput 1005 > abbassa la penna sull'area di disegno. Quando la penna è <quote 1006 >giù</quote 1007 >, verrà disegnata una linea sull'area di disegno mentre la tartaruga si muove. Vedi anche <userinput 1008 >pennasu</userinput 1009 >. <userinput 1010 >pennagiu</userinput 1011 > può essere abbreviato in <userinput 1012 >pg</userinput 1013 >.</para 1014 ></listitem> 1015 </varlistentry> 1016 </variablelist> 1017 <variablelist> 1018 <anchor id="setpenwidth"/> 1019 <varlistentry 1020 > 1021 <term 1022 >spessorepenna (sp)<indexterm 1023 ><primary 1024 >spessorepenna (sp)</primary 1025 ></indexterm 1026 ></term> 1027 <listitem 1028 ><para 1029 ><screen 1030 >spessorepenna X</screen 1031 ><userinput 1032 >spessorepenna</userinput 1033 > imposta lo spessore della penna (lo spessore della linea) a X <glossterm linkend="pixels" 1034 >pixel</glossterm 1035 >. <userinput 1036 >spessorepenna</userinput 1037 > può essere abbreviato in <userinput 1038 >sp</userinput 1039 >.</para 1040 ></listitem> 1041 </varlistentry> 1042 </variablelist> 1043 <variablelist> 1044 <anchor id="setfgcolor"/> 1045 <varlistentry 1046 > 1047 <term 1048 >colorepenna (cp)<indexterm 1049 ><primary 1050 >colorepenna (cp)</primary 1051 ></indexterm 1052 ></term> 1053 <listitem 1054 ><para 1055 ><screen 1056 >colorepenna R,G,B</screen 1057 ><userinput 1058 >colorepenna</userinput 1059 > imposta il colore della penna. <userinput 1060 >colorepenna</userinput 1061 > richiede una <glossterm linkend="rgb" 1062 >combinazione RGB</glossterm 1063 > come argomento. <userinput 1064 >colorepenna</userinput 1065 > può essere abbreviato in <userinput 1066 >cp</userinput 1067 >.</para 1068 ></listitem> 1069 </varlistentry> 1070 </variablelist> 1071 </sect2> 1072 1073 <sect2 id="canvas"> 1074 <title 1075 >Comandi per controllare l'area di disegno</title> 1076 <para 1077 >Ci sono vari comandi per controllare l'area di disegno.</para> 1078 <variablelist> 1079 <anchor id="resizecanvas"/> 1080 <varlistentry> 1081 <term 1082 >dimensionesfondo (ds)<indexterm 1083 ><primary 1084 >dimensionesfondo (ds)</primary 1085 ></indexterm 1086 ></term> 1087 <listitem 1088 ><para 1089 ><screen 1090 >dimensionesfondo X,Y</screen 1091 >Con il comando <userinput 1092 >dimensionesfondo</userinput 1093 > puoi impostare la dimensione dell'area di disegno. Prende X e Y come argomenti, dove X è la nuova larghezza in <glossterm linkend="pixels" 1094 >pixel</glossterm 1095 > dell'area di disegno, mentre Y è la nuova altezza in <glossterm linkend="pixels" 1096 >pixel</glossterm 1097 >. <userinput 1098 >dimensionesfondo</userinput 1099 > può essere abbreviato in <userinput 1100 >ds</userinput 1101 >.</para 1102 ></listitem> 1103 </varlistentry> 1104 </variablelist> 1105 <variablelist> 1106 <anchor id="setbgcolor"/> 1107 <varlistentry 1108 > 1109 <term 1110 >coloresfondo (cs)<indexterm 1111 ><primary 1112 >coloresfondo (cs)</primary 1113 ></indexterm 1114 ></term> 1115 <listitem 1116 ><para 1117 ><screen 1118 >coloresfondo R,G,B</screen 1119 ><userinput 1120 >coloresfondo</userinput 1121 > imposta il colore dell'area di disegno. <userinput 1122 >coloresfondo</userinput 1123 > richiede una <glossterm linkend="rgb" 1124 >combinazione RGB</glossterm 1125 > come argomento. <userinput 1126 >coloresfondo</userinput 1127 > può essere abbreviato in <userinput 1128 >cs</userinput 1129 >.</para 1130 ></listitem> 1131 </varlistentry> 1132 </variablelist> 1133 </sect2> 1134 1135 <sect2 id="clean"> 1136 <title 1137 >Comandi per fare pulizia</title> 1138 <para 1139 >Ci sono due comandi per pulire l'area di disegno dopo che hai fatto confusione.</para> 1140 <variablelist> 1141 <anchor id="clear"/> 1142 <varlistentry 1143 > 1144 <term 1145 >pulisci (cls)<indexterm 1146 ><primary 1147 >pulisci (cls)</primary 1148 ></indexterm 1149 ></term> 1150 <listitem 1151 ><para 1152 ><screen 1153 >pulisci</screen 1154 >Con <userinput 1155 >pulisci</userinput 1156 > puoi pulire tutti i disegni dall'area di disegno. Tutte le altre cose rimangono: la posizione e l'angolo della tartaruga, il colore dell'area di disegno, la visibilità della tartaruga e la dimensione dell'area di disegno.</para 1157 ></listitem> 1158 </varlistentry> 1159 </variablelist> 1160 <variablelist> 1161 <anchor id="reset"/> 1162 <varlistentry 1163 > 1164 <term 1165 >ricomincia<indexterm 1166 ><primary 1167 >ricomincia</primary 1168 ></indexterm 1169 ></term> 1170 <listitem 1171 ><para 1172 ><screen 1173 >ricomincia</screen 1174 ><userinput 1175 >ricomincia</userinput 1176 > pulisce molto più accuratamente del comando <userinput 1177 >pulisci</userinput 1178 >. Dopo un comando <userinput 1179 >ricomincia</userinput 1180 >, tutto ritorna come era quando hai avviato &kturtle;. La tartaruga è posizionata al centro dello schermo, il colore dell'area di disegno è bianco, la tartaruga disegna linee nere sull'area di disegno e la dimensione dell'area di disegno è 400 x 400 pixel.</para 1181 ></listitem> 1182 </varlistentry> 1183 </variablelist> 1184 </sect2> 1185 1186 <sect2 id="sprites"> 1187 <title 1188 >La tartaruga è un folletto</title> 1189 <para 1190 >Prima una breve spiegazione di cosa sono i folletti: i folletti sono dei piccoli disegni che possono essere mossi in giro per lo schermo, cosa che spesso vediamo nei giochi per il computer. Anche la nostra tartaruga è un folletto. Per maggiori informazioni, vedi la voce di glossario sui <glossterm linkend="sprites" 1191 >folletti</glossterm 1192 >.</para> 1193 <para 1194 >Di seguito troverai una descrizione completa di tutti i comandi che lavorano con i folletti.</para> 1195 <note 1196 ><para 1197 >L'attuale versione di &kturtle; non supporta ancora l'uso di folletti diversi dalla tartaruga. Con le future versioni potrai cambiare la tartaruga in qualcos'altro creato da te.</para 1198 ></note> 1199 <variablelist> 1200 <anchor id="spriteshow"/> 1201 <varlistentry 1202 > 1203 <term 1204 >mostra (ms)<indexterm 1205 ><primary 1206 >mostra (ms)</primary 1207 ></indexterm 1208 ></term> 1209 <listitem 1210 ><para 1211 ><screen 1212 >mostra</screen 1213 ><userinput 1214 >mostra</userinput 1215 > rende nuovamente visibile la tartaruga dopo che è stata nascosta. <userinput 1216 >mostra</userinput 1217 > può essere abbreviato in <userinput 1218 >ms</userinput 1219 >.</para 1220 ></listitem> 1221 </varlistentry> 1222 </variablelist> 1223 <variablelist> 1224 <anchor id="spritehide"/> 1225 <varlistentry 1226 > 1227 <term 1228 >nascondi (ns)<indexterm 1229 ><primary 1230 >nascondi (ns)</primary 1231 ></indexterm 1232 ></term> 1233 <listitem 1234 ><para 1235 ><screen 1236 >nascondi</screen 1237 ><userinput 1238 >nascondi</userinput 1239 > nasconde la tartaruga. Ciò può essere usato se non conviene che la tartaruga appaia nel tuo disegno. <userinput 1240 >nascondi</userinput 1241 > può essere abbreviato in <userinput 1242 >ns</userinput 1243 >.</para 1244 ></listitem> 1245 </varlistentry> 1246 </variablelist> 1247 </sect2> 1248 1249 <sect2 id="writing"> 1250 <title 1251 >La tartaruga può scrivere del testo?</title> 1252 <para 1253 >La risposta è: <quote 1254 >sì</quote 1255 >. La tartaruga può scrivere: scrive tutto quello che tu le comandi di scrivere.</para> 1256 <variablelist> 1257 <anchor id="print"/> 1258 <varlistentry 1259 > 1260 <term 1261 >scrivi<indexterm 1262 ><primary 1263 >scrivi</primary 1264 ></indexterm 1265 ></term> 1266 <listitem 1267 ><para 1268 ><screen 1269 >scrivi X</screen 1270 >Il comando <userinput 1271 >scrivi</userinput 1272 > viene usato per comandare alla tartaruga di scrivere qualcosa nell'area di disegno. <userinput 1273 >scrivi</userinput 1274 > accetta come argomenti numeri e stringhe. Puoi scrivere vari numeri e stringhe usando il simbolo <quote 1275 >+</quote 1276 >. Guarda qui un piccolo esempio: <screen 1277 >$anno = 2003 1278 $autore = "Cies" 1279 scrivi $autore + " ha iniziato il progetto KTurtle nel " + $anno + " e ancora si diverte a lavorarci!" 1280 </screen> 1281 </para 1282 ></listitem> 1283 </varlistentry> 1284 </variablelist> 1285 <variablelist> 1286 <anchor id="fontsize"/> 1287 <varlistentry 1288 > 1289 <term 1290 >dimensionecarattere<indexterm 1291 ><primary 1292 >dimensionecarattere</primary 1293 ></indexterm 1294 ></term> 1295 <listitem 1296 ><para 1297 ><screen 1298 >dimensionecarattere X</screen 1299 ><userinput 1300 >dimensionecarattere</userinput 1301 > imposta la dimensione del carattere usato dal comando <userinput 1302 >scrivi</userinput 1303 >. <userinput 1304 >dimensionecarattere</userinput 1305 > richiede un argomento, che dovrebbe essere un numero. La dimensione è impostata in <glossterm linkend="pixels" 1306 >pixel</glossterm 1307 >.</para 1308 ></listitem> 1309 </varlistentry> 1310 </variablelist> 1311 </sect2> 1312 1313 <sect2 id="math-commands"> 1314 <title 1315 >Comandi matematici</title> 1316 <para 1317 >I comandi seguenti sono dei comandi matematici avanzati di &kturtle;.</para> 1318 <variablelist> 1319 <anchor id="round"/> 1320 <varlistentry> 1321 <term 1322 >round<indexterm 1323 ><primary 1324 >round</primary 1325 ></indexterm 1326 ></term> 1327 <listitem 1328 ><para 1329 ><screen 1330 >round(x)</screen 1331 ><userinput 1332 >round</userinput 1333 > arrotonda il numero dato all'intero più vicino. <screen> 1334 scrivi round(10.8) 1335 avanti 20 1336 scrivi round(10.3) 1337 </screen 1338 > Con questo codice la tartaruga scriverà i numeri 11 e 10.</para 1339 ></listitem> 1340 </varlistentry> 1341 </variablelist> 1342 <variablelist> 1343 <anchor id="random"/> 1344 <varlistentry 1345 > 1346 <term 1347 >numerocasuale (casuale)<indexterm 1348 ><primary 1349 >numerocasuale (casuale)</primary 1350 ></indexterm 1351 ></term> 1352 <listitem 1353 ><para 1354 ><screen 1355 >numerocasuale X,Y</screen 1356 ><userinput 1357 >numerocasuale</userinput 1358 > è un comando che richiede degli argomenti e restituisce un valore. Come argomenti richiede due numeri, il primo (X) imposta il valore minimo restituito, il secondo (Y) imposta il massimo. Il valore restituito è un numero scelto casualmente, maggiore o uguale del minimo, e minore o uguale del massimo. Qui vi è un piccolo esempio: <screen> 1359 ripeti 500 { 1360 $x = numerocasuale 1,20 1361 avanti $x 1362 sinistra 10 - $x 1363 } 1364 </screen 1365 > Usando il comando <userinput 1366 >numerocasuale</userinput 1367 > puoi aggiungere un po' di caos al tuo programma.</para 1368 ></listitem> 1369 </varlistentry> 1370 </variablelist> 1371 <variablelist> 1372 <anchor id="mod"/> 1373 <varlistentry 1374 > 1375 <term 1376 >mod<indexterm 1377 ><primary 1378 >mod</primary 1379 ></indexterm 1380 ></term> 1381 <listitem 1382 ><para 1383 ><screen 1384 >mod X,Y</screen 1385 >Il comando <userinput 1386 >mod</userinput 1387 > restituisce il resto della divisione del primo numero con il secondo..</para 1388 ></listitem> 1389 </varlistentry> 1390 </variablelist> 1391 <variablelist> 1392 <anchor id="sqrt"/> 1393 <varlistentry 1394 > 1395 <term 1396 >sqrt<indexterm 1397 ><primary 1398 >sqrt</primary 1399 ></indexterm 1400 ></term> 1401 <listitem 1402 ><para 1403 ><screen 1404 >sqrt X</screen 1405 >Il comando <userinput 1406 >sqrt</userinput 1407 > è usato per calcolare la radice quadrata di un numero, X.</para 1408 ></listitem> 1409 </varlistentry> 1410 </variablelist> 1411 <!-- 1412 <variablelist> 1413 <anchor id="exp"/> 1414 <varlistentry 1415 > 1416 <term 1417 >exp<indexterm 1418 ><primary 1419 >exp</primary 1420 ></indexterm 1421 ></term> 1422 <listitem 1423 ><para 1424 ><screen 1425 >sqrt X</screen> 1426 </para 1427 ></listitem> 1428 </varlistentry> 1429 </variablelist> 1430 --> 1431 <variablelist> 1432 <anchor id="pi"/> 1433 <varlistentry 1434 > 1435 <term 1436 >pi<indexterm 1437 ><primary 1438 >pi</primary 1439 ></indexterm 1440 ></term> 1441 <listitem 1442 ><para 1443 ><screen 1444 >pi</screen 1445 >Questo comando restituisce la costante Pi, <userinput 1446 >3.14159</userinput 1447 >.</para 1448 ></listitem> 1449 </varlistentry> 1450 </variablelist> 1451 <variablelist> 1452 <anchor id="sin"/> 1453 <anchor id="cos"/> 1454 <anchor id="tan"/> 1455 <varlistentry> 1456 <term 1457 >sen<indexterm 1458 ><primary 1459 >sen</primary 1460 ></indexterm 1461 >, cos<indexterm 1462 ><primary 1463 >cos</primary 1464 ></indexterm 1465 >, tan<indexterm 1466 ><primary 1467 >tan</primary 1468 ></indexterm 1469 ></term> 1470 <listitem 1471 ><para> 1472 <screen 1473 >sen X 1474 cos X 1475 tan X 1476 </screen 1477 >Questi tre comandi rappresentano le famose funzioni trigonometriche <userinput 1478 >sen</userinput 1479 >, <userinput 1480 >cos</userinput 1481 > e <userinput 1482 >tan</userinput 1483 >. L'argomento di questi comandi, X, è un <link linkend="number" 1484 >numero</link 1485 >.</para 1486 ></listitem> 1487 </varlistentry> 1488 </variablelist> 1489 <variablelist> 1490 <anchor id="arcsin"/> 1491 <anchor id="arccos"/> 1492 <anchor id="arctan"/> 1493 <varlistentry> 1494 <term 1495 >arcsen<indexterm 1496 ><primary 1497 >arcsen</primary 1498 ></indexterm 1499 >, arccos<indexterm 1500 ><primary 1501 >arccos</primary 1502 ></indexterm 1503 >, arctan<indexterm 1504 ><primary 1505 >arctan</primary 1506 ></indexterm 1507 ></term> 1508 <listitem 1509 ><para> 1510 <screen 1511 >arcsen X 1512 arccos X 1513 arctan X 1514 </screen 1515 >Questi comandi rappresentano le funzioni inverse di <link linkend="sin" 1516 >sen</link 1517 >, <link linkend="cos" 1518 >cos</link 1519 > e <link linkend="tan" 1520 >tan</link 1521 >. L'argomento di questi comandi, X, è un <link linkend="number" 1522 >numero</link 1523 >.</para 1524 ></listitem> 1525 </varlistentry> 1526 </variablelist> 1527 </sect2> 1528 1529 <sect2 id="dialogs"> 1530 <title 1531 >Inserire i dati e visualizzare i messaggi nelle finestre</title> 1532 <para 1533 >Una finestra è una piccola finestra a comparsa che mostra un messaggio oppure chiede di inserire qualcosa. &kturtle; ha due comandi per le finestre , chiamati: <userinput 1534 >messaggio</userinput 1535 > e <userinput 1536 >chiedi</userinput 1537 ></para> 1538 <variablelist> 1539 <anchor id="message"/> 1540 <varlistentry 1541 > 1542 <term 1543 >messaggio<indexterm 1544 ><primary 1545 >messaggio</primary 1546 ></indexterm 1547 ></term> 1548 <listitem 1549 ><para 1550 ><screen 1551 >messaggio X</screen 1552 >Il comando <userinput 1553 >messaggio</userinput 1554 > richiede come argomento una <link linkend="string" 1555 >stringa</link 1556 >. Mostra una finestra a comparsa che contiene il testo della <link linkend="string" 1557 >stringa</link 1558 >. <screen 1559 >messaggio "Cies ha iniziato KTurtle nel 2003 e ancora si diverte a lavorarci!" 1560 </screen> 1561 </para 1562 ></listitem> 1563 </varlistentry> 1564 </variablelist> 1565 <variablelist> 1566 <anchor id="ask"/> 1567 <varlistentry 1568 > 1569 <term 1570 >chiedi<indexterm 1571 ><primary 1572 >chiedi</primary 1573 ></indexterm 1574 ></term> 1575 <listitem 1576 ><para 1577 ><screen 1578 >chiedi X</screen 1579 ><userinput 1580 >chiedi</userinput 1581 > richiede come argomento una <link linkend="string" 1582 >stringa</link 1583 >. Mostra questa stringa in una finestra a comparsa (in modo simile a <link linkend="message" 1584 >messaggio</link 1585 >) che contiene anche un campo di inserimento testo. Dopo che l'utente ha inserito un <link linkend="number" 1586 >numero</link 1587 > o una <link linkend="string" 1588 >stringa</link 1589 >, il risultato può essere memorizzato in una <link linkend="assignment-of-variables" 1590 >variabile</link 1591 >, oppure passato come argomento ad un <link linkend="commands" 1592 >comando</link 1593 >. Per esempio: <screen> 1594 $in = chiedi "Qual è la tua età?" 1595 $out = 2003 - $in 1596 scrivi "Ad un certo punto del 2003 avevi " + $out + " anni." 1597 </screen 1598 > Se l'utente annulla la finestra , o non inserisce niente, la <link linkend="assignment-of-variables" 1599 >variabile</link 1600 > sarà vuota.</para 1601 ></listitem> 1602 </varlistentry> 1603 </variablelist> 1604 </sect2> 1605 1606 </sect1> 1607 1608 1609 1610 <sect1 id="assignment-of-variables"> 1611 <title 1612 >Assegnamento di variabili</title> 1613 <para 1614 >Vediamo prima le variabili, poi come assegnare dei valori a queste variabili. </para> 1615 1616 <para 1617 >Le variabili sono delle parole che iniziano per <quote 1618 >$</quote 1619 >, e nell'<link linkend="the-editor" 1620 >editor</link 1621 > sono <glossterm 1622 >evidenziate</glossterm 1623 > in viola.</para> 1624 1625 <para 1626 >Le variabili possono contenere qualsiasi <link linkend="number" 1627 >numero</link 1628 >, una <link linkend="string" 1629 >stringa</link 1630 > o un<link linkend="boolean-value" 1631 >valore booleano (vero/falso)</link 1632 >. Usando l'assegnazione, <userinput 1633 >=</userinput 1634 >, è possibile impostare il contenuto di una variabile. Lo manterrà fino alla fine dell'esecuzione del programma, oppure fino a quando le viene assegnato qualcos'altro.</para> 1635 1636 <para 1637 >Una volta assegnate, puoi usare le variabili come se fossero il loro contenuto. Per esempio, nel frammento seguente di codice &turtlescript;: <screen> 1638 $x = 10 1639 $x = $x / 3 1640 scrivi $x 1641 </screen 1642 > Prima, alla variabile <userinput 1643 >$x</userinput 1644 > viene assegnato <userinput 1645 >10</userinput 1646 >. Quindi, ad <userinput 1647 >$x</userinput 1648 > viene riassegnato il proprio valore diviso per <userinput 1649 >3</userinput 1650 > — ciò effettivamente significa che ad <userinput 1651 >$x</userinput 1652 > viene assegnato il risultato di <userinput 1653 >10 / 3</userinput 1654 >. Infine, <userinput 1655 >$x</userinput 1656 > viene stampata. Nelle righe due e tre puoi vedere che<userinput 1657 >$x</userinput 1658 > è usata come se fosse quello che in realtà contiene.</para> 1659 1660 <para 1661 >Per poter usare le variabili, deve avergli assegnato qualcosa. Ad esempio: <screen> 1662 scrivi $n 1663 </screen 1664 > Avrà come risultato un messaggio d'errore.</para> 1665 1666 <para 1667 >Osserviamo il seguente frammento di codice &turtlescript;: <screen> 1668 $a = 2004 1669 $b = 25 1670 1671 # il comando seguente scrive "2029" 1672 scrivi $a + $b 1673 indietro 30 1674 # il comando seguente scrive "2004 più 25 = 2029" 1675 scrivi $a + " più " + $b " = " + ($a + $b) 1676 </screen 1677 > Nelle prime due righe le variabili <userinput 1678 >$a</userinput 1679 > e <userinput 1680 >$b</userinput 1681 > sono impostare a 2004 e 25. Quindi ci sono due comandi <userinput 1682 >scrivi</userinput 1683 > con <userinput 1684 >indietro 30</userinput 1685 > in mezzo. I commenti prima dei comandi <userinput 1686 >scrivi</userinput 1687 > spiegano cosa viene fatto. Il comando <userinput 1688 >indietro 30</userinput 1689 > è usato per scrivere ogni testo in una nuova riga. Come puoi vedere, le variabili possono essere usate come se fossero quello che contengono, e puoi usarle con qualsiasi tipo di <link linkend="operators" 1690 >operatore</link 1691 > oppure come argomento quando usi qualche <link linkend="commands" 1692 >comando</link 1693 >.</para> 1694 1695 <para 1696 >Ancora un esempio: <screen> 1697 $nome = chiedi "Qual è il tuo nome?" 1698 scrivi "Ciao " + $nome + "! Buona fortuna per l'apprendimento dell'arte della programmazione..." 1699 </screen 1700 > Abbastanza semplice. Puoi nuovamente vedere come la variabile <userinput 1701 >$nome</userinput 1702 > è considerata come fosse una stringa di testo.</para> 1703 1704 <para 1705 >Quando usi variabili, l'<link linkend="the-inspector" 1706 >ispettore</link 1707 > è molto utile. Mostra il contenuto di tutte le variabili attualmente usate.</para> 1708 </sect1> 1709 1710 1711 1712 <sect1 id="controlling-execution"> 1713 <title 1714 >Controllare l'esecuzione</title> 1715 <para 1716 >I comandi di controllo dell'esecuzione ti permettono — come dicono il loro nomi — di controllare l'esecuzione.</para> 1717 <para 1718 >I comandi di controllo dell'esecuzione sono <glossterm 1719 >evidenziati</glossterm 1720 > in verde scuro, e con un carattere grassetto. Le parentesi sono usate principalmente con i comandi di controllo dell'esecuzione, e sono <glossterm 1721 >evidenziate</glossterm 1722 > di nero.</para> 1723 1724 <sect2 id="wait"> 1725 <title 1726 >Far aspettare la tartaruga</title> 1727 <para 1728 >Se hai programmato in &kturtle;, potresti aver notato che la tartaruga può essere molto veloce a disegnare. Questo comando fa sì che la tartaruga attenda per un tempo specificato.</para> 1729 <variablelist> 1730 <varlistentry> 1731 <term 1732 >aspetta<indexterm 1733 ><primary 1734 >aspetta</primary 1735 ></indexterm 1736 ></term> 1737 <listitem 1738 ><para 1739 ><screen 1740 >aspetta X</screen 1741 ><userinput 1742 >aspetta</userinput 1743 > fa sì che la tartaruga attenda X secondi. <screen> 1744 ripeti 36 { 1745 avanti 5 1746 destra 10 1747 aspetta 0.5 1748 } 1749 </screen 1750 > Questo codice disegna un cerchio, ma la tartaruga attenderà mezzo secondo dopo ogni passo. Ciò dà l'impressione che la tartaruga si muova lentamente.</para 1751 ></listitem> 1752 </varlistentry> 1753 </variablelist> 1754 </sect2> 1755 1756 <sect2 id="if"> 1757 <title 1758 >Esegui <quote 1759 >se</quote 1760 ></title> 1761 <variablelist> 1762 <varlistentry> 1763 <term 1764 >se<indexterm 1765 ><primary 1766 >se</primary 1767 ></indexterm 1768 ></term> 1769 <listitem 1770 ><para 1771 ><screen 1772 >se <link linkend="boolean-value" 1773 >booleano</link 1774 > { ... }</screen 1775 >Il codice che si trova tra le parentesi sarà eseguito solo <userinput 1776 >se</userinput 1777 > il <link linkend="boolean-value" 1778 >valore booleano</link 1779 > dà come risultato <quote 1780 >vero</quote 1781 >. <screen> 1782 $x = 6 1783 se $x > 5 { 1784 scrivi "x è più grande di cinque!" 1785 } 1786 </screen 1787 > Nella prima riga, <userinput 1788 >$x</userinput 1789 > è impostato a 6. Nella seconda viene usato un <link linkend="comparing-operators" 1790 >operatore di confronto</link 1791 > per produrre il risultato di <userinput 1792 >$x > 5</userinput 1793 >. Dato che è <quote 1794 >vero</quote 1795 > (6 è più grande di 5), il comando di controllo dell'esecuzione <userinput 1796 >se</userinput 1797 > permetterà che il codice tra le parentesi venga eseguito.</para 1798 ></listitem> 1799 </varlistentry> 1800 </variablelist> 1801 </sect2> 1802 1803 <sect2 id="else"> 1804 <title 1805 >Se no, in altre parole: <quote 1806 >altrimenti</quote 1807 ></title> 1808 <variablelist> 1809 <varlistentry> 1810 <term 1811 >altrimenti<indexterm 1812 ><primary 1813 >altrimenti</primary 1814 ></indexterm 1815 ></term> 1816 <listitem 1817 ><para 1818 ><screen 1819 >se <link linkend="boolean-value" 1820 >booleano</link 1821 > { ... } altrimenti { ... }</screen 1822 ><userinput 1823 >altrimenti</userinput 1824 > può essere usato in aggiunta al comando di controllo dell'esecuzione <link linkend="if" 1825 ><userinput 1826 >se</userinput 1827 ></link 1828 >. Il codice tra le parentesi dopo <userinput 1829 >altrimenti</userinput 1830 > viene eseguito solo se il <link linkend="boolean-value" 1831 >valore booleano</link 1832 > vale <quote 1833 >falso</quote 1834 >. <screen> 1835 ricomincia 1836 $x = 4 1837 se $x > 5 { 1838 scrivi "x è più grande di cinque!" 1839 } altrimenti { 1840 scrivi "x è più piccolo di cinque!" 1841 } 1842 </screen 1843 > L'<link linkend="comparing-operators" 1844 >operatore di confronto</link 1845 > valuta l'espressione <userinput 1846 >$x > 5</userinput 1847 >. Dato che 4 non è maggiore di 5, l'espressione vale <quote 1848 >falso</quote 1849 >. Ciò significa che il codice tra le parentesi dopo <userinput 1850 >altrimenti</userinput 1851 > viene eseguito.</para 1852 ></listitem> 1853 </varlistentry> 1854 </variablelist> 1855 </sect2> 1856 1857 <sect2 id="while"> 1858 <title 1859 >Il ciclo <quote 1860 >mentre</quote 1861 ></title> 1862 <variablelist> 1863 <varlistentry> 1864 <term 1865 >mentre<indexterm 1866 ><primary 1867 >mentre</primary 1868 ></indexterm 1869 ></term> 1870 <listitem 1871 ><para 1872 ><screen 1873 >mentre <link linkend="boolean-value" 1874 >booleano</link 1875 > { ... }</screen 1876 >Il comando di controllo dell'esecuzione <userinput 1877 >mentre</userinput 1878 > è molto simile a <link linkend="if" 1879 ><userinput 1880 >se</userinput 1881 ></link 1882 >. La differenza è che <userinput 1883 >mentre</userinput 1884 > continua a ripetere (in modo ciclico) il codice tra le parentesi fino a quando il <link linkend="boolean-value" 1885 >valore booleano</link 1886 > è <quote 1887 >falso</quote 1888 >. <screen> 1889 $x = 1 1890 mentre $x < 5 { 1891 avanti 10 1892 aspetta 1 1893 $x = $x + 1 1894 } 1895 </screen 1896 > Nella prima riga, <userinput 1897 >x</userinput 1898 > è impostato a 1. Nella seconda viene valutato <userinput 1899 >x < 5</userinput 1900 >. Dato che la risposta a questa domanda è <quote 1901 >vero</quote 1902 >, il comando di controllo dell'esecuzione <userinput 1903 >mentre</userinput 1904 > inizia ad eseguire il codice tra le parentesi fino a quando <userinput 1905 >$x < 5</userinput 1906 > dà come risultato <quote 1907 >falso</quote 1908 >. In questo caso il codice tra le parentesi verrà eseguito 4 volte, dato che ogni volta che viene eseguita la quinta riga <userinput 1909 >$x</userinput 1910 > viene incrementato di 1.</para 1911 ></listitem> 1912 </varlistentry> 1913 </variablelist> 1914 </sect2> 1915 1916 <sect2 id="repeat"> 1917 <title 1918 >Il ciclo <quote 1919 >ripeti</quote 1920 ></title> 1921 <variablelist> 1922 <varlistentry> 1923 <term 1924 >ripeti<indexterm 1925 ><primary 1926 >ripeti</primary 1927 ></indexterm 1928 ></term> 1929 <listitem 1930 ><para 1931 ><screen 1932 >ripeti <link linkend="number" 1933 >numero</link 1934 > { ... }</screen 1935 >Il comando di controllo dell'esecuzione <userinput 1936 >ripeti</userinput 1937 > è molto simile a <link linkend="while" 1938 ><userinput 1939 >mentre</userinput 1940 ></link 1941 >. La differenza è che <userinput 1942 >ripeti</userinput 1943 > continua a ripetere (iterare) il codice tra le parentesi per il numero di volte specificato.</para 1944 ></listitem> 1945 </varlistentry> 1946 </variablelist> 1947 </sect2> 1948 1949 <sect2 id="for"> 1950 <title 1951 >Il ciclo <quote 1952 >per</quote 1953 >, un ciclo contato</title> 1954 <variablelist> 1955 <varlistentry> 1956 <term 1957 >per<indexterm 1958 ><primary 1959 >per</primary 1960 ></indexterm 1961 ><indexterm 1962 ><primary 1963 >a</primary 1964 ></indexterm 1965 ><indexterm 1966 ><primary 1967 >passo</primary 1968 ></indexterm 1969 ></term> 1970 <listitem 1971 ><para 1972 ><screen 1973 >per <link linkend="assignment-of-variables" 1974 >variabile</link 1975 > = <link linkend="number" 1976 >numero</link 1977 > finoa <link linkend="number" 1978 >numero</link 1979 > { ... }</screen 1980 >Il ciclo <userinput 1981 >per</userinput 1982 > è un <quote 1983 >ciclo contato</quote 1984 >, &ie; conta per te. Il primo numero imposta nel primo ciclo la variabile al valore. Ad ogni ciclo il numero è incrementato fino a quando diventa uguale al secondo numero. <screen> 1985 per $x = 1 finoa 10 { 1986 scrivi $x * 7 1987 avanti 15 1988 } 1989 </screen 1990 > Ogni volta che viene eseguito il codice tra le parentesi, <userinput 1991 >$x</userinput 1992 > viene incrementato di 1, fino a quando <userinput 1993 >$x</userinput 1994 > raggiunge il valore di 10. Il codice tra le parentesi scrive il valore di <userinput 1995 >$x</userinput 1996 > moltiplicato per 7. Alla fine dell'esecuzione di questo programma vedrai scritta sull'area di disegno la tabellina del 7. </para> 1997 <para 1998 >Il passo predefinito di un ciclo è 1, puoi usare un altro valore con <screen 1999 >per <link linkend="assignment-of-variables" 2000 >variabile</link 2001 > = <link linkend="number" 2002 >numero</link 2003 > finoa <link linkend="number" 2004 >numero</link 2005 > passo <link linkend="number" 2006 >numero</link 2007 > { ... }</screen 2008 ></para 2009 ></listitem> 2010 </varlistentry> 2011 </variablelist> 2012 </sect2> 2013 2014 <sect2 id="break"> 2015 <title 2016 >Lasciare un ciclo</title> 2017 <variablelist> 2018 <varlistentry> 2019 <term 2020 >interrompi<indexterm 2021 ><primary 2022 >interrompi</primary 2023 ></indexterm 2024 ></term> 2025 <listitem 2026 ><para 2027 ><screen 2028 >interrompi</screen 2029 >Interrompe immediatamente il ciclo corrente, e trasferisce il controllo all'istruzione che si trova subito a dopo quel ciclo.</para 2030 ></listitem> 2031 </varlistentry> 2032 </variablelist> 2033 </sect2> 2034 2035 <sect2 id="exit"> 2036 <title 2037 >Interrompere l'esecuzione dei programmi</title> 2038 <variablelist> 2039 <varlistentry> 2040 <term 2041 >esci<indexterm 2042 ><primary 2043 >esci</primary 2044 ></indexterm 2045 ></term> 2046 <listitem 2047 ><para 2048 ><screen 2049 >esci</screen 2050 >Termina l'esecuzione del programma.</para 2051 ></listitem> 2052 </varlistentry> 2053 </variablelist> 2054 </sect2> 2055 2056 <sect2 id="assert"> 2057 <title 2058 >Controllare le asserzioni durante l'esecuzione</title> 2059 <variablelist> 2060 <varlistentry> 2061 <term 2062 >asserisci<indexterm 2063 ><primary 2064 >asserisci</primary 2065 ></indexterm 2066 ></term> 2067 <listitem 2068 ><para 2069 ><screen 2070 >asserisci <link linkend="boolean-value" 2071 >booleano</link 2072 ></screen 2073 >Può essere usato per assicurarsi della validità del programma o dei dati inseriti. <screen 2074 >$in = chiedi "Qual è il tuo anno di nascita?" 2075 # l'anno deve essere un valore maggiore di zero 2076 asserisci $in 2077 > 0 2078 </screen 2079 ></para 2080 ></listitem> 2081 </varlistentry> 2082 </variablelist> 2083 </sect2> 2084 </sect1> 2085 2086 2087 <sect1 id="learn"> 2088 2089 <title 2090 >Crea i tuoi comandi con <quote 2091 >impara</quote 2092 ></title> 2093 <para 2094 ><userinput 2095 >impara</userinput 2096 ><indexterm 2097 ><primary 2098 >impara</primary 2099 ></indexterm 2100 > è un comando speciale, usato per creare comandi personalizzati. Il comando che crei può richiedere degli <glossterm linkend="input-output" 2101 >argomenti</glossterm 2102 > e restituire dei <glossterm linkend="input-output" 2103 >valori</glossterm 2104 >. Diamo un'occhiata a come creare un nuovo comando: <screen> 2105 impara cerchio $x { 2106 ripeti 36 { 2107 avanti $x 2108 sinistra 10 2109 } 2110 } 2111 </screen 2112 > Il nuovo comando è chiamato <userinput 2113 >cerchio</userinput 2114 >. <userinput 2115 >cerchio</userinput 2116 > richiede un <glossterm linkend="input-output" 2117 >argomento</glossterm 2118 > per impostare la dimensione del cerchio. <userinput 2119 >cerchio</userinput 2120 > non restituisce dei <glossterm linkend="input-output" 2121 >valori</glossterm 2122 >. Il comando <userinput 2123 >cerchio</userinput 2124 > può essere ora usato nel resto del codice come un normale comando. Guarda questo esempio: <screen 2125 >impara cerchio $X { 2126 ripeti 36 { 2127 avanti $X 2128 sinistra 10 2129 } 2130 } 2131 2132 vai 200,200 2133 cerchio 20 2134 2135 vai 300,200 2136 cerchio 40 2137 </screen> 2138 </para> 2139 <para 2140 >Nell'esempio seguente viene creato un comando con un valore restituito<indexterm 2141 ><primary 2142 >restituisci</primary 2143 ></indexterm 2144 >. <screen> 2145 impara esempio $x { 2146 $r = 1 2147 per $i = 1 finoa $x { 2148 $r = $r * $i 2149 } 2150 restituisci $r 2151 } 2152 2153 scrivi esempio 5 2154 </screen 2155 > In questo esempio viene creato un nuovo comando chiamato <userinput 2156 >esempio</userinput 2157 >. Se l'argomento di questo comando è <userinput 2158 >5</userinput 2159 >, il risultato è <userinput 2160 >5*4*3*2*1</userinput 2161 >. Usando <userinput 2162 >restituisci</userinput 2163 > viene specificato il <glossterm linkend="input-output" 2164 >valore restituito</glossterm 2165 > è l'esecuzione del comando termina.</para> 2166 <para 2167 >I comandi possono avere più di un <glossterm linkend="input-output" 2168 >argomento</glossterm 2169 >. Nell'esempio che segue, viene creato un comando che disegna un rettangolo. <screen> 2170 impara scatola $x, $y { 2171 avanti $y 2172 destra 90 2173 avanti $x 2174 destra 90 2175 avanti $y 2176 destra 90 2177 avanti $x 2178 destra 90 2179 } 2180 </screen 2181 > Adesso puoi eseguire <userinput 2182 >scatola 50, 100</userinput 2183 >, e la tartaruga disegnerà un rettangolo nell'area di disegno. </para> 2184 2185 </sect1> 2186 2187 </chapter>