14. Elenco delle istruzioni principali
AND
Congiunzione logica di due condizioni (E).
Sintassi: AND <condizione> <condizione>
Esempio:
MAKE "n RANDOM 10
PRINT :n
IF AND :n > 2 :n < 6 [ PRINT [Il numero è compreso tra 2 e 6] ]
BK
Fa indietreggiare la tartaruga di un numero di passi pari al valore in input, tenendo conto della posizione e dell'orientamento attuale.
Sintassi: BK <valore>
Esempio:
BK 100
Esempio:
MAKE "n 100
BK :n
BYE
Uscita dal Logo.
CLEAN
Come CS, ma lascia la tartaruga nello stato in cui si trova.
Esempio:
FD 100
CLEAN
CS
Pulisce lo schermo (mondo della tartaruga) cancellando tutto ciò che fosse stato tracciato. Viene inoltre riportata la tartaruga nello stato iniziale: al centro dello schermo e con orientamento verso nord (la tana).
Esempio:
FD 50
RT 90
CS
CT
Cancella tutto il testo presente nella finestra commander.
Esempio:
PRINT "Questo è un testo"
CT
FD
Fa avanzare la tartaruga di un numero di passi pari al valore in input, tenendo conto della posizione e dell'orientamento attuale.
Sintassi: FD <valore>
Esempio:
FD 100
Esempio:
MAKE "n 100
FD :n
FILL
Riempie di colore una figura chiusa. Il colore di riempimento è quello impostato con l'istruzione setfc. Per poter effettuare il riempimento la tartaruga deve essere portata all'interno della figura (senza lasciare la traccia).
Esempio:
TO quadrato
CS
REPEAT 4 [FD 100 RT 90]
SETFC [255 0 0]
PU
RT 45
FD 10
FILL
BK 10
LT 45
PD
END
FOR
Esegue ripetutamente un blocco di istruzioni con la variabile di controllo che varia tra il primo valore in input e il secondo valore in input (con incremento o decremento di una unità). Se presente un terzo valore in input, l'incremento (o decremento) è uguale a tale valore.
Sintassi:
FOR [<nome variabile di controllo> <valore> <valore>] [<blocco istruzioni>]
oppure
FOR [<nome variabile di controllo> <valore> <valore> <valore> ] [<blocco istruzioni>]
Esempio:
FOR [k 1 5] [PRINT :k]
Output:
1
2
3
4
5
Esempio:
FOR [k 5 1] [PRINT :k]
Output:
5
4
3
2
1
Esempio:
FOR [k 1 5 1.5] [PRINT :k]
Output:
1
2.5
4
Esempio:
FOR [k 5 1 -1.5] [PRINT :k]
Output:
5
3.5
2
HOME
Riporta la tartaruga nello stato iniziale (la tana) senza cancellare lo schermo.
Esempio:
CS
FD 50
RT 90
HOME
HT
Nasconde la tartaruga (hide turtle). Per rendere di nuovo visibile la tartaruga bisogna dare l'istruzione ST (show turtle).
Esempio:
CS
REPEAT 5 [HT WAIT 60 ST WAIT 60]
IF
Istruzione condizionale (SE... ALLORA...). Vengono eseguite le istruzioni comprese tra parentesi quadre (blocco di istruzioni) solo se la condizione è verificata.
Sintassi: IF <condizione> [<blocco istruzioni>]
Esempio:
MAKE "n RANDOM 10
PRINT :n
IF :N > 5 [ PRINT [ Il numero è maggiore di 5] STOP ]
PRINT [Il numero è minore o uguale a 5]
IFELSE
Istruzione condizionale (SE... ALLORA... ALTRIMENTI...). Se la condizione è verificata viene eseguito il primo blocco di istruzioni altrimenti viene eseguito il secondo blocco.
Sintassi:
IFELSE <condizione> [< primo blocco>] [< secondo blocco>]
Esempio:
MAKE "n RANDOM 10
PRINT :n
IFELSE :n > 5 [ PRINT [ Il numero è maggiore di 5] ] [ PRINT [ Il numero è minore o uguale a 5] ]
LIST
Genera una lista i cui elementi sono i valori in input.
Sintassi:
LIST <valore> <valore>
oppure
(LIST <valore> <valore> ... <valore>)
Esempio:
TO quadrato :rosso :verde :blu
SETPC (LIST :rosso :verde :blu)
REPEAT 4 [FD 100 RT 90]
END
LT
Fa ruotare la tartaruga su se stessa, alla sua sinistra, di un angolo pari al valore in input, tenendo conto dell'orientamento attuale.
Sintassi: LT <valore>
Esempio:
CS
FD 50
LT 90
Esempio:
CS
MAKE "angolo 45
LT :angolo
Esempio:
Per capire che la tartaruga ruota alla sua sinistra e non alla vostra sinistra date in modo diretto l'istruzione LT 180 e poi l'istruzione LT 90.
MAKE
Assegna a una variabile un determinato valore.
Sintassi: MAKE "<nome variabile> <valore>
Esempio:
MAKE "n 10
PRINT :n
Output: 10
Esempio:
MAKE "nome [Pippo]
PRINT :nome
Output: Pippo
Esempio:
MAKE "m 6
MAKE "n :m
PRINT :n
Output: 6
Esempio:
MAKE "n 10
MAKE "n :n + 1
PRINT :n
Output: 11
Esempio:
MAKE "n 10
PRINT :n + 1
PRINT :n
Output:
11
10
NOT
Negazione logica di una condizione (NON).
Sintassi: NOT <condizione>
Esempio:
MAKE "n RANDOM 10
PRINT :n
IF NOT :n > 5 [ PRINT [Il numero è minore o uguale a 5] ]
OR
Disgiunzione logica di due condizioni (OPPURE).
Sintassi: OR <condizione> <condizione>
Esempio:
MAKE "n RANDOM 10
PRINT :n
IF OR :n > 8 :n < 4 [ PRINT [Il numero è maggiore di 8 o minore di 4] ]
PD
Abbassa la penna (pen down). Dopo aver dato l'istruzione PU, la tartaruga, spostandosi, non lascia la traccia sullo schermo. Per fare in modo che la tartaruga riprenda a lasciare la traccia bisogna dare l'istruzione PD (pen down).
Esempio:
CS
REPEAT 5 [PU FD 10 PD FD 10]
PRINT
Visualizza nella finestra commander il valore in input. Ogni istruzione print termina con un invio a capo.
Sintassi: PRINT <valore>
Esempio:
CT
PRINT 10
Output: 10
Esempio:
CT
PRINT [Salve, come stai?]
Output: Salve, come stai?
Esempio:
CT
MAKE "N 5
PRINT :N
Output: 5
Esempio:
CT
MAKE "T [Salve, come stai?]
PRINT :T
Output: Salve, come stai?
Esempio:
PRINT [Salve,]
PRINT [come stai?]
Output:
Salve,
come stai?
PU
Alza la penna (pen up). Dopo aver dato l'istruzione PU, la tartaruga, spostandosi, non lascia la traccia sullo schermo. Per fare in modo che la tartaruga riprenda a lasciare la traccia bisogna dare l'istruzione PD (pen down).
Esempio:
CS
REPEAT 5 [PU FD 10 PD FD 10]
RANDOM
Fornisce un numero intero casuale maggiore o uguale a 0 e minore del valore in input.
Sintassi: RANDOM <valore>
Esempio:
REPEAT 5 [PRINT RANDOM 6]
Output:
1
5
1
0
2
Esempio:
Il comando seguente visualizza un numero casuale compreso tra 10 e 20 (estremi inclusi)
PRINT 10 + RANDOM 11
REMAINDER
Fornisce il resto della divisione del primo valore in input per il secondo valore in input. I due valori devono essere numeri interi.
Sintassi: REMAINDER <valore> <valore>
Esempio:
PRINT REMAINDER 7 2
Output: 1
Esempio:
PRINT REMAINDER 6 2
Output: 0
REPEAT
Ripete le istruzioni comprese tra le parentesi quadre (blocco di istruzioni) per un numero di volte pari al valore in input.
Sintassi: REPEAT <valore> [<blocco istruzioni>]
Esempio:
CS
REPEAT 3 [FD 100 RT 120]
RT
Fa ruotare la tartaruga su se stessa, alla sua destra, di un angolo pari al valore in input, tenendo conto dell'orientamento attuale.
Sintassi: RT <valore>
Esempio:
CS
FD 50
RT 90
Esempio:
CS
MAKE "angolo 45
RT :angolo
Esempio:
Per capire che la tartaruga ruota alla sua destra e non alla vostra destra date in modo diretto l'istruzione RT 180 e poi l'istruzione RT 90.
SETFC
Imposta il colore per il riempimento delle figure. In input una lista di tre numeri interi compresi tra 0 e 255. I tre numeri della lista rappresentano nell'ordine la componente rossa, la componente verde e la componente blu del colore.
Sintassi: SETFC <lista componenti colore>
Esempio:
TO quadrato
CS
REPEAT 4 [FD 100 RT 90]
SETFC [255 0 0]
PU
RT 45
FD 10
FILL
BK 10
LT 45
PD
END
SETPC
Imposta il colore per la traccia della tartaruga (il colore della penna). In input una lista di tre numeri interi compresi tra 0 e 255. I tre numeri della lista rappresentano nell'ordine la componente rossa, la componente verde e la componente blu del colore.
Sintassi: SETPC <lista componenti colore>
Esempio:
CS
SETPC [255 0 0]
FD 100
SETSC
Imposta il colore per lo sfondo del mondo della tartaruga. In input una lista di tre numeri interi compresi tra 0 e 255. I tre numeri della lista rappresentano nell'ordine la componente rossa, la componente verde e la componente blu del colore.
Sintassi: SETSC <lista componenti colore>
Esempio:
SETSC [0 0 255]
CS
SETX
Porta la tartaruga nel punto che ha per ascissa il valore in input e per ordinata l'ordinata della posizione attuale. Il sistema di riferimento è assoluto (l'origine è nella tana).
Sintassi: SETX <valore>
Esempio:
CS
FD 30
SETX -40
SETY
Porta la tartaruga nel punto che ha per ordinata il valore in input e per ascissa l'ascissa della posizione attuale. Il sistema di riferimento è assoluto (l'origine è nella tana).
Sintassi: SETY <valore>
Esempio:
CS
RT 90
FD 30
SETY -40
SOUND
Emette un suono (o una sequenza di suoni). In input una lista di coppie di numeri interi: il primo numero di ogni coppia è la frequenza, il secondo la durata del suono.
Esempio:
SOUND [1000 100]
Esempio:
SOUND [500 100 600 100 700 100 800 100 900 100 1000 100]
ST
Mostra la tartaruga (show turtle). Serve per rendere di nuovo visibile la tartaruga dopo averla resa invisibile con il comando HT.
Esempio:
CS
REPEAT 5 [HT WAIT 60 ST WAIT 60]
STOP
Interrompe l'esecuzione della procedura in cui si trova. Il controllo ritorna al contesto in cui la procedura ove è presente stop è stata chiamata.
Esempio:
TO conta
MAKE "k 0
PRINT [inizio]
esegui
PRINT [fine]
END
TO esegui
MAKE "k :k + 1
PRINT :k
IF :k = 5 [STOP]
esegui
END
Output:
inizio
1
2
3
4
5
fine
WAIT
Crea una pausa prima dell'esecuzione dell'istruzione successiva di un numero di sessantesimi di secondo pari al valore in input.
Sintassi: WAIT <valore>
Esempio:
CS
FD 50
WAIT 60
FD 50
WHILE
Esegue ripetutamente un blocco di istruzioni fino a quando una certa condizione rimane vera.
Sintassi: WHILE [ <condizione> ] [ <blocco istruzioni> ]
Esempio:
make "i 0
while [:i < 3] [make "i :i + 1 print :i]
Output:
1
2
3
Esempio:
make "i 3
while [:i < 3] [make "i :i + 1 print :i]
Output:
XCOR
Fornisce l'ascissa della posizione attuale della tartaruga. L'origine del sistema di riferimento è nella tana.
Esempio:
CS
PRINT XCOR
Output: 0
Esempio:
CS
RT 90
FD 45
PRINT XCOR
Output: 45
YCOR
Fornisce l'ordinata della posizione attuale della tartaruga. L'origine del sistema di riferimento è nella tana.
Esempio:
CS
PRINT YCOR
Output: 0
Esempio:
CS
FD 45
PRINT YCOR
Output: 45