You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1732 lines
42 KiB
1732 lines
42 KiB
13 years ago
|
<!--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>
|