diff options
Diffstat (limited to 'tde-i18n-it/docs/tdeedu/kturtle/programming-reference.docbook')
-rw-r--r-- | tde-i18n-it/docs/tdeedu/kturtle/programming-reference.docbook | 1731 |
1 files changed, 1731 insertions, 0 deletions
diff --git a/tde-i18n-it/docs/tdeedu/kturtle/programming-reference.docbook b/tde-i18n-it/docs/tdeedu/kturtle/programming-reference.docbook new file mode 100644 index 00000000000..e5e29b43d19 --- /dev/null +++ b/tde-i18n-it/docs/tdeedu/kturtle/programming-reference.docbook @@ -0,0 +1,1731 @@ +<!--Dear translator: please NEVER translate the id or anything inside the tags as they are needed in english by the application + Thanks a lot in advance.--> +<chapter id="reference"> +<title +>Guida di &kturtle; alla programmazione &logo;</title> +<para +>Questa è la guida del &logo; di &kturtle;. In questo capitolo accenniamo brevemente a tutti i <link linkend="different-instructions" +>diversi tipi di istruzioni</link +>. Quindi vengono spiegati uno ad uno i <link linkend="commands" +>comandi</link +>. Poi vengono spiegati i <link linkend="containers" +>contenitori</link +>, la <link linkend="math" +>matematica</link +>, le <link linkend="questions" +>domande</link +> e le <link linkend="controlling-execution" +>istruzioni di controllo dell'esecuzione</link +>. Infine ti viene mostrato come creare i tuoi comandi con <link linkend="learn" +>impara</link +>.</para> + +<sect1 id="different-instructions"> +<title +>Differenti tipi di istruzioni</title> +<para +>Come in qualsiasi altro linguaggio, il LOGO ha differenti tipi di parole e di simboli. Qui vengono brevemente spiegate le differenze tra i tipi.</para> + +<sect2 id="command"> +<title +>Comandi</title> +<para +>Usando i comandi tu dici alla tartaruga o a &kturtle; di fare qualcosa. Alcuni comandi richiedono argomenti, alcuni restituiscono risultati. <screen +># avanti è un comando che richiede un argomento, in questo caso il numero 100: +avanti 100 +</screen> +</para> +<para +>Per una panoramica dettagliata di tutti i comandi che &kturtle; supporta vai <link linkend="commands" +>qui</link +>.</para> +</sect2> + +<sect2 id="number"> +<title +>Numeri</title> +<para +>Molto probabilmente conosci già i numeri. Il modo in cui i numeri sono usati in &kturtle; non è molto differente dalla lingua parlata o dalla matematica. </para> +<para +>Abbiamo i cosiddetti numeri naturali: <userinput +>0</userinput +>, <userinput +>1</userinput +>, <userinput +>2</userinput +>, <userinput +>3</userinput +>, <userinput +>4</userinput +>, <userinput +>5</userinput +>, ecc. I numeri negativi: <userinput +>-1</userinput +>, <userinput +>-2</userinput +>, <userinput +>-3</userinput +>, ecc. E i numeri decimali, o numeri con la virgola, per esempio: <userinput +>0.1</userinput +>, <userinput +>3.14</userinput +>, <userinput +>33.3333</userinput +>, <userinput +>-5.05</userinput +>, <userinput +>-1.0</userinput +>. </para> +<para +>I numeri possono essere usati in <link linkend="math" +>calcoli matematici</link +> e in <link linkend="questions" +>domande</link +>. Possono anche essere inseriti in <link linkend="containers" +>contenitori</link +>.</para> +<para +>I numeri sono <glossterm +>evidenziati</glossterm +> con il blu nell'<link linkend="the-code-editor" +>editor del codice</link +>.</para> +</sect2> + +<sect2 id="string"> +<title +>Stringhe</title> +<para +>Prima un esempio: <screen> +scrivi "Ciao, sono una stringa." +</screen +> In questo esempio <userinput +>scrivi</userinput +> è un comando dove <userinput +>"Ciao, sono una stringa."</userinput +> è una stringa. Le stringhe iniziano e finiscono con il carattere <userinput +>"</userinput +>, e grazie a questi caratteri &kturtle; sa che è una stringa.</para> +<para +>Le stringhe possono essere inserite in <link linkend="containers" +>contenitori</link +>. Tuttavia non possono essere usate in <link linkend="math" +>calcoli matematici</link +> e <link linkend="questions" +>domande</link +>.</para> +<para +>Le stringhe sono <glossterm +>evidenziate</glossterm +> con il rosso scuro nell'<link linkend="the-code-editor" +>editor del codice</link +>.</para> +</sect2> + + +<sect2 id="name"> +<title +>Nomi</title> +<para +>Quando usi il linguaggio di programmazione &logo; crei nuove cose. Se scrivi un programma spesso avrai bisogno di <link linkend="containers" +>contenitori</link +> e, in alcuni casi, di <link linkend="learn" +>impara</link +> per creare nuovi comandi. Quando crei un <link linkend="containers" +>contenitore</link +> o un nuovo comando con <link linkend="learn" +>impara</link +> dovrai specificare un nome.</para> +<para +>Puoi scegliere qualsiasi nome, a meno che non abbia già un significato. Per esempio non puoi chiamare <link linkend="forward" +>avanti</link +> un contenitore, dato che quel nome è già usato per un comando, e per questo ha un significato. <screen> +# qui avanti è usato come contenitore, ma ha già un significato +# così questa riga genererà un errore: +avanti = 20 + +# questa funziona: +avanti 20 +</screen +> I nomi possono contenere solo lettere, numeri e trattini bassi (_). Devono tuttavia iniziare con una lettera. </para> +<para +>Per una spiegazione più esauriente e per vedere più esempi leggi la documentazione sui <link linkend="containers" +>contenitori</link +> e sul comando <link linkend="learn" +>impara</link +>. </para> +</sect2> + +<sect2 id="assignment"> +<title +>Assegnamenti</title> +<para +>Un assegnamento viene effettuato con il simbolo <userinput +>=</userinput +>. Nei linguaggi di programmazione è meglio leggere il singolo <userinput +>=</userinput +> non come "uguale" ma come "diventa". La parola "uguale" è più appropriata per <userinput +>==</userinput +> che è una <link linkend="questions" +>domanda</link +>.</para> +<para +>Gli assegnamenti sono usati generalmente per due motivi, (1) per aggiungere <link linkend="containers" +>contenitori</link +> e (2) per modificare il contenuto di un contenitore. Per esempio: <screen +>x = 10 +# il contenitore x ora contiene il numero 10 +W = "La mia età è: " +# il contenitore W ora contiene la stringa "La mia età è: " +# questa riga scrive il contenuto dei contenitori 'W' e 'x' sull'area di disegno +scrivi W + x +</screen> +</para> +<para +>Per vedere più esempi leggi la sezioni che spiega i <link linkend="containers" +>contenitori</link +>.</para> +</sect2> + +<sect2 id="math-symbols"> +<title +>Simboli matematici</title> +<para +>&kturtle; supporta tutti i simboli matematici base: addizione (<userinput +>+</userinput +>), sottrazione (<userinput +>-</userinput +>), moltiplicazione (<userinput +>*</userinput +>), divisione (<userinput +>/</userinput +>) e le parentesi <userinput +>(</userinput +> e <userinput +>)</userinput +>.</para> +<para +>Per una spiegazione più esauriente e per vedere più esempi leggi la sezione sulla <link linkend="math" +>matematica</link +>.</para> +</sect2> + +<sect2 id="question"> +<title +>Domande</title> +<para +>Possiamo chiedere semplici domande la cui risposta sarà "vero" o "falso".</para> +<para +>L'uso delle domande è ampiamente spiegato nella sezione sulle <link linkend="questions" +>domande</link +>.</para> +</sect2> + +<sect2 id="questions-glue"> +<title +>I "collanti" delle domande</title> +<para +>Le domande posso essere unite assieme con i cosiddetti "collanti delle domande". Le parole "collanti" sono <userinput +>e</userinput +> <userinput +>o</userinput +>, e un "collante" speciale: <userinput +>non</userinput +>.</para> +<para +>L'uso dei "collanti" delle domande è spiegato nella sezione <link linkend="question-glue" +>I "collanti" delle domande</link +>.</para> +</sect2> + + +<sect2 id="comment"> +<title +>Commenti</title> +<para +>I commenti sono linee che iniziano con <userinput +>#</userinput +>. Per esempio: <screen> +# questo è un commento! +scrivi "questo non è un commento" +# la linea precedente non è un commento, ma la linea successiva sì: +# scrivi "questo non è un commento" +</screen +> Noi possiamo aggiungere commenti al codice, affinché lo leggiamo noi stessi o lo leggano altri. I commenti sono usati per: (1) aggiungere una piccola descrizione al programma, (2) spiegare come funziona un pezzo di codice nel caso sia un po' complesso, e (3) per "commentare via" linee di codice che dovrebbero essere (temporaneamente) ignorate (guarda l'ultima linea dell'esempio).</para> +<para +>Le linee commentate sono <glossterm +>evidenziate</glossterm +> con il giallo scuro nell'<link linkend="the-code-editor" +>editor del codice</link +>.</para> +</sect2> + +</sect1> + + +<sect1 id="commands"> +<title +>Comandi</title> +<para +>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 che possono essere usati in &kturtle;. Nota che tutti i comandi predefiniti di cui discutiamo qui sono <glossterm +>evidenziati</glossterm +> con il verde scuro nell'<link linkend="the-code-editor" +>editor del codice</link +>, ciò può aiutarti a distinguerli.</para> + +<sect2 id="moving-the-turtle"> +<title +>Muovere la tartaruga</title> +<para +>Ci sono vari comandi per muovere la tartaruga sullo schermo.</para> + +<sect3 id="forward"> + <title +>avanti (av)</title> + <variablelist> + <varlistentry +> + <term +>avanti</term> + <listitem +><para +><screen +>avanti X</screen> +<userinput +>avanti</userinput +> muove la tartaruga avanti di X pixel. Quando la penna è giù la tartaruga lascerà un tratto. <userinput +>avanti</userinput +> può essere abbreviato in <userinput +>av</userinput +></para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="backward"> + <title +>indietro (in)</title> + <variablelist> + <varlistentry +> + <term +>indietro</term> + <listitem +><para +><screen +>indietro X</screen> +<userinput +>indietro</userinput +> muove la tartaruga indietro di X pixel. Quando la penna è giù la tartaruga lascerà un tratto. <userinput +>indietro</userinput +> può essere abbreviato in <userinput +>in</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="turnleft"> + <title +>sinistra (sx)</title> + <variablelist> + <varlistentry +> + <term +>sinistra</term> + <listitem +><para +><screen +>sinistra X</screen> +<userinput +>sinistra</userinput +> comanda alla tartaruga di girare X gradi a sinistra. <userinput +>sinistra</userinput +> può essere abbreviato in <userinput +>sx</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="turnright"> + <title +>destra (dx)</title> + <variablelist> + <varlistentry +> + <term +>destra</term> + <listitem +><para +><screen +>destra X</screen> +<userinput +>destra</userinput +> comanda alla tartaruga di girare X gradi a destra. <userinput +>destra</userinput +> può essere abbreviato in <userinput +>dx</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="direction"> + <title +>direzione (dir)</title> + <variablelist> + <varlistentry +> + <term +>direzione</term> + <listitem +><para +><screen +>direzione X</screen> +<userinput +>direzione</userinput +> imposta la direzione della tartaruga a X gradi partendo da zero, e così non è relativo alla precedente direzione della tartaruga. <userinput +>direzione</userinput +> può essere abbreviato in <userinput +>dir</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="center"> + <title +>centro</title> + <variablelist> + <varlistentry +> + <term +>centro</term> + <listitem +><para +><screen +>centro</screen> +<userinput +>centro</userinput +> muove la tartaruga al centro dell'area di disegno.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="go"> + <title +>vai</title> + <variablelist> + <varlistentry +> + <term +>vai</term> + <listitem +><para +><screen +>vai X,Y</screen> +<userinput +>vai</userinput +> comanda alla tartaruga di andare in un certo punto dell'area di disegno. Questo punto dista X <glossterm linkend="pixels" +>pixel</glossterm +> da sinistra e Y <glossterm linkend="pixels" +>pixel</glossterm +> dall'alto dell'area di disegno. Nota che usando il comando <userinput +>vai</userinput +> la tartaruga non disegnerà una linea.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="gox"> + <title +>vaix</title> + <variablelist> + <varlistentry +> + <term +>vaix</term> + <listitem +><para +><screen +>vaix X</screen> +<userinput +>vaix</userinput +> usando questo comando la tartaruga si muoverà a X <glossterm linkend="pixels" +>pixel</glossterm +> dalla sinistra dell'area di disegno mantenendo la sua altezza.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="goy"> + <title +>vaiy</title> + <variablelist> + <varlistentry +> + <term +>vaiy</term> + <listitem +><para +><screen +>vaiy Y</screen> +<userinput +>vaiy</userinput +> usando questo comando la tartaruga si muoverà a Y <glossterm linkend="pixels" +>pixel</glossterm +> dall'alto dell'area di disegno mantenendosi alla stessa distanza dal bordo sinistro dell'area di disegno.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="pen"> +<title +>La tartaruga ha una penna</title> +<para +>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 questi comandi.</para> +<sect3 id="penup"> + <title +>pennasu (ps)</title> + <variablelist> + <varlistentry +> + <term +>pennasu</term> + <listitem +><para +><screen +>pennasu</screen> +<userinput +>pennasu</userinput +> alza la penna dall'area di disegno. Quando la penna è <quote +>su</quote +> non sarà disegnata alcuna linea quando la tartaruga si muove. Vedi anche <userinput +>pennagiu</userinput +>. <userinput +>pennasu</userinput +> può essere abbreviato in <userinput +>ps</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="pendown"> + <title +>pennagiu (pg)</title> + <variablelist> + <varlistentry +> + <term +>pennagiu</term> + <listitem +><para +><screen +>pennagiu</screen> +<userinput +>pennagiu</userinput +> abbassa la penna sull'area di disegno. Quando la penna è <quote +>giù</quote +> sull'area di disegno sarà disegnata una linea quando la tartaruga si muove. Vedi anche <userinput +>pennasu</userinput +>. <userinput +>pennagiu</userinput +> può essere abbreviato in <userinput +>pg</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setpenwidth"> + <title +>spessorepenna (sp)</title> + <variablelist> + <varlistentry +> + <term +>spessorepenna</term> + <listitem +><para +><screen +>spessorepenna X</screen> +<userinput +>spessorepenna</userinput +> imposta lo spessore della penna (lo spessore della linea) a X <glossterm linkend="pixels" +>pixel</glossterm +>. <userinput +>spessorepenna</userinput +> può essere abbreviato in <userinput +>sp</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setfgcolor"> + <title +>colorepenna (cp)</title> + <variablelist> + <varlistentry +> + <term +>colorepenna</term> + <listitem +><para +><screen +>colorepenna R,G,B</screen> +<userinput +>colorepenna</userinput +> imposta il colore della penna. <userinput +>colorepenna</userinput +> richiede una <glossterm linkend="rgb" +>combinazione RGB</glossterm +> come argomento. <userinput +>colorepenna</userinput +> può essere abbreviato in <userinput +>cp</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="canvas"> +<title +>Comandi per controllare l'area di disegno</title> +<para +>Ci sono vari comandi per controllare l'area di disegno.</para> +<sect3 id="resizecanvas"> + <title +>dimensionesfondo (ds)</title> + <variablelist> + <varlistentry> + <term +>dimensionesfondo</term> + <listitem +><para +><screen +>dimensionesfondo X,Y</screen> +Con il comando <userinput +>dimensionesfondo</userinput +> puoi impostare la dimensione dell'area di disegno. Richiede X e Y come argomenti, dove X è la nuova larghezza dell'area di disegno in <glossterm linkend="pixels" +>pixel</glossterm +>, e Y è la nuova altezza dell'area di disegno in <glossterm linkend="pixels" +>pixel</glossterm +>. <userinput +>dimensionesfondo</userinput +> può essere abbreviato in <userinput +>ds</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="setbgcolor"> + <title +>coloresfondo (cs)</title> + <variablelist> + <varlistentry +> + <term +>coloresfondo</term> + <listitem +><para +><screen +>coloresfondo R,G,B</screen> +<userinput +>coloresfondo</userinput +> imposta il colore dell'area di disegno. <userinput +>coloresfondo</userinput +> richiede una <glossterm linkend="rgb" +>combinazione RGB</glossterm +> come argomento. <userinput +>coloresfondo</userinput +> può essere abbreviato in <userinput +>cs</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="wrapon"> + <title +>attorno</title> + <variablelist> + <varlistentry +> + <term +>attorno</term> + <listitem +><para +><screen +>attorno</screen> +Con il comando <userinput +>attorno</userinput +> puoi attivare l'<glossterm linkend="wrapping" +>avvolgimento</glossterm +> per l'area di disegno. Consulta il glossario se vuoi sapere cosa è <glossterm linkend="wrapping" +>l'<quote +>avvolgimento</quote +></glossterm +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="wrapoff"> + <title +>muro</title> + <variablelist> + <varlistentry +> + <term +>muro</term> + <listitem +><para +><screen +>muro</screen> +Con il comando <userinput +>muro</userinput +> puoi disattivare l'<glossterm linkend="wrapping" +>avvolgimento</glossterm +> per l'area di disegno: ciò significa che la tartaruga può muoversi al di fuori dell'area di disegno e <quote +>perdersi</quote +>. Consulta il glossario se vuoi sapere cosa è <glossterm linkend="wrapping" +>l'<quote +>avvolgimento</quote +></glossterm +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="clean"> +<title +>Comandi per fare pulizia</title> +<para +>Ci sono due comandi per pulire l'area di disegno dopo che hai fatto confusione.</para> +<sect3 id="clear"> + <title +>pulisci (cls)</title> + <variablelist> + <varlistentry +> + <term +>pulisci</term> + <listitem +><para +><screen +>pulisci</screen> +Con <userinput +>pulisci</userinput +> 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. <userinput +>pulisci</userinput +> può essere abbreviato in <userinput +>cls</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="reset"> + <title +>ricomincia</title> + <variablelist> + <varlistentry +> + <term +>ricomincia</term> + <listitem +><para +><screen +>ricomincia</screen> +<userinput +>ricomincia</userinput +> pulisce molto più accuratamente del comando <userinput +>pulisci</userinput +>. Dopo un comando <userinput +>ricomincia</userinput +> tutto ritorna come era quando hai avviato &kturtle;. La tartaruga è posizionata al centro dello schermo, il colore dell'area di disegno è bianco e la tartaruga disegna linee nere sull'area di disegno.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="sprites"> +<title +>La tartaruga è un folletto</title> +<para +>Prima una breve spiegazione di cosa sono i folletti: i folletti sono piccoli disegni che possono essere mossi in giro per lo schermo, come 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" +>folletti</glossterm +>. </para> +<para +>Di seguito troverai una descrizione completa di tutti i comandi che lavorano con i folletti.</para> +<para +>[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> +<sect3 id="spriteshow"> + <title +>mostra</title> + <variablelist> + <varlistentry +> + <term +>mostra (ms)</term> + <listitem +><para +><screen +>mostra</screen> +<userinput +>mostra</userinput +> rende nuovamente visibile la tartaruga dopo che è stata nascosta. <userinput +>mostra</userinput +> può essere abbreviato in <userinput +>ms</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="spritehide"> + <title +>nascondi (ns)</title> + <variablelist> + <varlistentry +> + <term +>nascondi</term> + <listitem +><para +><screen +>nascondi</screen> +<userinput +>nascondi</userinput +> nasconde la tartaruga. Ciò può essere usato se non conviene che la tartaruga appaia nel tuo disegno. <userinput +>nascondi</userinput +> può essere abbreviato in <userinput +>ns</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="writing"> +<title +>Possono le tartarughe scrivere del testo?</title> +<para +>La risposta è: <quote +>sì</quote +>. La tartaruga può scrivere: scrive tutto quello che tu le comandi di scrivere.</para> +<sect3 id="print"> + <title +>scrivi</title> + <variablelist> + <varlistentry +> + <term +>scrivi</term> + <listitem +><para +><screen +>scrivi X</screen> +Il comando <userinput +>scrivi</userinput +> è usato per comandare alla tartaruga di scrivere qualcosa sull'area di disegno. <userinput +>scrivi</userinput +> accetta numeri e stringhe come parametri. Puoi scrivere vari numeri e stringhe usando il simbolo <quote +>+</quote +>. Guarda qui un piccolo esempio: <screen +>anno = 2003 +autore = "Cies" +scrivi autore + " ha iniziato il progetto KTurtle nel " + anno + " e ancora si diverte a lavorarci!" +</screen> + </para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="fontsize"> + <title +>dimensionecarattere</title> + <variablelist> + <varlistentry +> + <term +>dimensionecarattere</term> + <listitem +><para +><screen +>dimensionecarattere X</screen> +<userinput +>dimensionecarattere</userinput +> imposta la dimensione del tipo di carattere usato dal comando <userinput +>scrivi</userinput +>. <userinput +>dimensionecarattere</userinput +> richiede un argomento che dovrebbe essere un numero. La dimensione è impostata in <glossterm linkend="pixels" +>pixel</glossterm +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +<sect2 id="random"> +<title +>Un comando che lancia dadi per te</title> +<para +>C'è comando che lancia un dado per te, ed è chiamato <userinput +>casuale</userinput +>, ed è molto utile per avere "risultati inattesi".</para> + <variablelist> + <varlistentry +> + <term +>casuale</term> + <listitem +><para +><screen +>casuale X,Y</screen> +<userinput +>casuale</userinput +> è un comando che richiede parametri e restituisce un valore. Come parametri 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> +ripeti 500 [ + x = casuale 1,20 + avanti x + sinistra 10 - x +] +</screen +> Usando il comando <userinput +>casuale</userinput +> puoi aggiungere un po' di caos al tuo programma.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="dialogs"> +<title +>Inserire dati e visualizzare messaggi con finestre di dialogo</title> +<para +>Una finestra di dialogo è una piccola finestra a comparsa che mostra un messaggio o chiede di inserire qualcosa. &kturtle; ha due comandi per le finestre di dialogo, chiamati: <userinput +>messaggio</userinput +> e <userinput +>finestrainserimento</userinput +></para> +<sect3 id="message"> + <title +>messaggio</title> + <variablelist> + <varlistentry +> + <term +>messaggio</term> + <listitem +><para +><screen +>messaggio X</screen> +Il comando <userinput +>messaggio</userinput +> richiede una <link linkend="string" +>stringa</link +> come argomento. Mostra una finestra a comparsa che contiene il testo della <link linkend="string" +>stringa</link +>. <screen +>anno = 2003 +autore = "Cies" +scrivi autore + " ha iniziato il progetto KTurtle nel " + anno + " e ancora si diverte a lavorarci!" +</screen> + </para +></listitem> + </varlistentry> + </variablelist> +</sect3> +<sect3 id="inputwindow"> + <title +>finestrainserimento</title> + <variablelist> + <varlistentry +> + <term +>finestrainserimento</term> + <listitem +><para +><screen +>finestrainserimento X</screen> +<userinput +>finestrainserimento</userinput +> richiede una <link linkend="string" +>stringa</link +> come argomento. Mostra una finestra a comparsa che contiene il testo della stringa, allo stesso modo di <link linkend="message" +>messaggio</link +>. Ma in più vi è un campo di inserimento nella finestra di dialogo. Attraverso questo campo di inserimento l'utente può inserire un <link linkend="number" +>numero</link +> o una <link linkend="string" +>stringa</link +> che può essere memorizzata in un <link linkend="containers" +>contenitore</link +>. Per esempio <screen> +in = finestrainserimento "Qual è la tua età?" +diff = 2003 - in +scrivi "Ad un certo punto del 2003 avevi " + diff + " anni." +</screen +> Quando un utente annulla la finestra di dialogo, o non inserisce niente, il <link linkend="containers" +>contenitore</link +> è svuotato.</para +></listitem> + </varlistentry> + </variablelist> +</sect3> +</sect2> + +</sect1> + + + +<sect1 id="containers"> +<title +>Contenitori</title> +<para +>I contenitori sono lettere o parole che possono essere usate dal programmatore per memorizzare un numero o del testo. I contenitori che contengono un numero sono chiamati <link linkend="variables" +>variabili</link +>, quelli che possono contenere del testo sono chiamati <link linkend="strings" +>stringhe</link +>.</para> + +<para +>I contenitori che non sono usati non contengono nulla. Un esempio: <screen> +scrivi N +</screen +> Questo non scriverà niente. Se proviamo ad eseguire dei <link linkend="math" +>calcoli matematici</link +> con contenitori vuoti otterremo degli errori. </para> + +<sect2 id="variables"> +<title +>Variabili: contenitori numerici</title> +<para +>Iniziamo con un esempio: <screen> +x = 3 +scrivi x +</screen +> Nella prima linea la lettera <userinput +>x</userinput +> è trasformata in una variabile (contenitore numerico). Come vedi il valore della variabile <userinput +>x</userinput +> è impostato a 3. Nella seconda linea viene stampato a video il valore.</para> +<para +>Nota che se volevamo scrivere una <quote +>x</quote +> avremmo dovuto scrivere <screen +>scrivi "x" +</screen> +</para> +<para +>Quello era semplice, vediamo ora un esempio un po' più complesso: <screen> +A = 2004 +B = 25 +C = A + B + +# il comando seguente scrive "2029" +scrivi C +indietro 30 +# il comando seguente scrive "2004 più 25" +scrivi A + " più " + B +indietro 30 +# il comando seguente scrive "1979" +scrivi A - B +</screen +> nelle prime due righe le variabili <userinput +>A</userinput +> e <userinput +>B</userinput +> sono impostare a 2004 e 25. Nella terza riga la variabile <userinput +>C</userinput +> è impostata ad <userinput +>A + B</userinput +>, che è 2029. Il resto dell'esempio è costituito da 3 comandi <userinput +>scrivi</userinput +> con <userinput +>indietro 30</userinput +> in mezzo. Il comando <userinput +>indietro 30</userinput +> ci assicura che ogni testo è scritto in una nuova riga. In questo esempio puoi anche vedere che le variabili possono essere usate nei <link linkend="math" +>calcoli matematici</link +>.</para> +</sect2> + +<sect2 id="strings"> +<title +>Contenitori che contengono testo (stringhe)</title> +<para +>Nel codice della programmazione il testo regolare di solito inizia e finisce con le virgolette doppie. Come abbiamo già visto: <screen> +scrivi "Ciao programmatore!" +</screen +> Il testo regolare è delimitato dalle virgolette doppie. Chiamiamo questi pezzi di testo regolare <link linkend="strings" +>stringhe</link +>.</para> +<para +>Le stringhe possono essere memorizzate in <link linkend="containers" +>contenitori</link +> allo stesso modo dei <link linkend="number" +>numeri</link +>. Le stringhe sono molto simili alle variabili. La più grande differenza è che le stringhe contengono testo invece che numeri. Per questo motivo le stringhe non possono essere usate in <link linkend="math" +>calcoli matematici</link +> e <link linkend="questions" +>domande</link +>. Un esempio di uso di stringhe: <screen> +x = "Ciao " +nome = finestrainserimento "Inserisci il tuo nome..." +scrivi x + nome + ", come va?" +</screen +> Nella prima riga la stringa <userinput +>x</userinput +> è impostata a <quote +>Ciao </quote +>. Nella seconda riga la stringa <userinput +>nome</userinput +> è impostata al risultato del comando <userinput +>finestrainserimento</userinput +>. Nella terza riga il programma scrive nell'area di disegno una stringa composta da tre stringhe.</para> +<para +>Questo programma ti chiede di inserire il tuo nome. Quando inserisci, per esempio, il nome <quote +>Paolo</quote +>, il programma scrive <quote +>Ciao Paolo, come va?</quote +>. Nota che il segno più (+) è l'unico segno matematico che puoi usare con le stringhe.</para> +</sect2> +</sect1> + +<sect1 id="math"> +<title +>Può la tartaruga eseguire calcoli?</title> +<para +>Sì, &kturtle; farà la matematica per te. Puoi aggiungere (+), sottrarre (-), moltiplicare (*) e dividere (/). Ecco qui un esempio nel quale usiamo tutte le operazioni: <screen> +a = 20 - 5 +b = 15 * 2 +c = 30 / 30 +d = 1 + 1 +scrivi "a: "+a+", b: "+b+", c: "+c+", d: "+d +</screen +> Lo sai che valori hanno a, b, c e d? Nota l'uso del simbolo di <link linkend="assignment" +>assegnamento</link +> <userinput +>=</userinput +>.</para> +<para +>Se vuoi eseguire un semplice calcolo puoi scrivere qualcosa di simile a questo: <screen +>scrivi 2004-12 +</screen +></para> +<para +>Ora un esempio con le parentesi: <screen> +scrivi ( ( 20 - 5 ) * 2 / 30 ) + 1 +</screen +> Ciò che si trova dentro le parentesi sarà calcolato prima. In questo esempio, sarà calcolato 20-5, quindi moltiplicato per 2, diviso per 30, e viene infine aggiunto 1 (avendo 2 come risultato).</para> +</sect1> + +<sect1 id="questions"> +<title +>Chiedere domande, avere risposte...</title> +<para +><link linkend="if" +><userinput +>se</userinput +></link +> e <link linkend="while" +><userinput +>mentre</userinput +></link +> sono <link linkend="controlling-execution" +>comandi di controllo dell'esecuzione</link +> di cui parleremo nella prossima sezione. In questa sezione usiamo il comando <link linkend="if" +><userinput +>se</userinput +></link +> per spiegare le domande.</para> +<sect2 id="q"> +<title +>Domande</title> +<para +>Un semplice esempio di domanda: <screen> +x = 6 +se x > 5 [ + scrivi "ciao" +] +</screen +> In questo esempio la domanda è costituita da <userinput +>x > 5</userinput +>. Se la risposta a questa domanda è "vero", sarà eseguito il codice tra le parentesi quadre. Le domande sono una parte molto importante della programmazione e sono spesso usate insieme ai <link linkend="controlling-execution" +>comandi di controllo dell'esecuzione</link +>, come <link linkend="if" +><userinput +>se</userinput +></link +>. Tutti i numeri e le <link linkend="variables" +>variabili</link +> (contenitori numerici) possono essere confrontati l'un l'altro con le domande.</para> +<para +>Qui vi sono tutte le possibili domande: <table> +<title +>Tipi di domande</title> +<tgroup cols="3"> +<tbody> +<row> +<entry +><userinput +>a == b</userinput +></entry> +<entry +>uguale</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> è uguale a <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a != b</userinput +></entry> +<entry +>non uguale</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> non è uguale a <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a > b</userinput +></entry> +<entry +>maggiore</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> è maggiore di <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a < b</userinput +></entry> +<entry +>minore</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> è minore di <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a >= b</userinput +></entry> +<entry +>maggiore o uguale</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> è maggiore o uguale a <userinput +>b</userinput +></entry> +</row> +<row> +<entry +><userinput +>a <= b</userinput +></entry> +<entry +>minore o uguale</entry> +<entry +>la risposta è <quote +>vero</quote +> se <userinput +>a</userinput +> è minore o uguale a <userinput +>b</userinput +></entry> +</row> +</tbody> +</tgroup> +</table> +</para> +<para +>Le domande sono <glossterm +>evidenziate</glossterm +> con il blu chiaro nell'<link linkend="the-code-editor" +>editor del codice</link +>.</para +> +</sect2> + +<sect2 id="question-glue"> +<title +>I "collanti" delle domande</title> +<para +>I "collanti" delle domande ci permettono di unire più domande in una domanda più grande. <screen> +a = 1 +b = 5 +se (a < 5) e (b == 5) [ + scrivi "ciao" +] +</screen +> In questo esempio è usato il "collante" <userinput +>e</userinput +> per unire insieme due domande (<userinput +>a < 5</userinput +>, <userinput +>b == 5</userinput +>). Se un lato di <userinput +>e</userinput +> avrà come risposta <quote +>falso</quote +>, l'intera domanda avrà come risposta <quote +>falso</quote +>, poiché con il "collante" <userinput +>e</userinput +> entrambi i lati devono essere <quote +>vero</quote +> per poter rispondere <quote +>vero</quote +>. Non ti dimenticare di usare le parentesi attorno ad ogni domanda!</para> + +<para +>Qui vi è una descrizione schematica; sotto segue una spiegazione più dettagliata: <table> +<title +>I "collanti" delle domande</title> +<tgroup cols="2"> +<tbody> +<row> +<entry +><userinput +>e</userinput +></entry> +<entry +>Entrambi i lati devono essere "vero" per poter rispondere "vero"</entry> +</row> +<row> +<entry +><userinput +>o</userinput +></entry> +<entry +>Se uno dei lati è "vero" la risposta è "vero"</entry> +</row> +<row> +<entry +><userinput +>non</userinput +></entry> +<entry +>Caso speciale: funziona solo con una domanda! Cambia "vero" in "falso" e "falso" in "vero".</entry> +</row> +</tbody> +</tgroup> +</table> +</para> +<para +>I "collanti" delle domande sono <glossterm +>evidenziati</glossterm +> con il viola nell'<link linkend="the-code-editor" +>editor del codice</link +>.</para> + +<sect3 id="and"> +<title +>e</title> +<para +>Quando due domande sono incollate l'un l'altra con <userinput +>e</userinput +>, entrambi i lati di <userinput +>e</userinput +> devono essere "vero" per poter dare come risultato "vero". Un esempio: <screen> +a = 1 +b = 5 +se ((a < 10) e (b == 5)) e (a < b) [ + scrivi "ciao" +] +</screen +> In questo esempio puoi vedere una domanda incollata, unita ad un'altra domanda.</para> +</sect3> + +<sect3 id="or"> +<title +>o</title> +<para +>Se una delle due domande unite assieme con <userinput +>o</userinput +> è "vera", il risultato sarà "vero". Un esempio: <screen> +a = 1 +b = 5 +se ((a < 10) o (b == 10)) o (a == 0) [ + scrivi "ciao" +] +</screen +> In questo esempio puoi vedere una domanda incollata, unita ad un'altra domanda.</para> +</sect3> + +<sect3 id="not"> +<title +>non</title> +<para +><userinput +>non</userinput +> è uno speciale "collante" delle domande poiché funziona solo con una domanda alla volta. <userinput +>non</userinput +> cambia "vero" in "falso" e "falso" in "vero". Un esempio: <screen> +a = 1 +b = 5 +se non ((a < 10) e (b == 5)) [ + scrivi "ciao" +] +altrimenti +[ + scrivi "non ciao ;-)" +] +</screen +> In questo esempio la domanda "incollata" è "vera", tuttavia <userinput +>non</userinput +> la cambia in "falsa". Così alla fine viene scritto <userinput +>"non ciao ;-)"</userinput +> sull'<link linkend="the-canvas" +>area di disegno</link +>.</para> +</sect3> + +</sect2> + +</sect1> + +<sect1 id="controlling-execution"> +<title +>Controllare l'esecuzione</title> +<para +>I comandi di controllo dell'esecuzione ti permettono — come dicono il loro nomi — di controllare l'esecuzione.</para> +<para +>I comandi di controllo dell'esecuzione sono <glossterm +>evidenziati</glossterm +> di verde scuro con un tipo di carattere grassetto. Le parentesi quadre usate principalmente con i comandi di controllo dell'esecuzione e sono <glossterm +>evidenziate</glossterm +> di verde chiaro.</para> + +<sect2 id="wait"> +<title +>Far aspettare la tartaruga</title> +<para +>Se hai programmato in &kturtle; devi aver notato che la tartaruga può essere molto veloce a disegnare. Questo comando fa sì che la tartaruga attenda per un tempo specificato.</para> + <variablelist> + <varlistentry> + <term +>attendi</term> + <listitem +><para +><screen +>attendi X</screen> +<userinput +>attendi</userinput +> fa sì che la tartaruga attenda X secondi. <screen> +ripeti 36 [ + avanti 5 + destra 10 + attendi 0.5 +] +</screen +> Questo codice disegna un cerchio, ma la tartaruga attenderà mezzo secondo dopo ogni passo. Ciò da' l'impressione di una tartaruga che si muove lentamente.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="if"> +<title +>Eseguire "se"</title> + <variablelist> + <varlistentry> + <term +>se</term> + <listitem +><para +><screen +>se <link linkend="questions" +>domanda</link +> [ ... ]</screen> +Il codice che si trova tra le parentesi quadre sarà eseguito solo <userinput +>se</userinput +> la risposta alla <link linkend="questions" +>domanda</link +> è <quote +>vero</quote +>. Per maggiori informazioni leggi sulle <link linkend="questions" +>domande</link +> nella <link linkend="questions" +>sezione sulle domande</link +>. <screen> +x = 6 +se x > 5 [ + scrivi "x è più grande di cinque!" +] +</screen +> Nella prima linea <userinput +>x</userinput +> è impostato a 6. Nella seconda linea è chiesta la <link linkend="questions" +>domanda</link +> <userinput +>x > 5</userinput +>. Dato che la risposta a questa domanda è <quote +>vero</quote +> il comando di controllo dell'esecuzione <userinput +>se</userinput +> permetterà che venga eseguito il codice tra le parentesi quadre</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="while"> +<title +>Il ciclo "mentre"</title> + <variablelist> + <varlistentry> + <term +>mentre</term> + <listitem +><para +><screen +>mentre <link linkend="questions" +>domanda</link +> [ ... ]</screen> +Il comando di controllo dell'esecuzione <userinput +>mentre</userinput +> è molto simile a <link linkend="if" +><userinput +>se</userinput +></link +>. La differenza è che <userinput +>mentre</userinput +> continua a ripetere (in modo ciclico) il codice tra le parentesi quadre fino a quando la risposta alla <link linkend="questions" +>domanda</link +> è <quote +>falso</quote +>. <screen> +x = 1 +mentre x < 5 [ + avanti 10 + attendi 1 + x = x + 1 +] +</screen +> Nella prima linea <userinput +>x</userinput +> è impostato a 1. Nella seconda linea viene chiesta la <link linkend="questions" +>domanda</link +> <userinput +>x < 5</userinput +>. Dato che la risposta a questa domanda è <quote +>vero</quote +> il comando di controllo dell'esecuzione <userinput +>mentre</userinput +> inizia ad eseguire il codice tra le parentesi quadre fino a quando la risposta alla <link linkend="questions" +>domanda</link +> è <quote +>falso</quote +>. In questo caso il codice tra le parentesi quadre sarà eseguito 4 volte, dato che ogni volta che viene eseguita la quinta linea <userinput +>x</userinput +> è incrementato di 1.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="else"> +<title +>Se no, in altre parole: "altrimenti"</title> + <variablelist> + <varlistentry> + <term +>altrimenti</term> + <listitem +><para +><screen +>se domanda [ ... ] altrimenti [ ... ]</screen> +<userinput +>altrimenti</userinput +> può essere usato in aggiunta al comando di controllo dell'esecuzione <link linkend="if" +><userinput +>se</userinput +></link +>. Il codice tra le parentesi quadre dopo <userinput +>altrimenti</userinput +> è eseguito solo se la risposta alla <link linkend="questions" +>domanda</link +> chiesta è <quote +>falso</quote +>. <screen> +ricomincia +x = 4 +se x > 5 [ + scrivi "x è più grande di cinque!" +] +altrimenti +[ + scrivi "x è più piccolo di cinque!" +] +</screen +> La <link linkend="questions" +>domanda</link +> chiede se <userinput +>x</userinput +> è più grande di 5. Dato che <userinput +>x</userinput +> è stato impostato a 4 nella prima linea, la risposta alla domanda è <quote +>falso</quote +>. Ciò significa che viene eseguito il codice tra le parentesi dopo <userinput +>altrimenti</userinput +>.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +<sect2 id="for"> +<title +>Il ciclo "per", un ciclo <quote +>contato</quote +></title> + <variablelist> + <varlistentry> + <term +>per</term> + <listitem +><para +><screen +>per <userinput +>punto di partenza</userinput +> finoa <userinput +>punto di arrivo</userinput +> [ ... ]</screen> +Il ciclo <userinput +>per</userinput +> è un <quote +>ciclo contato</quote +>, &ie; conta per te. <screen> +per x = 1 finoa 10 [ + scrivi x * 7 + avanti 15 +] +</screen +> Ogni volta che viene eseguito il codice tra le parentesi quadre, <userinput +>x</userinput +> viene incrementato di 1, fino a quando <userinput +>x</userinput +> raggiunge il valore di 10. Il codice tra le parentesi quadre scrive il valore di <userinput +>x</userinput +> moltiplicato per 7. Alla fine dell'esecuzione di questo programma vedrai scritta sull'area di disegno la tabellina del 7.</para +></listitem> + </varlistentry> + </variablelist> +</sect2> + +</sect1> + + +<sect1 id="learn"> +<title +>Crea i tuoi comandi con <quote +>impara</quote +></title> +<para +><userinput +>impara</userinput +> è un comando molto particolare, dato che è usato per creare comandi personalizzati. Il comando che crei può richiedere <glossterm linkend="input-output" +>parametri</glossterm +> e restituire <glossterm linkend="input-output" +>valori</glossterm +>. Diamo un'occhiata a come creare un nuovo comando: <screen> +impara cerchio x [ + ripeti 36 [ + avanti x + sinistra 10 + ] +] +</screen +> Il nuovo comando è chiamato <userinput +>cerchio</userinput +>. <userinput +>cerchio</userinput +> richiede un <glossterm linkend="input-output" +>parametro</glossterm +>, un numero, per impostare la dimensione del cerchio. <userinput +>cerchio</userinput +> non restituisce <glossterm linkend="input-output" +>valori</glossterm +>. Il comando <userinput +>cerchio</userinput +> può essere ora usato nel resto del codice come un normale comando. Guarda questo esempio: <screen +>impara cerchio X [ + ripeti 36 [ + avanti X + sinistra 10 + ] +] + +vai 30,30 +cerchio 20 + +vai 40,40 +cerchio 50 +</screen> +</para> +<para +>Nell'esempio seguente viene creato un comando con un valore restituito. <screen> +ricomincia + +impara moltiplicatoPerSeStesso n [ + r = n * 1 + r = n * n + restituisci r +] +i = finestrainserimento "Inserisci un numero e premi OK" +scrivi i + " moltiplicato per se stesso è: " + moltiplicatoPerSeStesso i +</screen +> In questo esempio viene creato un nuovo comando chiamato <userinput +>moltiplicatoPerSeStesso</userinput +>. Il parametro di questo comando è moltiplicato per se stesso e quindi restituito, usando il comando <anchor id="return"/><userinput +>restituisci</userinput +>. Il comando <userinput +>restituisci</userinput +> è il modo per restituire un valore da una funzione che hai creato. </para> +</sect1> + +</chapter> |