Logo
un linguaggio di programmazione adatto ai giovanissimi
Il LOGO è un linguaggio di programmazione ideato e realizzato negli anni '60 dal professor Seymour Papert del MIT. È adatto ai bambini perchè permette di ottenere subito risultati visibili.
Prima lezione
Nella prima lezione faremo disegnare al cursore (tartarughina) un triangolo equilatero e per far questo utilizzeremo due comandi: avanti e destra.
Aprite la pagina con l'applicazione PAPERT e nel riquadro in basso a destra dell'applicazione scrivete (o copia/incollate):
pulisci
avanti 100
destra 120
avanti 100
destra 120
avanti 100
avanti 100
destra 120
avanti 100
destra 120
avanti 100
Premete il tasto esegui (o meglio esegui lentamente) e vedrete il cursore tracciare un triangolo. Ma cosa gli abbiamo comandato di fare? Con il primo comando pulisci cancelliamo eventuali linee presenti nello schermo, con il secondo comando, avanti, tracciamo una linea in avanti di 100 pixel, con il terzo comando destra orientiamo il cursore di centoventi gradi verso destra (usate il goniometro come aiuto). Con il quarto comando avanti il cursore disegnerà una riga di cento pixel nella direzione scelta precedentemente. E così via.
Come esercitazione provate a disegnare altri poligoni regolari, come il rettangolo, il pentagono, l'ottagono, ecc.
Le misure degli angoli, se non le conoscete già e non volete andare a tentativi potete trovarle facilmente su Wikipedia, attenzione, a noi serve l'angolo esterno. Quindi se avete l'angolo interno dovete effettuare l'operazione 180 - angolo interno.
Seconda lezione
In questa lezione introduciamo un altro comando e un segno.
Il comando è ripeti (repeat nella versione originaria in inglese) e il segno è la parentesi quadra [].
Ridisegnamo il triangolo della prima lezione ma stavolta usando il comando ripeti.
ripeti 3 [avanti 100 sinistra 120]
Come potete facilmente notare, le istruzioni dentro la parentesi quadra vengono ripetute 3 volte.
A questo punto abbiamo capito che per disegnare un cerchio è sufficiente ripetere 360 un passo avanti ed uno a destra, in questo modo:
ripeti 360 [avanti 1 destra 1]
E un quadrato:
ripeti 4 [avanti 100 destra 90]
Terza lezione
Nella lezione precedente abbiamo visto come ripetere tante volte delle istruzioni. Ma se volessimo disegnarne due di triangoli, uno di fronte all'altro? Dovremmo aggiungere, prima un comando per ruotare la tartaruga (il cursore, la freccia) di 180 gradi e poi dare di nuovo il comando ripeti 3, ecc.
Ma c'è un modo più semplice per farlo.
Impacchettiamo le istruzioni e gli diamo un nome, nel nostro caso triangolo, in questo modo, ogni volta che avremo bisogno di disegnare un triangolo sarà sufficiente digitare triangolo, così come avviene con i comandi.
Per impacchettare delle istruzioni useremo le parole inizio e fine (nella versione inglese to e end).
inizio triangolo
ripeti 3 [avanti 100 sinistra 120]
fine
triangolo
destra 180
triangolo
ripeti 3 [avanti 100 sinistra 120]
fine
triangolo
destra 180
triangolo
Quarta lezione
Per rendere la procedura [inizio ... fine] ancora più potente in questa lezione vi spiegheremo come passarle dei parametri.
Dopo inizio e dopo il nome della funzione (chiamamola così per comodità nei vari linguaggi di programmazione prende nomi diversi, funzione, procedura, routine, metodo, ecc.) aggiungiamo una parola per identificare il parametro preceduta dal segno dei due punti, ad esempio :lato .
Con le istruzioni qui sotto vedrete che i triangoli avranno lati diversi a secondo il parametro passato alla funzione.
inizio triangolo
:lato
ripeti 3 [avanti :lato sinistra 120]
fine
triangolo 50
destra 180
triangolo 100
:lato
ripeti 3 [avanti :lato sinistra 120]
fine
triangolo 50
destra 180
triangolo 100
Quinta lezione
Completiamo la panoramica dei comandi base con sealtrimenti (nell'originale ifelse), memorizza (make) e casuale (random), quest'ultimo non è con è un comando principale ma lo citiamo in quanto ci servirà nell'esempio che vi proponiamo.
Simuliamo un percorso a scalini in avanti da far disegnare alla tartaruga in modo casuale.
inizio scalinosx
sinistra 90
avanti 20
destra 90
avanti 20
fine
inizio scalinodx
destra 90
avanti 20
sinistra 90
avanti 20
fine
repeat 10 [
memorizza "numerocasuale casuale 2
sealtrimenti :casuale = 0 [
scalinodx ] [
scalinosx ]
]
sinistra 90
avanti 20
destra 90
avanti 20
fine
inizio scalinodx
destra 90
avanti 20
sinistra 90
avanti 20
fine
repeat 10 [
memorizza "numerocasuale casuale 2
sealtrimenti :casuale = 0 [
scalinodx ] [
scalinosx ]
]
Le prime istruzioni sono già note, due funzioni, la prima "scalinosx" fa avanzare la tartaruga a sinistra, la seconda "scalinodx" a destra.
La novità sta nelle istruzioni successive, con memorizza salviamo nella variabile "numerocasuale" un valore casuale scelto da 0 a 1.
Con il comando sealtrimenti verrà eseguita la funzione "scalinosx" se il valore casuale è 0 o la funzione "scalinodx" se è 1.
E ora disegnamo un fiocco di neve ...
inizio linea :conta :lunghezza
sealtrimenti :conta = 1 [avanti :lunghezza] [
memorizza "conta :conta -1
linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza]
fine
inizio fiocco :conta :lunghezza
destra 30 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
fine
reset
setxy 10 400
fiocco 5 4
sealtrimenti :conta = 1 [avanti :lunghezza] [
memorizza "conta :conta -1
linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
sinistra 60 linea :conta :lunghezza]
fine
inizio fiocco :conta :lunghezza
destra 30 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
destra 120 linea :conta :lunghezza
fine
reset
setxy 10 400
fiocco 5 4
Un'altra versione di Logo usabile online è disponibile QUI.
Video lezioni su Logo sono disponibili gratuitamente sulla piattaforma MOOC dell'Università di Napoli Federico II all'indirizzo federica.eu/c/coding_a_scuola_con_software_libero
Alcuni manuali in italiano:
The Turtle's Discovery Book di Jim Muller
Manuale di riferimento di XLogo
Blia.it NON utilizza cookie (v. informativa)
Per contattare la redazione di Blia.it potete scrivere a: info@blia.it (attenzione, blia.it non ha nessun rapporto con banche, scuole o altri enti/aziende, i cui indirizzi sono visualizzati al solo scopo di rendere un servizio agli utenti del sito)
Per contattare la redazione di Blia.it potete scrivere a: info@blia.it (attenzione, blia.it non ha nessun rapporto con banche, scuole o altri enti/aziende, i cui indirizzi sono visualizzati al solo scopo di rendere un servizio agli utenti del sito)