Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Guida M Logo
Guida M Logo
M- LOGO
SPUNTI OPERATIVI
GIOCHI ED ESPERIENZE
DI MATEMATICA
CON LA TARTARUGA
SOMMARIO
iIndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. pag 3
Premessa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " 5
PREFAZIONE
Può entrarvi come macchina per insegnare, ossia come semplice audiovi-
sivo, anche se assai più potente di quelli attualmente in uso (videoregistra-
tori, lavagne luminose, proiettori, ...). È l’utilizzazione più semplice e,
forse, anche un po’ sorpassata, che non richiede un grande impegno al
docente, soprattutto se egli utilizza software prefabbricato, ossia program-
mi didattici e videogiochi reperibili in commercio.
Il Logo intende essere però assai di più: vuoI proporsi come strumento
docile e potente per facilitare l’applicazione delle metodiche per l’appren-
dimento attivo, suggerite nei Programmi vigenti. Con il Logo un elaboratore
diventa una sorta di laboratorio per imparare ad organizzare il pensiero.
Per fare un paragone, stiamo qui parlando della stessa differenza che c’è
tra l’imparare a leggere e scrivere e imparare ad esprimere mediante la
scrittura proprie idee e pensieri.
ELEMENTI INTRODUTTIVI
Figura 1
Figura 2
elaboratore
dati iniziali + dati finali
programma
ENTRATA ELABORAZIONE USCITA
Ciascuna delle tre fasi rappresentata nello schema della Figura 2 viene
svolta da una parte diversa del computer, che può essere pensato come un
sistema, cioè come un insieme di dispositivi. Questi dispositivi sono:
1. Elementi introduttivi pag. 11
Come puoi ben vedere nella Figura stessa, sono quattro le componenti
fondamentali di questo sistema e sono: la tastiera, l'unità centrale, il
monitor e l' unità a disco (drive).
Molto spesso i personal computer hanno due o più drive. Per sempli-
cità noi penseremo sempre che tu abbia a disposizione un solo drive. Anche
se ve ne sono altri tutte le operazioni possono essere pensate riferite al drive
chiamato A.
unità
centrale
unità a disco
(drive)
monitor
tastiera
Figura 3
1. Elementi introduttivi pag. 12
Per ottenere il carattere che si trova nella parte superiore di ogni tasto
con due simboli, devi premere quest’ultimo mentre tieni schiacciato il tasto
1. Elementi introduttivi pag. 13
Figura 4
Se digiti una informazione, essa compare sul video ma deve essere inviata
all’unità centrale del computer, dopo aver controllato che sia corretta e
completa. Per ferla entrare nell’elaboratore devi premere un tasto speciale
che nelle tastiere può essere indicato con diversi nomi o segni (IMMIS,
RETURN, ENTER...). Noi lo indicheremo sempre con <INVIO>.
Per muoverti all’interno del testo che devi scrivere hai a disposizione i
tasti freccia, mentre per cancellare un carattere potrai utilizzare il tasto
<BACKSPACE> (quello con una freccia orizzontale rivolta a sinistra), che
fa fare un passo indietro al cursore eliminando il carattere che lo precede.
Tabella 1
TASTI SPECIALI
PER: DIGITA:
far fare un passo indietro al
cursore cancellando il carattere BACKSPACE
precedente
LA TARTARUGA E LO SCHERMO
1) accendi il computer;
Potrai notare che ogni volta che è in corso un’operazione di lettura (o,
come vedremo in seguito, di scrittura), accanto al drive si accende una
piccola luce ( verde, oppure rossa). Non estrarre o inserire mai un disco
mentre questa luce è accesa!
?RECUPERA “CORREDO. ML
PT MT < INVIO>
Al centro dello schermo vedrai comparire un triangolino luminoso: è il
“naso” della tartaruga che aspetta i tuoi comandi. Li potrai scrivere nello
spazio che sta nella parte bassa dello schermo dove vedi lampeggiare un
quadratino luminoso (il cursore), che sta a destra di un punto interrogativo.
pag. 16 Manuale Logo
Puoi pensare che la tartaruga sia come una penna che, spostandosi su un
foglio, lascia una traccia: il suo foglio è lo schermo e la traccia è un insieme
di pixel che si accendono quando, nello spostarsi, il triangolino ci passa
sopra. Ogni pixel corrisponde a un passo della tartaruga.
c) ha una penna che può tenere giù, per disegnare, o su per spostarsi
senza disegnare;
Come puoi osservare nella tabella in basso, alcuni comandi sono seguiti
da una parola scritta fra i segni < e >. In questi casi vogliamo indicarti che
il comando deve essere accompagnato da un dato, cioè da un valore
numerico necessario per la sua esecuzione. AVANTI, per esempio, deve
essere seguito da un certo numero di passi. Chiameremo argomento ogni
informazione che dobbiamo fornire a un comando affinché quest’ultimo
possa essere eseguito correttamente.
Iniziamo ora a lavorare con la tartaruga. Batti, usando il tasto del numero
0 (e non quello della lettera O!): AVANTI 50 <INVIO>
Ricordiamo ancora una volta che ogni istruzione deve essere comunicata
al computer battendo il tasto <INVIO>. D’ora in avanti non indicheremo più
quando dovrai utilizzare questo tasto, ma tu non dimenticarlo!
Batti: DESTRA 30
Per far procedere la tartaruga lungo la sua nuova direzione devi utilizzare
di nuovo AVANTI. Prova con: A 20
TANA
A 20 e poi PS
A 50 A 30 D 30 A 20
Ogni volta che inizi un nuovo disegno devi dare questa istruzione.
S 70 A 250
Per evitare che la tartaruga esca dallo schermo e rientri dalla parte
opposta puoi utilizzare il comando: ASCAMPO "CHIUSO.
Per finire, utilizza i comandi che hai imparato per scrivere prima sul
quaderno e fare poi eseguire dal computer un programma che realizzi un
disegno di tua scelta.
SCHIACCIAMENTO
Abbiamo già detto che le immagini si formano sullo schermo del monitor
mediante l’accensione di pixel. La pagina su cui scrive il computer può
quindi essere vista proprio come un foglio a quadretti, dove però ogni
quadretto è acceso o spento.
pag. 22 Manuale Logo
Tu non sai come sono fatti i pixels del tuo computer perchè non li vedi.
Il LOGO invece li conosce bene e puoi quindi chiedergli come sono
digitando il comando:
SCHIA
Tieni però presente che nello scrivere numeri decimali il LOGO separa la
parte intera del numero dalla sua parte non intera non mediante la solita
virgola, ma mediante un punto.
A 50 I 50 D 90 A 50 I 50 NT
ASSCHIA <numero>
IL COLORE
ASCOL <numero>
Fa cambiare colore alla penna; l’argomento deve essere un numero
compreso fra 0 e 3; ad ogni numero corrisponde un diverso colore.
pag. 24 Manuale Logo
ASTAVOLOZZA <numero>
Fa cambiare la tavolozza in cui vengono scelti i quattro colori della penna;
le tavolozze sono due, corrispondenti ai valori 0 e 1 dell’argomento.
ASSFONDO <numero>
Fa cambiare colore al foglio su cui disegna la tartaruga; ogni colore
corrisponde a un valore dell’argomento fra 0 e 15.
RIEMPI
Colora la figura chiusa, all’interno della quale si trova la tartaruga, con
il colore della penna; se la figura non è chiusa, colora tutto lo sfondo.
Terminati i tuoi lavori, puoi uscire dal LOGO per poi spegnere il
computer digitando il comando:
CIAO
poi spegnilo.
3. Poligoni con il comando Ripeti pag. 25
IL COMANDO RIPETI.
Il comando
RIPETI
ti fa risparmiare la fatica di dover ripetere più di una volta una istruzione
singola, oppure una serie di istruzioni.
Per usarlo basta che tu scriva, dopo la parola RIPETI, due argomenti:
prima il numero delle ripetizioni che vuoi compiere e poi, racchiuse tra
parentesi quadrate, l’istruzione o la lista di istruzioni da ripetere.
RIPETI 4 [A 23]
PS RIPETI 3 [A 30 D 60]
PS RIPETI 8 [A 65 D 135]
PS RIPETI 20 [D 50 A 15 D 60 A 10]
S 90 A 100 S 90 A 100
pag. 26 Manuale Logo
Ora la Tartaruga è nel punto giusto, ma è rivolta verso il basso. Per darle
l’orientamento giusto con cui effettuare le 24 ripetizioni potrai battere:
D 180
PS
A 10 D 90 A 10 D 90 A 10 S 90 A 10
Figura 1
FREGIO MODULO
3. Poligoni con il comando Ripeti pag. 27
A 10 D 90 A 10 D 90 A 10 S 90 A 10 S 90
RIPETI 5 [A 10 D 90 A 10 D 90 A 10 S 90 A 10 S 90]
A 10 D 90 A 10 D 90
RIPETI 2 [A 10 D 90]
e così pure:
A 10 S 90 A 10 S 90
diventa:
RIPETI 2 [A 10 S 90]
RIPETI 4 [A 10 D 90]
Figura 2
pag. 28 Manuale Logo
Per scrivere il programma della Figura 5 tenta di utilizzare una parte del
programma scritto per la Figura 4.
Figura 4
Figura 5
Nel caso del disegno del triangolo equilatero, per esempio, per ciò che si
è imparato scuola, si è convinti che, per disegnare quella figura, basta
conoscere la misura degli angoli interni dello stesso triangolo, e non quella
dei corrispondenti angoli esterni.
È questa la regola che Papert, uno degli ideatori del LOGO, chiama come:
regola del giro completo. Quando tu arrivi ad esser padrone di questa
regola, avrai conquistato, secondo Papert, una idea matematica assai poten-
te, destinata ad avere una influenza, positiva ed efficace, per i successivi
sviluppi delle tue conoscenze matematiche.
CERCHI E ARCHI
RIPETI N [A L D 360/N]
3. Poligoni con il comando Ripeti pag. 31
Se digiti:
RIPETI 360 [A 1 D 1]
RIPETI 360 [A 2 D 1]
Ottieni una circonferenza di 720 passi (360 x 2). La misura dell’avanza-
mento è uguale alla lunghezza della circonferenza divisa per il numero di
ripetizioni.
Come possiamo fare per disegnare solo una parte di una circonferenza,
ossia un suo arco? Volendo disegnare una semicirconferenza occorrerà
ripetere 180 volte, e non 360 volte, la lunghezza dell’avanzamento e la
rotazione della tartaruga:
RIPETI 90[A 1 S 1]
RIPETI 540 [A 1 D 1]
RIPETI 90[A 1 S 1]
SU TANA GIU
Figura 7 Figura 8
Figura 9 Figura 10
3. Poligoni con il comando Ripeti pag. 33
ESERCIZI
2. Quanti passi deve compiere per arrivare dal lato superiore a quello
inferiore, oppure dal lato sinistro a quello destro?
3. Prova a disegnare le iniziali del tuo nome e del tuo cognome. Ecco, ad
esempio, i comandi che occorrono per scrivere:
- una L : S 90 A 50 D 90 A 100
- una I : A 100
- una T : A 100 S 90 A 25 I 50
A 10 S 90 A 10 D 90
A 10 S 140 A 30 S 199
Quale disegno compare? Quante volte devi ripetere la serie per avere il
disegno della lama di una sega circolare?
10. Scrivi una serie di istruzioni per disegnare una figura di quattro lati.
14. Disegna un altro arco lungo un quarto di cerchio, ma con passi doppi
rispetto all’arco del progetto precedente.
15. Disegna un arco a sinistra lungo un sesto di cerchio, poi uno analogo
a destra. (Suggerimento: usa la divisione e lascia fare i calcoli al LOGO).
Figura 11: una faccia nelle varie fasi della sua costruzione.
4. Le "geometrie" del LOGO pag. 35
LO SCHERMO GRAFICO
ASSCHIA 0.85
Digita poi PS. Ora la tartaruga è
nella posizione TANA ed è rivolta 117 PASSI
CAMPO
Se la tartaruga ti risponde CIRCOLARE oppure APERTO, digita:
ASCAMPO “CHIUSO
Poi , sempre dalla TANA, fa’ compiere alla tartaruga un numero di passi
maggiore, oppure minore, di quelli prima indicati e osserva che cosa accade.
Ricorda che per riportare la tartaruga alla TANA e ripulire lo schermo puoi
sempre usare il comando: PS.
A DESTRA
+5
-2
semiasse negativo
Sulle quattro semirette è stata fissata una unità di misura per le lunghezze,
(per esempio potrebbe essere il centimetro o, più in generale, un segmento
di lunghezza prestabilita). Ciò fatto, disegniamo sul primo quadrante un
qualsiasi punto P e conduciamo da esso le perpendicolari PH e PK rispetti-
vamente all’asse x ed all’asse y.
OH = KP e OK = HP
O H
- il punto Q ha l’ascissa = -2 e
l’ordinata = 3, e lo indichiamo
con: Q (-2 ; 3).
R - il punto R ha l’ascissa = -3 e
l’ordinata = -4, e lo indichiamo
con R (-3 ; -4).
XCOR e YCOR
=
a
modo preciso indicando: la direzione s ta
nz
di
di partenza, l’angolo da cui ruotare a
partire da essa e la distanza dell'og-
Fig. 4
getto osservato (Fig. 5).
Nello studio delle coordinate polari dovresti partire dalla costruzione del
concetto di angolo come cambiamento di direzione e dalla consapevolezza
del suo doppio verso di rotazione, qual è, per esempio, il verso di
percorrenza, orario e antiorario, sul cerchio e nei giochi di girotondo.
Occorrerebbe poi che tu conquistassi l’idea dell’insieme delle direzioni che
escono «a raggiera» nello spazio, partendo da te quale osservatore colloca-
to nel centro di riferimento del sistema polare.
pag. 40 Manuale Logo
Se ruota nel verso orario, ossia verso destra, aumenta il valore angolare
della sua direzione, mentre accade il contrario quando ruota nel verso
antiorario, ossia verso sinistra.
Con ASDIR la tartaruga ruota verso destra del numero di gradi indicati
dall'argomento, se questo è un numero positivo, mentre ruota verso sinistra
se il numero è negativo. La direzione rappresentata con una linea tratteggia-
ta nella Fig. 5 si può quindi ottenere con i comandi:
Dopo aver modificato con ASDIR la direzione della tartaruga, puoi usare
il comando AVANTI per effettuare lo spostamento che ritieni necessario
per realizzare il disegno che desideri.
SISTEMA CARTESIANO
SISTEMA POLARE
LE PROCEDURE E IL FOGLIO
PRIMITIVE E PROCEDURE
Dopo aver imparato a pilotare la Tartaruga per eseguire disegni, puoi ora
imparare come attribuire un nome a ciascun disegno e il LOGO ti consentirà
di utilizzare questo nome quale nuovo comando da dare alla tartaruga.
In questo modo, i nomi che potrai scegliere a piacere, quali per esempio
TRIANGOLO, oppure PARETE, li potrai digitare sui tasti e, come per
miracolo, i disegni da te creati e chiamati con questi nomi, appariranno di
sullo schermo.
Come già detto, per scrivere una procedura puoi cominciare a scegliere
e a scriverne il nome. Nel nostro precedente esempio è stato scelto il nome
QUADRATO, ma, naturalmente, puoi scegliere qualsiasi altro nome che
preferisci.
Per avvisare il LOGO che stai per scrivere una procedura, il nome da te
scelto per la procedura stessa deve essere preceduto dal comando:
PER
PER QUADRATO.
A questo punto, quando premi il tasto <INVIO>, nella riga sotto a PER
QUADRATO sparisce il punto interrogativo e, al suo posto, compare il
carattere " > " seguito dal solito cursore lampeggiante.
La presenza a capo riga del carattere " > " è il segnale che sei entrato
nell'ambiente del LOGO dove si scrivono le procedure. Questo ambiente in
"informatichese"si chiama: ambiente di edizione dellle procedure
PER "...
AMBIENTE DEI AMBIENTE DI
COMANDI EDIZIONE DELLE
IMMEDIATI PROCEDURE
FINE
A 100 <INVIO>
D 15 <INVIO>
I 80 <INVIO>
FINE
Rileggi ora con attenzione le due procedure per assicurarti che:
- i comandi siano stati scritti in modo corretto;
- nei numeri vi siano zeri (0), e non o maiuscole (O);
5. Le procedure e il foglio pag. 45
MUOVITI <INVIO>
Se invochi una procedura nella quale hai, per caso, scritto male una
parola, il LOGO ti invia un messaggio di errore.
1. Digita:
EDITA "nomeprocedura (per esempio: EDITA "MUOVITI).
Vedrai apparire una schermata particolare suddivisa in due parti. La
superiore contiene la procedura da correggere. La inferiore inizia con
una scritta in rosso e sotto ha la zona degli eventuali comandi da dare.
In ambedue le zone si vede il cursore lampeggiante.
Puoi dare anche qualche altro comando alla figura dello schermo, facendo
ruotare e poi camminare la tartaruga, per esempio con i comandi:
DESTRA 12 AVANTI 55
MOSFOGLIO
NASFOGLIO
CANCEFOGLIO
Come già detto, tra i pregi del LOGO c’è la caratteristica che il nome di
una sua procedura può diventare una comando derivato e acquistare così la
funzione svolta da un comando qualsiasi , svolgendo così lo stesso ruolo
svolto, per esempio, dalle sue ordinarie parole primitive: AVANTI, DE-
STRA, RIPETI.
PER COMMENTO : ;
FINE
poi scrivi i programmi commentandoli nel modo indicato sotto. Ricorda che
le parole scritte tra parentesi quadrate in ogni riga che inizia con il punto e
virgola non avranno alcun effetto sul programma che le contiene.
PER QUADRATO
RIPETI 4 [AVANTI 50 DESTRA 90]
; [RIPETI, AVANTI E DESTRA SONO COMANDI SEMPLICI]
; [QUADRATO È UN COMANDO DERIVATO]
FINE
PER FINESTRA
RIPETI 4 [QUADRATO SINISTRA 90]
FINE
PER DECORAZIONE
FINESTRA
DESTRA 45
FINESTRA
; [FINESTRA È ANCH’ESSO UN COMANDO DERIVATO]
FINE
- una volta che sia stata definita, una procedura potrà essere usata anche
all’interno di altri programmi. In pratica, se si scelgono bene le procedure
5. Le procedure e il foglio pag. 49
PER CAMPODIGRANO
SU S 90 A 150 D 90 G1U
RIPETI 18 [SPIGA SEMINARE]
FINE
PER SEMINARE
D 90
SU A l6 GIU
S 90
FINE
PER SPIGA
A 20
RIPETI 4 [SPIGHETTA A 5]
I 40
FINE
pag. 50 Manuale Logo
PER SPIGHETTE
D 45 A 8 I 8
S 90 A 8 I 8
D 45
FINE
SEMINARE
CAMPODIGRANO
SPIGA SPIGHETTE
Per quel che riguarda la procedura TESTA potresti, per esempio, proget-
tarne una di forma quadrata. È evidente che le istruzioni per la TESTA
vanno accompagnate da altre che obblighino la Tartaruga a disegnarla nella
posizione giusta, sopra la parte superiore del corpo.
Ecco una serie di procedure semplici che, come vedremo nel prossimo
capitolo, potresti opportunamente memorizzare nell’archivio: FORME.
FINE FINE
D30 S30
S 30 D 30
FINE FINE
PER STELLA.SEI
RIPETI 6 [ROMBO D 360/6]
FINE
pag. 52 Manuale Logo
PER FINESTRA
RIPETI 4 [QUADRATO S 360/4]
FINE
PER SPOSTABLOCCO
S 135 SU A 120 GIU D 135
RIPETI 4 [QUADRATO A 50 D 90 A 50 S 90]
FINE
PER FIGURA.A
RIPETI 8 [QUADRATO D 360/8]
RIPETI 6 [ROMBO D 360/6]
FINE
ESERCIZI
- Scrivi una procedura che disegni una casa avente un quadrato per parete
e un triangolo per tetto.
Conservazione di procedure
Le procedure da te definite non rimangono per sempre nella memoria del
computer. Quando esci dal LOGO egli le"dimentica", ossia si cancellano
dalla memoria del computer.
Il comando:
CONSERVA
Alla fine del tuo compito, per averne un altro esemplare, vai ad una
fotocopiatrice, fai una copia dei lavori da te eseguiti e riponi la copia nei
cassetti, ossia nel tuo archivio.
Quello che serve per lavorare in quel momento lo tieni nella memoria di
lavoro del LOGO (piano della scrivania), che può accogliere anche diverse
procedure (fogli vari con lavori diversi).
pag. 54 Manuale Logo
Così, come ogni procedura deve avere il proprio nome, così anche
all’insieme delle procedure, costituenti un solo archivio, va attribuito il
nome relativo. Il nome servirà a distinguere tale archivio da altri insiemi di
procedure.
CONSERVA “FORME
Devi stare anche attento al fatto che nell'archivio non vi sia un altro
archivio avente lo stesso nome. Se nel disco o nel dischetto hai già conser-
vato un precedente archivio sotto il nome di: FORME e vi memorizzi un
nuovo archivio con la stessa denominazione, il vecchio archivio viene
rimpiazzato dalle nuove procedure successivamente realizzate. In questo
caso tutte le precedenti procedure che costituivano l’archivio FORME
vengono sostituite e, in sostanza, cancellate dalla memoria di massa.
6. Spazio di lavoro e archivi pag. 55
Per vedere sullo schermo i titoli delle procedure presenti nella memoria
di lavoro del computer, batti:
STITOLI
SPROC
seguito dal nome della procedura di cui intendi vedere il contenuto. Per
esempio, se sai che la procedura MUOVITI è presente nella memoria di
lavoro, puoi vedere il suo listato digitando:
SPROC "MUOVITI
SPROC_IN
STITOLI
SPROC "...
Infine per vedere i nomi di tutti gli archivi conservati nel disco con il
quale sei in comunicazione in quel momento, batti:
CATALOGO
e sullo schermo il LOGO farà vedere l’elenco completo dei nomi degli
archivi contenuti nel disco stesso.
pag. 56 Manuale Logo
Recupero di procedure
In qualunque momento il LOGO ti consente di recuperare procedure dal
disco o dal dischetto per trascriverle nella memoria di lavoro.
Nel grafico riportato sotto puoi vedere la coppia dei comandi da usare
per trasferire procedure dalla memoria di lavoro alla memoria esterna,
oppure da quest'ultima alla memoria di lavoro.
Conserva "...
PROCEDURE PROCEDURE
NELLA MEMORIA NELLA MEMORIA
DI LAVORO DI MASSA
Recupera "...
Come già detto, per vedere l’elenco degli archivi presenti su disco, puoi
digitare:
CATALOGO .
RECUPERA “FORME
STITOLI
Come è stato già detto, per "spedire" poi tutte le procedure nell’archivio:
FORME digita: CONSERVA "FORME.
Cancellazione di procedure.
Alcune volte può essere utile ripulire la memoria di lavoro cancellandovi
tutte le procedure che vi sono presenti, specie quando si decide di cambiare
attività e di recuperare un altro archivio.
CANCEPROC_IN.
CANCEPROC
seguito dal nome della procedura che desideri cancellare. Per esempio per
cancellare dalla memoria di lavoro la procedura TRIANGOLO contenuta
nell'archivio FORME digita:
CANCEPROC "TRIANGOLO
CANCEARC
pag. 58 Manuale Logo
che deve essere seguito dal nome dell’archivio che desideri cancellare. Per
esempio, per cancellare l’archivio FORME, puoi scrivere:
CANCEARC "FORME
ASDISCO "C:
PROCEDURE E VARIABILI
Ecco un esempio:
Per far ciò, nel momento che invochi questa procedura, basta che tu
indichi quale lunghezza scegli per il lato, scrivendone il valore numerico al
posto di :LATO.
pag. 60 Manuale Logo
QUADRATO 50 , poi:
QUADRATO 70 e infine:
QUADRATO 90 ,
VARIABILE.
Ciò perché:
- nel primo caso stai tentando di invocare una procedura usando un argo-
mento variabile,
7. Procedure e variabili pag. 61
PER QUADRATO
AVANTI 50 DESTRA 90 AVANTI 50 DESTRA 90
AVANTI 50 DESTRA 90 AVANTI 50 DESTRA 90
FINE
PER QUADRATO
RIPETI 4 [AVANTI 50 DESTRA 90]
FINE
Tieni allora sempre ben presente che le procedure che dovrai progettare:
tanto più ti saranno utili quanto più le avrai progettate e realizzate nella
forma più generale possibile.
pag. 62 Manuale Logo
POLIGONO 3 50
POLIGONO 6 30
POLIGONO 30 6
PER POLIGONO :N :L
RIPETI :N [A :L D 360/:N]
FINE
PER MULTIPOLIGONO :N :L
RIPETI :N [D (360/:N) POLIGONO :L 40]
FINE
7. Procedure e variabili pag. 63
MULTIPOLIGONO 10 5
PER POLIGONO :N :L
RIPETI :N [A :L D 360/:N]
FINE
PER RUOTAPOLIGONO :N :L
RIPETI (360 /:L) [D :L POLIGONO :N 50]
FINE
VENTAGLIO 5 50 19
oppure con:
VENTAGLIO 7 60 20
pag. 64 Manuale Logo
PER RETTANGOLO :L
RIPETI 2 [A :L D 90 A (:L * 2) D 90]
FINE
PER ROMBO :L
RIPETI 2[A :L D 60 A :L D 120]
FINE
Esempi di superprocedure:
PER FINESTRA :L
RIPETI 4 [QUADRATO :L S 90]
FINE
PER FIGURA :L
RIPETI 8 [QUADRATO :L D 45]
RIPETI 6 [ROMBO :L D 60]
FINE
PER STELLA :L
FINESTRA :L D 45
FINESTRA :L S 45
FINE
7. Procedure e variabili pag. 65
PER QUADRILATERO :L
RIPETI 2 [A :L D 30 A :L D 150]
FINE
PER ELICA :L
RIPETI 2 [QUADRILATERO :L D 180]
FINE
PER FARFALLINA :L
RIPETI 3 [QUADRILATERO :L D 120]
FINE
PER GIRANDOLA :L
RIPETI 4 [QUADRILATERO :L D 90]
FINE
PER CINQUE :L
RIPETI 5 [QUADRILATERO :L D 72]
FINE
PER SUPERGIRANDOLA :L
RIPETI 6 [QUADRILATERO :L D 60]
FINE
PER FIORELLINO :L
RIPETI 9 [QUADRILATERO :L D 40]
FINE
PER MARGHERITA :L
RIPETI 12 [QUADRILATERO :L D 30]
FINE
PER FIORE :L
RIPETI 18 [QUADRILATERO :L D 20]
FINE
pag. 66 Manuale Logo
PER CRISANTEMO :L
NT RIPETI 36 [QUADRILATERO :L D 10]
FINE
PER SOLE
NT RIPETI 72 [QUADRILATERO :L D 5]
FINE
Come sai già, nel LOGO puoi utilizzare una variabile in tutti quei casi in
cui è possibile fare uso di un numero.
- i caratteri che non puoi includere nei nomi delle variabili sono soltanto: i
simboli delle operazioni (ossia: + - * / ), le parentesi tonde o quadrate
(ossia: ( ) [ ] ) e il segno di apostrofo (ossia: ‘ ).
7. Procedure e variabili pag. 67
Variabili globali
AS (abbreviazione di assegna)
serve per definire una variabile e le attribuisce una valore che la stessa
variabile conserva fino a che un successivo comando di AS , non glielo
modifica, attribuendole un valore diverso.
- sia nel mondo dei comandi immediati, ossia all’esterno di una procedura,
Per di più, tale valore verrà conservato allorchè effettui una copia di tale
procedura, ossia quando trasferisci la procedura stessa dalla memoria di
lavoro del computer alla memoria esterna su disco.
Ed è appunto per tali ragioni che tale tipo di variabile prende il nome di
variabile globale.
Variabili locali
LOCALE
Tale parola deve essere accompagnata dal nome che intendi dare alla
variabile stessa. Per esempio:
LOCALE "LUNGHEZZA
Infatti, se usi variabili globali dove invece potresti usare variabili locali,
occupi spazio della memoria di lavoro in cui potrebbero, invece, trovar
posto altre procedure.
- prima con AS, mediante comando diretto, e quindi non all’interno di una
procedura. In questo caso la variabile assume il valore di variabile globale
permanente;
AS “PASSO 50
AVANTI :PASSO
(la tartaruga avanza di 50 passi)
AS “UN.QUARTO.DI.GIRO 90
DESTRA :UN.QUARTO.DI.GIRO
(la tartaruga ruota di 90 gradi e destra)
PER TABELLINE
LOCALE “NUM.A
LOCALE “NUM.B
AS “NUM.A ACASO 10
AS “NUM.B ACASO 10
; [IL SIGNIFICATO DI ACASO LO CONOSCERAI IN SEGUITO]
; [ORA STA ATTENTO A SCRIVERE LA RIGA SUCCESSIVA]
(STAMPA :NUM.A [PER] :NUM.B [=] :NUM.A * :NUM.B)
FINE
pag. 70 Manuale Logo
Questa procedura serve per scegliere a caso due numeri più piccoli di
dieci e per avere il loro prodotto. Ricorda che per scrivere la sua sesta e
settima riga come righe di spiegazione devi prima digitare la procedura
COMMENTO riportata nel capitolo 5 all'inizio di pagina 46.
Per esempio, avendo dato alla variabile "LATO il valore di 100 mediante
l’struzione AS "LATO 100, se digiti COSA "LATO, il LOGO ti risponderà:
RISULTATO 100. Se a questo punto desideri cancellare tale valore nella
stessa variabile, ecco qual è il procedimento che devi seguire.
Digita AS "LATO " (ossia: dopo la seconde virgolette digita uno spazio
vuoto) e concludi con <INVIO>. Dopo di ciò digita ancora COSA "LATO
e vedrai che il LOGO ti risponde RISULTATO: , ossia ti dà, quale
risultato, uno spazio vuoto, ossia nulla.
8. Trattamento dei numeri pag. 71
Il LOGO usa senza alcuna difficoltà i numeri interi naturali, quali sono,
per esempio, i numeri: 4, 67, 7 63, e i numeri reali, ossia, i numeri con la
parte non intera (“decimale”) quali, per esempio: 4.37, 2.6. Per il LOGO,
7/2 (sette diviso due) è la stessa cosa di 3.5 (da leggere: tre punto cinque,
ossia tre unità e cinque decimi, ).
26 + 34 <INVIO>
AVANTI 24 + 36
STAMPA 76 * 42
Similmente, digitando:
DESTRA 360/5
STAMPA (7 + 5 ) / 2
STAMPA 7 + 5 / 2
In questo secondo caso il risultato finale sarà 9.5 (e non 12 come nel caso
precedente).
4 * 3 + 6 / 3 - 2 * (3 + 2) =
4 * (3 + 6) / (3 - 2) * 3 + 2 =
4 * (3 + 6) / ((3 - 2) * 3 + 2) =
Così, scrivendo:
24 / 3
ACASO <num>
ACASO è una funzione che, quale risultato, genera un numero estratto
a caso in una quantità di interi scelta a piacere. Stabilirai tale quantità
scrivendone l'entità subito dopo ACASO.
ARCTAN <num>
Il valore della funzione ARCTAN è l’arcotangente del suo argomento
espressa in gradi sessagesimali.
ARRO <num>
ARRO arrotonda un numero non intero ("decimale") al suo intero più
vicino. Così:
ARRO 6.4 , dà in uscita: 6
ARRO 2.7, dà in uscita: 3
ARRO 20 / 3 , dà in uscita: 7
ASCIFRE <num>
Determina il massimo numero di cifre significative del risultato di ogni
operazione aritmetica e quindi condiziona il livello di precisione ottenibile
nei calcoli.
ASSO
Fornisce il valore assoluto del suo argomento.
CIFRE
Indica il numero delle cifre significative utilizzato nei calcoli numerici.
COS <num>
Esempi: 23 * 3 -4 = 69 -4 ; 23 * 3 - 4 = 65
GRADI
Questa funzione converte in gradi il numero dei radianti forniti dall’argo-
mento.
INT <num>
Il valore fornito da questa funzione è uguale alla parte intera del numero
fornito come argomento.
LOG10 <num>
Questa funzione restituisce il logaritmo in base dieci del suo argomento.
PI
Il valore di PI è pi greco con una precisione pari al numero delle cifre
significative stabilito con ASCIFRE (max. 32).
Esempio: POTENZA 4 3 = 4 3 = 64
Esempio: QUOZIENTE 12 5 = 2.
DIVISIONE 12 5 = 12 / 5 = 2.4
RADIANTI <num>
Converte i gradi in radianti.
RADQ <num>
Il valore restituito da questa funzione è la radice quadrata del suo
argomento.
Esempio: RADQ 64 = 8
SEN
Il valore della funzione SEN è il seno trigonometrico del suo argomento.
TAN <num>
Il valore della funzione TAN è la tangente del suo argomento espresso in
gradi sessagesimali.
Stai attento! Quando usi i numeri non interi ("decimali") con le funzioni
QUOZIENTE e RESTO, il LOGO, prima di eseguire la divisione,
"arrotonda" (ossia, approssima) automaticamente i due numeri all’intero
più vicino.
Questo accade per tutte le primitive del LOGO che, per argomento,
richiedono numeri interi.
9. Cerchi e archi di raggio variabile pag. 79
CERCHI E ARCHI
DI RAGGIO VARIABILE
RIPETI 60 [A 2 D 360/60]
PROCEDURE RICORSIVE
Come sai già, in una procedura del LOGO puoi usare sia tutte le istruzioni
primitive di questo linguaggio, sia tutti i nomi delle procedure, da te in
precedenza definite e presenti nella memoria di lavoro.
3. Disegna un ......
FINE
pag. 86 Manuale Logo
NUOVOPOLIGONO 30 144
NUOVOPOLIGONO 7 117
Vediamo che cosa accade quando fai eseguire questa procedura invocan-
dola con: SPI.QUA 10
1. SPI.QUA 10
Avanza 10 passi
Ruota a destra di 90 gradi
Esegue SPI.QUA 10 + 3
2. SPI.QUA 10 + 3
Avanza di 13 passi
Ruota a destra di 90 gradi
Esegue SPI.QUA 13 + 3
3. SPI.QUA 13 + 3
Avanza ...
In questo modo, il secondo lato, ed ogni altro che viene dopo di lui, sarà
di tre passi più lungo del procedente ed il disegno perde così l’aspetto di un
quadrato e assume, invece, l’aspetto di spirale.
Vedrai , nel modo del tutto evidente, quale differenza esiste tra lo stato
di ASSCHERMO "CHIUSO e lo stato di ASSCHERMO CIRCOLARE.
LE FUNZIONI
Tu sai, però, che il LOGO mette a tua disposizione diverse altre istruzioni
e con esse potresti quindi progettare e realizzare sistemi grafici ancora più
interessanti e più attraenti di quelli prodotti fino ad ora.
Come ricorderai, in LOGO esistono diverse altre funzioni che, per lo più,
sono di tipo aritmetico. Ricordiamone alcune a titolo di esempio:
QUOZIENTE 7 3
RESTO 7 3
RIPORTA
5+7
SOMMA 5 7
SOMMARE 5 7
ADDIZIONARE 5 7
12
PER ELEVARE.AL.QUADRATO :N
RIPORTA :N * :N
FINE
Ancora un esempio:
PER DUE.DADI
RIPORTA (ACASO 11) + 2
FINE
PROCEDURE-FUNZIONI RICORSIVE.
Per farlo segui l'esempio proposto nella pagina seguente dove l'algoritmo
in questione viene utilizzato per il calcolo del Massimo Comun Divisore dei
numeri 12 e 30.
pag. 94 Manuale Logo
N1 N2
(per il passo n. 1) 12 30
(per il passo n. 3) 30 12
(per il passo n. 4) 18 12
(per il passo n. 4) 6 12
(per il passo n. 3) 12 6
(per il passo n. 4) 6 6
Dopo aver effettuato ulteriori prove con altre coppie numeriche, potrai
convenire che il numero ottenuto quale risultato, alla conclusione di ciascu-
na prova, è, ogni volta, il massimo comun divisore dei due numeri di
partenza.
Essa, tra l’altro, risulta espressa nello stesso "stile" nel quale viene
espressa una procedura ricorsiva del LOGO.
EUCLIDE 12 30
che è, appunto, il numero più grande che divide sia il 12 , sia il 30 . Ossia
è il loro MCD.
L’istruzione: SE...
Nella procedura scritta prima per il calcolo del MCD hai usato per due
volte l’istruzione: SE...
Se, infine, nessuna delle due prime condizioni risulta essere vera, viene
chiamata, in modo ricorsivo, l’intera procedura dall’inizio. I suoi argomenti
vengono, però, modificati. Il primo sarà costituito dalla differenza tra :N1
e :N2 , che diventa il nuovo valore di :N1, mentre il secondo argomento
conserva il precedente valore di :N2.
Nel confronto potrai notare come il LOGO sia assai più vicino alle
espressioni del tuo linguaggio quotidiano rispetto al linguaggio BASIC, il
quale è un linguaggio di programmazione tra i più usati, se non il più usato
in assoluto.
11. Creazione e uso di funzioni pag. 97
Essa permette di considerare il mcm di due numeri a partire dal loro MCD.
Ecco la formula:
Altri esempi.
Mediante procedure ricorsive, con il LOGO possono essere formulate e
calcolate moltissime funzioni utili. Una di esse, per esempio, è la funzione
FATTORIALE. Questa funzione matematica viene definita come:
PER FATTORIALE :N
SE :N = 1 [RIPORTA 1]
[RIPORTA (:N * FATTORIALE (:N - 1))]
FINE
- la presenza delle virgolette alle quali occorre far seguire uno spazio vuoto.
per la quale va tenuto presente che SE_VERO si può abbreviare con SEV,
mentre SE_FALSO è abbreviabile con SEF.
PER FATTURA
ST [QUANTE BOTTIGLIE VUOLE?]
AS "QUANT LEGGINUMERO
VERIFICA :QUANTITA’ < 10
SEV [AS "PREZZO 3000]
SEF [AS "PREZZO 2700]
AS "IMPORTO :QUANT * :PREZZO
ST (FRASE [IN TUTTO MI DEVE] :IMPORTO [LIRE])
FINE
pag. 100 Manuale Logo
PROCEDURE INTERATTIVE
PROCEDURA PERIAREA
PER PERIAREA
PS PT NT ASCOL 1 + ACASO 3
ST [VUOI IL PERIMETRO O L’AREA? (P / A)]
ST [ ]
ST [PER FINIRE DIGITA F]
SCELTA
FINE
PER AREA
RIPETI 2 [A 70 D 90 A 90 D 90]
D 5 SU A 10 GIU RIEMPI SU I 10 GIU S 5
FINE
pag. 102 Manuale Logo
PER RETT
RIPETI 2 [A 70 D 90 A 90 D 90]
FINE
PER SCELTA
AS "SCE LC
SE NON ELE? :SCE [P A F] [SCELTA]
SE :SCE = "F [FINIRE]
SE :SCE = "P [RETT MESSAGGIO]
SE :SCE = "A [AREA MESSAGGIO]
FINE
PER MESSAGGIO
SE :SCE = “P [PT ST [QUESTO E’ IL PERIMETRO]]
SE :SCE = “A [PT ST [QUESTA E’ L’AREA]]
ASPETTA 50
PERIAREA
FINE
PER FINIRE
PT ST [CIAO ... ALLA PROSSIMA!!] [STOP]
FINE
PROCEDURA AREAPERI
PER AREAPERI
PS PT NT AS “E 1 + ACASO 2
SE :E = 1 [RETT]
SE :E = 2 [AREA]
ST [CHE COSA E’, PERIMETRO O AREA?] ST [ ]
ST [P = PERIMETRO; A = AREA; F = FINE]
RISPOSTA
FINE
PER RETT
RIPETI 2 [A 70 D 90 A 90 D 90]
FINE
11. Creazione e uso di funzioni pag. 103
PER RISPOSTA
AS "R LC
SE NON ELE? :R [P A F] [RISPOSTA
SE :R = "F [FINIRE]
SE NON :R = "F [CONTROLLA AREAPERI]
FINE
PER CONTROLLA
SE AMB (:R = "P) (:E = 1) [PT ST [ESATTO, BRAVO!]]
SE AMB (:R = “A) (:E = 2) [PT ST [ESATTO, BRAVO!]]
SE AMB (:R = “A) (:E = 1) [PT ST [SBAGLIATO, QUESTO E’
IL PERIMETRO]]
SE AMB (:R = "P) (:E = 2) [PT ST [SBAGLIATO QUESTA E'
L'AREA]]
ASPETTA 100
FINE
PER AREA
RIPETI 2 [A 70 D 90 A 90 D 90]
D 5 SU A 10 GIU RIEMPI SU I 10 GIU S 5
FINE
PER FINIRE
PT ST [CIAO ... ALLA PROSSIMA!!] [STOP]
FINE
Procedura TABELLINE
La procedura interattiva TABELLINE ti può servire per approfondire lo
studio delle tabelle moltiplicative. Al suo interno interno è inclusa la
sottoprocedura ricorsiva di primo livello CONTROLLA. Dentro di questa
c'è la sottoprocedura di secondo livello LEGGINUMERO, dalla quale si
passa, mediante una scelta condizionale, alla sottoprocedura di terzo livello
denominata OK.
pag. 104 Manuale Logo
PER TABELLINE
PT AS ‘ 1TENTAT 0
AS “X 1 + ACASO 10
AS “Y 1 + ACASO 10
(ST [QUANTO FA’] :X [PER] :Y [?])
CONTROLLA
FINE
PER DOMANDA
(ST [QUANTO FA’] :X [PER] :Y [?])
CONTROLLA
FINE
PER CONTROLLA
AS “TENTAT :TENTAT + 1 AS “RISP LEGGINUMERO
SE :RISP = :X * :Y [0K] ST [ ] ST [ ]
ST [HAI SBAGLIATO. TORNO A CHIEDERTI] ST [ ]
DOMANDA
FINE
PER 0K
ST [ ] ST [BRAVO! HAI INDOVINATO] ST [ ]
ST FRASE [ERRORI COMMESSI] :TENT - 1
[SCELTA]
FINE
PER FINIRE
PT ST [CIAO ... AL PROSSIMO INCONTRO!] [BREAK]
FINE
11. Creazione e uso di funzioni pag. 105
PER SCELTA
RIPETI 3 [ST [ ]]
ST [VUOI CONTINUARE? C / F] ST [ ]
ST [C = CONTINUARE; F = FINIRE]
AS “SCE LC
SE NON ELE? :SCE [C F] [SCELTA]
SE :SCE = “C [TABELLINE]
SE :SCE = “F [FINIRE]
FINE
Procedura INDOVINA
Un’altra procedura interattiva è INDOVINA. Ti propone un gioco per
indovinare, con il minor numero possibile di domande, un numero misterio-
so, compreso tra uno e cento e "pensato" dal computer.
PER INDOVINA
PT ST [ ] AS “TENT 0
AS “NUM 1 + ACASO 100
ST [HO SCELTO UN NUMERO DA 1 A 100] ST [ ]
ST [CERCA DI INDOVINARLO E SCRIVILO SOTTO] ST [ ]
ST [IO TI AIUTERO’ CON QUALCHE INDICAZIONE] ST [ ]
GIOCO
FINE
PER FINIRE
PT ST [CIAO ... AL PROSSIMO INCONTRO!] [BREAK]
FINE
pag. 106 Manuale Logo
PER GIOCO
AS “TENT :TENT + 1
AS “IND LEGGINUMERO
SE :NUM = :IND [0K]
SE :NUM > :IND [ST [IL MIO NUMERO E’ MAGGIORE]]
SE :NUM < :IND [ST [IL MIO NUMERO E’ MINORE]]
GIOCO
FINE
PER 0K
ST [ ]
ST [BRAVO! HAI INDOVINATO]
ST [ ]
ST FRASE [ERRORI COMMESSI] :TENTAT - 1
[SCELTA]
FINE
PER SCELTA
RIPETI 3 [ST [ ] ]
ST [VUOI CONTINUARE? C / F] ST [ ]
ST [C = CONTINUARE; F = FINIRE]
AS “SCE LC
SE NON ELE? :SCE [C F] [SCELTA]
SE :SCE = “C [INDOVINA]
SE :SCE = “F [FINIRE]
FINE
12. Isometrie piane e funzioni trigonometriche pag. 107
E FUNZIONI TRIGONOMETRICHE
La TANA si trova nel punto di incrocio dei due assi e, in questo punto,
sia alla X, sia alla Y, viene attribuito il valore di 0.
XCOR YCOR
Per spostare la tartaruga ad una certa distanza puoi mettere insieme due
di queste istruzioni.
Così con:
Ecco una procedura nella quale puoi utilizzare alcune di queste istruzioni
per disegnare sullo schermo gli assi del piano cartesiano:
PER ASSI.CARTES
PS NT
VAX 135 VAX (-135) TANA
VAY 125 VAY (-125) TANA
FINE
Traslazioni.
PER TRIANGOLO.1
SU VAXY [-100 -50]
GIU VAXY [-100 -20]
VAXY [-30 -50]
VAXY [-100 -50]
FINE
PER TRIANGOLO.2
SU VAXY [50 50]
GIU VAXY [50 80]
VAXY [120 50]
VAXY [50 50]
FINE
12. Isometrie piane e funzioni trigonometriche pag. 109
PER TRASLAZIONE
ASSI.CARTESIANI
TRIANGOLO.1
ASSCHERMO "MISTO NT
ST [TRASLAZIONE DI PASSO P = (X+150) (Y+100)]
ASPETTA 100
TRIANGOLO.2
FINE
Simmetrie
PER TRIANGOLO.3
SU VAXY [-100 50]
GIU VAXY [-100 20]
VAXY [-30 5]
VAXY [-100 20]
FINE
PER SIMMETRIA.X
ASSI.CARTES
TRIANGOLO.1
ASSSCHERMO "MISTO NT
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE X]
ASPETTA 100
TRIANGOLO.3
FINE
PER SIMMETRIA.Y
ASSI.CARTES
TRIANGOLO.1
ASSCHERMO "MISTO NT
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE Y]
ASPETTA 100
TRIANGOLO.4
FINE
pag. 110 Manuale Logo
Rotazioni
PER TRIANGOLO.5
SU VAXY [100 50]
GIU VAXY [100 20]
VAXY [30 50]
VAXY [100 50]
FINE
PER ROTAZIONE.A
ASSI.CARTES
TRIANGOLO.1
ASSCHERMO "MISTO NT
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE X]
ASPETTA 100
TRIANGOLO .3
ST [SEGUITA DA]
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE Y]
ASPETTA 100
TRIANGOLO.5
ST [EQUIVALE A ROTAZIONE DI CENTRO (0,0)]
FINE
PER ROTAZIONE.B
ASSI.CARTES
TRIANGOLO.1
ASSCHERMO "MISTO
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE Y]
ASPETTA 100
TRIANGOLO.4
ST [SEGUITA DA]
ST [SIMMETRIA RISPETTO ALL’ASSE DELLE X]
ASPETTA 100 TRIANGOLO.5
ST [EQUIVALE A ROTAZIONE DI CENTRO (0, 0)]
FINE
12. Isometrie piane e funzioni trigonometriche pag. 111
Come sai già, per conoscere qual è la direzione attuale della Tartaruga
c’è il comando DIR. Se batti DIR, il LOGO potrebbe risponderti
34.006
L’istruzione DIR può essere usata dentro una procedura come condizione
di blocco. Ecco, per esempio, come puoi utilizzarla dentro una procedura
ricorsiva che disegna un cerchio:
PER CERCHIO
AVANTI 1 DESTRA 1
SE DIR = 0 [STOP]
CERCHIO
FINE
Se vuoi assegnare alla tartaruga una certa direzione, serviti della istruzio-
ne ASDIR, il cui significato è: ASsegna DIRezione. ASDIR 45, per
esempio, fa assumere alla Tartaruga la direzione di 45 gradi a destra rispetto
alla direzione verso l’alto (0).
posizione della tartaruga con il punto indicato. Anche questa istruzione puoi
collegarla alle precedenti.
FUNZIONI TRIGONOMETRICHE
SEN
COS
α
SEN α
COS α
13. Le liste e le parole. pag. 113
LE LISTE E LE PAROLE
LE LISTE
Per esempio:
[ABELE CAINO]
è una lista formata da due elementi che sono le parole “ABELE e “CAINO.
Quando le parole sono elementi di una lista non devono essere precedute
dalle virgolette.
[1 2 3 4]
[1 1 1 1]
[1 2 [3 4]]
è una lista formata da tre elementi: i primi due sono i numeri 1 e 2; il terzo
elemento è la lista formata dai numeri 3 e 4.
[A]
[[A]]
è una lista formata da un solo elemento, che a sua volta è una lista formata
dal solo elemento, la parola A.
[]
[A :B]
Un elemento si può mettere al primo o all’ ultimo posto di una lista usando
i comandi:
INPRI
INULT
AS “NUMERI [2 1]
AS “NUMERI [2 3 4]
Si può creare una nuova lista a partire da due liste, da due parole o da una
lista e una parola con la funzione
FRASE
MOSTRA FRASE [1 2 3] [4 5 6] [1 2 3 4 5 6]
AS “NOME “LUDOVICO
Ma attenzione:
MOSTRA FRASE [1 2 3] [1 2 3] [1 2 3 1 2 3]
perchè in una lista, come abbiamo già visto nei primi esempi, ci possono
anche essere elementi uguali e il comando FRASE si limita a concatenare gli
elementi della prima lista a quelli della seconda.
LISTA
la quale riporta, come FRASE, una lista formata dai suoi argomenti, ma se
qualcuno di questi è esso stesso una lista, come tale rimane nella lista
risultato.
AS “NOME “LUDOVICO
Per esempio si può dare il nome “FRATELLI alla lista [LUCA GIORGIO
MARCO STEFANIA] mediante l’istruzione: AS “FRATELLI [LUCA
GIORGIO MARCO STEFANIA].
Si può ottenere il primo o 1' ultimo elemento di una lista, con le funzioni
PRI
ULT
Da una certa lista se ne può ottenere un’altra ricavata dalla prima
eliminando il primo o 1' ultimo elemento, con i comandi
MENPRI
MENULT
Infine si può sapere il numero di oggetti che compongono una lista, con
la funzione:
CONTA.
STAMPA PRI [LUCA GIORGIO MARCO STEFANIA]
LUCA
STEFANIA
Ma fai attenzione:
ELE
che richiede come argomenti il numero dell’elemento voluto e 1’oggetto in
cui cercarlo (una lista, ma può essere anche una parola).
13. Le liste e le parole. pag. 117
STAMPA ELE 2 :FRATELLI GIORGIO
POSELE
Il comando
Stabiliamo che i nomi vanno fomiti sempre nello stesso ordine (padre,
madre e figli, in ordine di età).
PER FAMIGLIE
AS “COGNOME PRI LEGGILISTA
SE :COGNOME = “FINE [STOPl
AS “FAMIGLIE INPRI :COGNOME :FAMIGLIE
CHIAMA :COGNOME LEGGILISTA
FAMIGLIE
FINE
AS “FAMIGLIE [ ]
FAMIGLIE
ROSSI
NERI
FINE
pag. 118 Manuale Logo
FINE
Liste di istruzioni
La primitiva:
ESEGUI <LISTA>
esegue le istruzioni contenute nella lista.
LE PAROLE
PAROLA
che corrisponde alla funzione FRASE per le liste. Esempio:
Esempi:
Ma purtroppo:
ELE
STAMPA ELE 3 “LOGO G
CONTA
STAMPA CONTA “LUDOVICO 8
UGUALE?
STAMPA UGUALE? “LUDOVICO PAROLA “LUDOVI “CO
VERO.
(tratto da "C. Pratt, Micromania: la resistibile ascesa dei computer, Feltrinelli, 1984
Appendice A: Glossario M-LOGO - LOGO IBM pag. 121
ASCAMPO
ASCAMPO “APERTO
“CHIUSO FENCE
“CIRCOLARE WRAP
Il comando ASCAMPO, il cui argomento può essere soltanto una delle parole
“APERTO, “CHIUSO o “CIRCOLARE, permette di stabilire le caratteristiche dello
spazio in cui si muove la tartaruga.
Se I’argomento di ASCAMPO è “APERTO, allora il campo in cui può muoversi la
tartaruga non è limitato dai margini dello schermo ed essa potrà spostarsi anche al di
fuori di esso (anche se, ovviamente, non sarà visibile).
Se invece 1' argomento di ASCAMPO è la parola “CHIUSO, il campo della tartaruga
viene limitato allo schermo. In questo caso un comando che portasse la tartaruga ad
uscirne produrrebbe il messaggio “TARTA contro il MURO.
Infine, quando ASCAMPO viene seguito dalla parola “CIRCOLARE, lo spazio in cui
si muove la tartaruga viene trasformato in modo tale che se un comando porta la tartaruga
ad uscire dallo schermo, essa riapparirà dal lato opposto e di qui continuerà il suo
movimento.
Quando viene fatto partire il Logo, il campo è CIRCOLARE.
TANA ASCAMPO "APERTO AVANTI 1000
TANA ASCAMPO "CHIUSO AVANTI 1000
TARTA contro il MURO
Si noti che il colore del triangolino raffigurante la tartaruga a volte non coincide con
quello della penna: il simbolo della tartaruga viene infatti scritto, punto per punto, in un
colore effettivo che è dato dalla composizione dal colore nominale della penna e del
colore corrente del punto stesso, secondo la tabella seguente, che si riferisce ai colori
mediante i numeri corrispondenti nella tavolozza.
ASSCHERMO
“COMANDI TEXTSCREEN (TS)
“MISTO MIXEDSCREEN (MS)
“TARTA FULLSCREEN (FS)
La primitiva ASSCHERM0 determina il modo in cui viene utilizzato lo schermo
grafico. Se Logo è partito utilizzando lo schermo monocromatico, prima di poter
utilizzare lo schermo a colori per eseguire disegni, è necessario dare un comando
ASSCHERMO “TARTA; questo serve infatti ad avvertire Logo dell’esistenza dello
schermo grafico.
Appendice A: Glossario M-LOGO - LOGO IBM pag. 123
CAMPO
Riporta la forma dello spazio nel quale si muove la tartaruga: APERTO, CHIUSO
o CIRCOLARE.Per la descrizione dei tipi di spazio possibili per la tartaruga vedi
ASCAMPO.
DIR HEADING
Il valore di DIR è la direzione assoluta che attualmente ha la tartaruga (vedi ASDIR).
La direzione assoluta della tartaruga è l’angolo formato dall’asse di marcia della
tartaruga e dalla verticale dello schermo. La direzione 0 corrisponde alla parte in alto
dello schermo, la direzione 180 al basso e la direzione 90 alla destra.
ASDIR 90 DESTRA 90 SINISTRA 45
STAMPA DIR 135
Appendice A: Glossario M-LOGO - LOGO IBM pag. 125
DOVE POS
DOVE è una funzione il cui valore è una lista contenente due coordinate (una ascissa
e una ordinata) del punto in cui si trova la tartaruga.
AS “POSIZIONE DOVE MOSTRA DOVE
[53 38] :POSIZIONE [53 38]
PENNA PEN
Riporta una lista di tre elementi; il primo indica lo stato della penna (SU, GIU,
CANCEPENNA o INVERPENNA) il secondo il colore attuale della penna. Infine il terzo
indica la tavolozza selezionata
MOSTRA PENNA [SU 1 0]
PULISCI CLEAN
Cancella tutti i disegni dallo schermo senza modificare la posizione della tartaruga.
Si può usare PULISCI per realizzare delle animazioni o delle procedure in cui si vuol
rappresentare un oggetto in movimento.
Si può infatti disegnare 1'oggetto, spostare la tartaruga, cancellarlo e ridisegnarlo
senza che la tartaruga debba ogni volta essere riposizionata, come accadrebbe usando il
comando PULISCISCHERMO.
PULISCI può anche servire per pulire la zona grafica prima di caricare un disegno da
dischetto con RECUPERA_DIS.
Cancella tutti i disegni dallo schermo e riporta la tartaruga al centro dello schermo.
Questo comando equivale alla sequenza di comandi PULISCI TANA.
RIEMPI FILL
Colora la figura all’ interno della quale si trova la tartaruga con il colore della penna.
Se la figura non é chiusa, colora tutto lo sfondo.
Per usare RIEMPI, prima di dare il comando si deve portare la tartaruga all’interno
della figura . Nel far ciò è prudente dare il comando SU per evitare che la traccia lasciata
entrando sia interpretata come un lato della figura stessa.
Provare il comando con la seguente procedura:
PER OUADRATO.PIENO :A
NASTARTA
RIPETI 4 [A :A D 90]
SU D 45 A :A / 2
RIEMPI
FINE
Appendice A: Glossario M-LOGO - LOGO IBM pag. 127
SCHIA . SCRUNCH
Il valore di SCHIA è il rapporto di schiacciamento (vedi ASSCHIA ) della
immagine. SCHIA può servire per conoscere, all’interno di una procedura, di quanti
punti all’incirca è composto il campo della tartaruga. Infatti mentre la dimensione
orizzontale è sempre di 320 punti quella verticale varia leggermente al variare del fattore
di schiacciamento (é uguale a 200 per SCHIA = 1).
SU PENUP (PU)
Fa sollevare la penna della tartaruga. Se la penna è in posizione alzata, durante i suoi
spostamenti la tartaruga non scrive sullo schermo. La procedura seguente serve per
visualizzare gli effetti di questo comando
PER LINEASPEZZATA :B
RIPETI 8 [ SU A :B / 16 GIU A :B /16]
FINE
XCOR XCOR
La funzione XCOR indica l’ascissa della posizione della tartaruga.
YCOR YCOR
La funzione YCOR segnala l’ordinata della posizione della tartaruga.
NOTE
1. Le forme abbreviate delle primitive, se esistono, sono riportate tra parentesi.
2. Gli argomenti dei comandi sono riportati assai spesso in forma abbreviata tra i segni
< e > . I significati delle abbreviazioni sono : num = numero, par = parola,
ogg = oggetto, arch = archivio.
3. Le primitive scritte in corsivo, a destra di quelle in grassetto su ogni riga di
intestazione, sono le parole corrispondenti del Logo-IBM nella versione in inglese.
4. Il contrassegno # indica che in quella istruzione va inserito il numero di argomenti
specificato. Se si vuole usare un numero maggiore, o minore, di argomenti, l’intera
istruzione va scritta entro parentesi tonde
Appendice A: Glossario M-LOGO - LOGO IBM pag. 129
NUMERI E OPERAZIONI
ARRO <num>
Questa funzione fornisce il numero intero ottenuto arrotondando il valore del suo
argomento. L’arrotondamento si effettua all’intero più vicino.
Esempi: ARRO 3.4999 = 3 ; ARRO 3.50001 = 4
ASSO <num>
Fornisce il valore assoluto del suo argomento. Esempi: ASSO 58 - 20 = 38 ; ASSO
44 - 51 = 7
CIFRE
Indica il numero delle cifre significative utilizzato nei calcoli numerici. Esempio
ASCIFRE 7 ; CIFRE 7
DIVISIONE <num>
DIVISIONE è l’operatore di divisione prefisso equivalente al segno di divisione “/”
comunemente usato in forma infissa. Esempio: DIVISIONE 32 5 = 32 / 5 = 6.4
GRADI <num>
Questa funzione converte in gradi il numero dei radianti forniti dall’argomento.
Esempio: GRADI PI = 180
LOG10 <num>
Questa funzione restituisce il logaritmo in base dieci del suo argomento.
Esempio: LOG10 100 = 2
PI
Il valore di PI è pi greco con una precisione pari al numero delle cifre significative
stabilito con ASCIFRE (max. 32).
Esempio: ASCIFRE 10 PI = 3.141592654
RADIANTI <num>
Converte i gradi in radianti. Per questa conversione si utilizzi la seguente procedura:
PER GRADI.IN.RADIANTI :A
RIPORTA :A / 180 * PI
FINE
Ecco l’esempio di una sua applicazione: GRADI.IN.RADIANTI 180 = 3.1415926
RIACASO RERANDOM
Azzera la sequenza di numeri pseudo-casuali utilizzati da ACASO. RIACASO
permette, cioè, di utilizzare più volte la stessa sequenza di numeri pseudo-casuali.
TAN
Il valore della funzione TAN è la tangente del suo argomento espresso in gradi
sessagesimali.
Esempio: TAN 56 = 1.4825602
PAROLE E FRASI
AS “RISPOSTA LEGGILISTA
IO SONO LA RISPOSTA
Digitando STAMPA :RISPOSTA Logo risponde con: IO SONO LA RISPOSTA
PROCEDURE E VARIABILI
CANCEFOGLIO
Cancella l’intero contenuto del foglio. Dopo questo comando il foglio non conterrà
più alcunchè e il contenuto precedente sarà perduto. Prima di utilizzare il foglio, per
editare una nuova procedura, è consigliabile ripulirlo dal precedente contenuto.
La dimensione del foglio può essere prescelta prima di entrare in Logo, con il
comando di sistema operativo SET FOGLlO=<num> che permette di scegliere il numero
di caratteri massimo e quindi permette di adattare la dimensione del foglio alle
esigenze.
MOSFOGLIO
Il comando rende visibile il foglio del Logo, cioè 1' ambiente dedicato alla manipo-
lazione dei testi delle procedure. Questo comando lavora in modo molto simile al
comando EDITA.
NASFOGLIO
Il comando NASFOGLIO nasconde il foglio senza alterare però in alcun modo il suo
contenuto.
PER <par> TO
Apre la scrittura del corpo di una procedura. Effettuata l’intera operazione la si deve
chiudere battendo la parola FINE.
Il primo argomento di PER diventerà il nome della procedura. Dopo il primo
argomento si possono scrivere altre parole precedute dal due punti, che diventeranno le
denominazioni delle variabili della procedura, come illustrato nell’esempio.
La primitiva PER ha una caratteristica particolare: essa vuole sempre una parola
letterale come argomento e accetta come tale anche una parola priva delle virgolette.
Sono corretti per esempio sia PER “CASA che PER CASA. Esempio:
PER CASA :LATO PER PARETE :LATO
PARETE RIPETI 4[A :LATO D 90]
SALIRE FINE
TETTO
FlNE
SPROC <par> PO
Scrive il testo della procedura indicata come argomento. Esempio:
Dopo aver definito la procedura TETTO :LATO, digitando SPROC “TETTO il Logo
mostrerà sul video il testo della procedura stessa, ossia:
PER TETTO :LATO
RIPETI 3[A :LATO D 120]
FINE
pag. 140 Manuale Logo
ARCHIVI E PERIFERICHE
COMANDI DI CONTROLLO
ASMODO <num>
La primitiva ASMODO permette di stabilIre lo stato del controllore del video. Il
controllore video è quella pane del calcolatore che stabilisce la modalità di presentazione
degli oggetti sul video. ASMODO permette, ad esempio, di ottenere delle righe di 80
caratteri sullo schermo colore o testi di più di quattro colori diversi.
Le modalità possibili sono sei e sono rappresentate dai numeri da 0 a 4, per quelle
corrispondenti allo schermo colore, e 7 per la modalità relativa allo schermo
monocromatico. L’ unica modalità grafica, cioè, in cui è possibile disegnare, è la
modalità 4.
Poiché le modalità da 0 a 4 sono applicabili solo allo schermo grafico, mentre la
modalità 7 si può applicare solo allo schermo monocromatico. Si deve prestare attenzio-
ne a non tentare di assegnare al controllore video una modalità relativa ad uno schermo
inesistente, ad esempio ASMODO 7, quando non si possiede uno schermo monocromatico.
Un errore di questo tipo rischia addirittura di far si che Logo “si perda” nella ricerca
di uno schermo inesistente rifiutando qualsiasi ulteriore comando e costringa a spegnere
la macchina per riacquistare il controllo.
Gli schermi grafici non a colori, come per esempio quello dell’ Olivetti M 24, sono
considerati analogi agli schermi a colori e non possono funzionare in modalità 7.
Alla partenza Logo è nella modalità 4, se a livello di sistema operativo si sta usando
lo schermo a colori. E’ in modo 7, se si sta invece usando lo schermo monocromatico.
Appendice A: Glossario M-LOGO - LOGO IBM pag. 143
ASPETTA <numero>
Il comando ASPETTA arresta i esecuzione del programma per la durata indicata dal
suo argomento. La durata è espressa in cicli di sistema, ognuno dei quali dura circa 50
millesimi di secondo.
L’ esempio seguente produrrà una pausa di circa 10 secondi prima di far ricomparire
il “?” ed aspettare il comando successivo.
ASPETTA 200
BREAK
Interrompe 1' esecuzione del programma e riporta il Logo al livello comandi.
Equivale a premere la combinazione di tasti <CTRL> <PAUSA>.
La differenza fra il comando BREAK ed il comando STOP è molto importante: STOP
riporta il controllo dalla procedura in corso di esecuzione alla procedura che ha chiamato
(che generalmente non è il livello comandi), mentre BREAK riporta sempre al livello
comandi.
CIAO . DOS
Questa primitiva provoca 1' uscita dal Logo e il ritomo al livello comandi del
sistema operativo.
Lasciando il Logo il calcolatore cercherà 1' interprete dei comandi del sistema
operativo (archivio COMMAND.COM) che dovrà quindi essere sul dischetto che si trova
nell’ unità disco da cui era stato effettuato il “boostrap” del sistema operativo.
CONTINUA
Questa primitiva permette di riprendere l'esecuzione di un programma dopo un’inter-
ruzione provocata dal comando PAUSA. Se però, nel corso della pausa, si è verificato un
errore, il comando CONTINUA produrrà il messaggio: non posso fare CONTINUA.
INDICE
Questa primitiva fornisce una lista di tutte le parole che Logo conosce. Faranno parte
della lista tutte le parole, inclusi i nomi delle primitive, delle procedure e delle variabili.
La lista presenta le parole in ordine alfabetico.
pag. 144 Manuale Logo
LIBERA
Esegue una pulizia della memoria eliminando gli oggetti che non hanno più utilità
e recuperando i nodi ad essi assegnati.
Il Logo esegue automaticamente questa operazione ogni volta che esaurisce la
memoria, ma, poiché impiega un certo tempo per eseguirla, è utile poter decidere il
momento, durante 1' esecuzione di un programma, in cui eseguire l’operazione di pulizia
della memoria.
È utile inoltre dare un comando LIBERA prima di un comando NODI, per conoscere
qual è effettivamente lo spazio di memoria che ci rimane disponibile; altrimenti il
numero di nodi liberi può risultare minore di quello reale, per via del fatto che alcune
zone di memoria possono risultare occupate mentre in realtà non lo sono più.
LISTA? LISTP
Il valore del predicato di LISTA? è VERO se il valore del suo argomento è una lista,
altrimenti è falso
AS "ELENCO [RINA LUCA, PIPPO] LISTA? :ELENCO VERO
AS "ELENCO "CARLO LISTA? :ELENCO FALSO
NODI
La funzione NODI fornisce il numero di nodi ancora liberi. Il Logo misura la memoria
in nodi, ognuno dei quali corrisponde a cinque celle di memoria (Bytes).
Il numero totale di nodi disponibili dipende dalla quantità di memoria installata e dal
numero di nodi occupati da parole e procedure.
Prima di eseguire la primitiva NODI è consigliabile eseguire il comando LIBERA per
evitare che Slogo consideri come occupati anche i nodi che contengono informazioni non
più valide.
NODI 3457 LIBERA NODI 6784
NONTRACCIARE (NTRA)
Annulla il comando TRACCIA. Dopo 1' esecuzione del comando NONTRACCIARE,
quando il Logo segue i comandi, questi non saranno più tracciati sullo schermo.
Ovviamente, se non era stato dato il comando TRACCIA, NONTRACCIARE non ha
nessun effetto (vedi TRACCIA).
Appendice A: Glossario M-LOGO - LOGO IBM pag. 145
NUMERO? NUMBERP
Il valore di NUMERO? è VERO se il suo argomento è un numero, altrimenti è FALSO.
AS "ELENCO [A B C D] MOSTRA NUMERO? :ELENCO FALSO
STAMPA NUMERO? 56 VERO
STAMPA NUMERO? 3456 VERO
QUI <parola>
Dà un nome ad una riga di istruzioni afflnchè il comando VAI possa identificarla.
L’ argomento deve essere una parola letterale non il risultato di una funzione; ad
esempio QUI “PINCOPALLINO è corretto mentre QUI RIPORTA PAROLA e QUI
PAROLA “ALFA “BETA non lo sono.
E’ bene dare alle etichette dei nomi comprensibili che servano anche a ricordare la
posizione della riga nella procedura.
PER LEGGINUMERO
QUI "NONNUMERO
AS "NUMERO LEGGIPAROLA
SE NON NUMERO? NUMERO [VAI “NONNUMERO]
RIPORTA :NUMERO
FINE
STOP STOP
Chiude 1'esecuzione della procedura corrente e trasferisce il controllo alla
procedura chiamante.
STOP ha lo stesso effetto di FINE, mentre FINE però serve a logo per segnare la fine
della procedura, e di conseguenza può comparire solo al termine della procedura, STOP
può essere usato quante volte si vuole per indicare che la procedura deve terminare al
verificarsi di una data condizione.
PER “SCRIVINUMERI.DA.A : A :B
SE A > :B [STOP]
STAMPA :A
SCRIVINUMERl.DA.A :A + 1 :B
FINE
TRACCIA
Serve per chiedere il tracciamento di procedure e primitive. TRACCIA, senza
argomento, traccia tutte le procedure e le primitive, con argomento solo quelle
specificate.
Tracciare una primitiva significa mostrare su schermo il suo nome e il valore
calcolato per gli argomenti subito prima della sua esecuzione.
Tracciare una procedura significa mostrare il suo nome e il valore calcolato per gli
argomenti all’ingresso, il suo nome e 1' eventuale valore riportato all’ uscita.
TRACCIA permette di seguire L'esecuzione di un programma per poter rintracciare
gli eventuali errori.
VAI <parola>
Ordina al programma di continuare 1'esecuzione dall’istruzione che segue QUI
<parola>. QUI <parola> deve trovarsi nella stessa procedura di VAI.
Si consiglia di limitare l’uso di questo comando perchè i programmi potrebbero
risultare piuttosto lenti.
COMANDI LOGO-IBM
Note:
Le forme abbreviate delle primitive, se esistono, vengono riportate tra parentesi. Gli argomenti dei comandi sono indicati in corsivo e
quelli tra parentesi sono facoltativi.
Il contrassegno # indica che nella istruzione va inserito il numero di argomenti specificato. Quando gli argomenti sono di più, o di
meno,l’intera istruzione deve essere scritta tra parentesi. Esempi: LISTA “A “B ; (LISTA “A) ; (LISTA “A “B “C)
Turtle Graphics
BACK (BK) n PEN
Moves turtle n steps back. Outputs pen state: list containing mode (PD, PU,
PE, PX), color, and palette.
BACKGROUND (BG)
Outputs number representing background color for PENCOLOR (PC)
graphics screen. Outputs number representing pen color.
Variables PRODUCT a b
#Outputs product of its inputs.
EDNS (package(list)) Stands for EDit NameS.
Starts Logo editor (containing variables in QUOTIENT a b
package(list)). Outputs a divided by b.
SIN a
Arithmetic Operations Outputs sine of a degrees.
COS a SUM a b
Outputs cosine of a degrees. # Outputs sum of its inputs.
DIFFERENCE a b
Outputs b subtracted from a. Defining and Modifying Procedures
PRECISION
Outputs the number of significant digits a number
is rounded to when used by Logo.
pag. 152 Manuale Logo
PADDLE n SETWRITEPOS n
Outputs rotation of dial on paddle n or position of Sets the file position for writing into the current
stick on joystick n. filespec.
SETREADPOS n SCREEN
Sets the file position for reading the current filespec. Outputs 1 or 2, depending on whether you are
working with one or two screens.
SETWRITE device/filespec
Sets the destination of inputs to PRINT, TYPE, SETCAPS pred
SHOW, PO, and POFILE. TRUE disables Caps Lock key; FALSE enables it.
SETCURSORpos
Puts cursor at the screen position specified by pos.
pag. 154 Manuale Logo
ERALL (package(list))
Erases everything (in (package(list). Property Lists
ARCHIVI DI GRAFICA
PROCEDURE E SOTTOPROCEDURE SEMPLICI
C O M P.Q U A
Contiene una chiamata di primo livello della sottoprocedura Contiene una chiamata di secondo livello.
fondamentale.
PER QUA.QUA
AVVIA
PER PIZZO RIPETI 4 [QUADRATO SU A 255 D 90
RIPETI 12 [NOVE.QUADRATI D 30] GIU]
FINE FINE
Contiene una invocazione di terzo livello: chiama Contiene due chiamate al primo livello: una chiama la
"Nove.quadrati", che chiama "Fila.quadrati" che, a sua volta, procedura fondamentale "Avvia" e l'altra chiama la
chiama "Quadrato" procedura fondamentale "Quadrato".
pag. 156 Manuale Logo
C O M P. T R I
PER FILA.TRI
S 90 PER TORRE3.TRI
RIPETI 3 [TRI A 30] TORRE2.TRI
FINE A 15 D 90 A 30
FINE
Con chiamata di primo livello.
Come sopra.
PER FILADES.TRI
D 30 PER VETRATA.TRI
RIPETI 4 [TRI D 60 A 30 S 60] RIPETI 3 [FILA.TRI D 210]
FINE FINE
Come sopra
Con chiamata di secondo livello.
.
PER FILAVETRATA
PER TORRE2.TRI RIPETI 3 [VETRATA.TRI S 90 A 90 D
D 90 90]
FILA.TRI FINE
D60 A 30 D 120 D 90
FILA.TRI Con chiamata di terzo livello.
FINE
PUPAZZO AULA
PER TESTA
A 30 S 90 A 5 PER TAVOLO
RIPETI 3 [D 90 A 10] A 30 D 90 A 25 D 90 A 30
D 90 A 5 TANA NT FINE
FINE
pag. 158 Manuale Logo
ESTATE BANDIERA
PER ROSSO
PER SPIGA SU VAXY [10 50] GIU ASCOL 2 RIEMPI
A 20 FINE
RIPETI 4 [SPIGHETTA A 5]
I 40 PER VERDE
FINE SU VAXY [50 50] GIU ASCOL 1 RIEMPI
SU TANA GIU
FINE
PER SPIGHETTA
D 45 A 8 I 8 S 90 A 8 I 8 D 45
FINE
AUTO
PER SEMINARE
D 90 SU A 16 GIU S 90
PER AUTO
FINE
SU VAX -70 GIU ASSFONDO 15 ASCOL 6
A 30 SCATOLA A 10 D 90 A 50
SU A 10 S 90 GIU RETTANGOLO
PER SOLE
SU S 90 A 10 GIU
RIPETI 10 [ARCO RAGGIO]
D 90 A 50 D 90 A 80 D 90 A 80
SU D 90 A 20 ASCOL 2 RIEMPI
SCATOLA A 10 D 90 A 35
FINE
CERCHIO A 60 CERCHIO A 35 TANA
SU A 10 ASCOL 3 RIEMPI VATANA GIU
FINE
PER ARCO
RIPETI 12 [A 1 D 3]
PER CERCHIO
FINE
RIPETI 72 [A 1.5 S 5]
FINE
PER RAGGIO
PER RETTANGOLO
SU S 90 A 5 GIU A 20
RIPETI 2 [A 40 D 90 A 60 D 90]
SU I 25 D 90 GIU
FINE
FINE
PER SCATOLA
RIPETI 4 [S 90 A 10]
FINE
Allegato B: Archivi e procedure pag. 159
F I G U R E. 1 F I G U R E. 2
PER CRISANTEMO :L
PER ESAGONO :L RIPETI 36 [QUADRILATERO :L D 360 / 36]
RIPETI 6 [A :L D 360 / 6] FINE
FINE
PER ELICA :L
RIPETI 2 [QUADRILATERO :L D 180]
PER FIGURA :L FINE
RIPETI 8 [QUADRATO :L D 45]
RIPETI 6 [ROMBO :L D 60]
FINE PER FARFALLA :L
RIPETI 3 [QUADRILATERO :L D 120]
FINE
PER FINESTRA :L
RIPETI 4 [QUADRATO :L S 90] PER FIORE :L
FINE RIPETI 18 [QUADRILATERO :L D 360 / 18]
FINE
PER GIRANDOLA :L
PER QUINQUA :L RIPETI 4 [QUADRILATERO :L D 90]
RIPETI 4 [RIPETI 4 [A :L D 90] D 90 A :L] FINE
FINE
PER MARGHERITA :L
PER RETTANGOLO :L RIPETI 12 [QUADRILATERO :L D 360 / 12]
RIPETI 2 [A :L D 90 A (:L * 3) D 90] FINE
FINE
PER QUADRILATERO :L
RIPETI 2 [A :L D 30 A :L D 150]
PER ROMBO :L FINE
RIPETI 2 [A :L D 60 A :L D 120]
FINE PER SOLE :L
RIPETI 72 [QUADRILATERO :L D 360 / 72]
FINE
PER STELLA :L
FINESTRA :L D 45 PER SUPERGIRANDOLA :L
FINESTRA :L S 45 RIPETI 6 [QUADRILATERO :L D 360 / 6]
FINE FINE
CERCHI F I G U R E. 3
PINOCCHI
PER GAMBA
S 180 RETTANGOLO 50 10 PER VISO
A 60 D 90 RETTANGOLO 20 10 A 10 S 90 I 15 A 15 D 90 A 15 S 90
D 90 A 60 D 90 SU I 10 GIU I 5 A 10 I 5 D 90 I 5
FINE A 10 I 5 S 90 SU A 10 GIU D 90 I 10
FINE
PER BRACCIO
GIU RETTANGOLO 40 10 PER SPOST3
A 40 RETTANGOLO 10 10 SU TANA GIU
FINE FINE
SORPRESE
VEDUTA
TERRENO
MURA QUADRATO
FACCIATA PORTONE RETTANGOLO
FINESTRA QUADRATO
CASA
TETTO TRIANGOLO
VEDUTA
RETTANGOLO
ALBERO
POLIGONO
STRUTTURA DELLA
ARCO PROCEDURA "VEDUTA
SOLE
RAGGIO
Allegato B: Archivi e procedure pag. 163
QUADR_2
OROLOGIO ALBERI
ANGOLO CAMPOFIO
PER SEGMENTO
GIU A 100 SU I 100 GIU
FINE
DIST.POS
CASACRE.CRE DIREZ
PER CASA :L PER DIR.OB
PARETE :L VERSI.POSSIBILI
SPO5T :L AS “VERSO LC
TETTO :L SE NON ELE? :VERSO [1 2 3 4] [DIR.OB]
FINE LUNGHEZZA
SE :VERSO = “1 [AS “DIR ACASO 90
PER CASACRESCE :L ASDIR - :DIR A :PASSI]
CASA :L SE :VERSO = “2 [ASDIR ACASO 90 A
SE :L > 60 [STOP] :PASSI]
PARTAVAN :L SE :VERSO = “3 [AS “DIR ACASO 90
CASACRESCE (:L + 10) ASDIR :DIR + 180 A :PASSI]
FINE SE :VERSO = “4 [AS “DIR ACASO 90
ASDIR 180 - :DIR A :PASSI]
PER DIMMI FINE
ST [DIGITA SU I 70 S 90 A 140 D 90 GIU
CASACRESCE 30] PER DIR.OR
FINE PT ST [SCEGLI IL VERSO : ]
ST [1 = DA DESTRA A SINISTRA]
ST [2 = DA SINISTRA A DESTRA]
AS “VERSO LC
PER PARETE :L SE NON ELE? :VERSO [1 2] [DIR.OR]
RIPETI 4 [A :L D 90] SE :VERSO = “1 [ASDIR -90]
FINE SE :VERSO = “2 [ASDIR 90]
LUNGHEZZA
PER PARETECRESCE :L GIU A :PASSI
PARETE :L FINE
PARETECRESCE (:L + 10)
FINE PER DIR.VE
PT ST [SCEGLI IL VERSO : ]
PER PARTAVAN :L ST [1 = DAL BASSO IN ALTO]
SU D 90 A (:L + 10) S 90 GIU ST [2 = DALL’ALTO IN BASSO]
FINE AS “VERSO LC
SE NON ELE? :VERSO [1 2] [DIR.VE]
PER PARTAVANCRESCE :L SE :VERSO = “1 [ASDIR 0]
PARTAVAN :L SE :VERSO = “2 [ASDIR 180]
PARTAVANCRESCE (:L + 10) LUNGHEZZA
FINE GIU A :PASSI
FINE
PER SPOST :L
A :L D 30 PER DIREZ
FINE PT ST [SCEGLI LA DIREZIONE : ]
ST [1 = ORIZZONTALE]
PER SPOSTCRESCE :L ST [2 = VERTICALE]
SPOST :L ST [3 = OBLIQUA]
SPOSTCRESCE (:L + 10) AS “D LC
SE NON ELE? :D [1 2 3] [DIREZ]
PER TETTO :L SE :D = “1 [DIR.OR]
RIPETI 3 [A :L D 120] SE :D = “2 [DIR.VE]
S 30 I :L SE :D = “3 [DIR.OB]
FINE FINE
PER TETTOCRESCE :L
TETTO :L
TETTOCRESCE (:L + 10)
FINE
Allegato B: Archivi e procedure pag. 167
MURO SPIRALI
PER ZAMPAS
A 30 S 90 A 20
FINE
pag. 168 Manuale Logo
ARCHIVI DI MATEMATICA
CERCHI
CALCOLI CONICHE
PER ADDIZIONI PER ABS :X
ASMODO 1 PT SE :X < O [RIPORTA - :X]
AS “A ACASO 20 [RIPORTA :X]
AS “B ACASO 20 FINE
(STAMPA [QUAL E’ LA SOMMA DI] :A “+
:B) PER ASSI
AS “RISULT LP NT ASSFONDO 1 ASCOL 2
VERIFICA :RISULT = SOMMA :A :B VAXY [155 0] TANA
SEV [STAMPA [RISPOSTA ESATTA]] VAXY [-155 O] TANA
SEF [STAMPA FRASE [RISPOSTA VAXY [0 125] TANA
SBAGLIATA. LA SOMMA E’] SOMMA :A VAXY [0 -125] TANA
:B] ASCOL 6
FINE FINE
FUN_TRIG
CONNETTI.VI
GRAF.RETTA
FUNZIONI MCD_MCM
PER CUBO :NUM PER MCD :A :B
RIPORTA :NUM * QUADRATO :NUM SE :A = :B [RIPORTA :A]
FINE SE :A < :B [RIPORTA MCD :B :A]
[RIPORTA MCD (:A - :B) :B]
PER ERONE :A :B :C FINE
AS “X :A + :B AS "Y :A + :C
AS “Z :B + :C
VERIFICA (OPPURE ( :X < :C) ( :Y < :B) ( PER MCD1 :A :B
:Z < A) VERIFICA :A > :B
SEV [RIPORTA FERMATI :A :B :C SEV [AS “A :A - :B]
[CAMBIA I DATI]] SEF [AS “B :B - A]
SEF [RIPORTA PROSEGUI :A :B :C] ST FRASE :A :B
FINE SE :A = :B [RIPORTA :A]
RIPORTA MCD1 :A :B
PER EUCLIDE :Nl :N2 FINE
SE :N1 = :N2 [RIPORTA :N1]
SE :N1<:N2 [RIPORTA EUCLIDE :N2 :N1]
[RIPORTA EUCLIDE (:N1 - :N2) :N2] PER MCD2 :LISTA
FINE SE 2 = CONTA :LISTA [RIPORTA MCD1
PRI :LISTA ULT :LISTA]
PER FATTORIALE :N AS “LISTA INPRI (MCD1 ELE 1 :LISTA
SE :N = 1 [RIPORTA 1] ELE 2 :LISTA) MENPRI MENPRI :LISTA
[RIPORTA :N * FATTORIALE (:N - 1)] RIPORTA MCD2 :LISTA
FINE FINE
PER FERMATI :A :B :C
STAMPA [DATI SBAGLIATI] PER MCDVELOX :A E
STAMPA [NON SI PUO’ DISEGNARE UN SE :A - (:B * INT :A / :B) = 0 [RIPORTA
TRIANGOLO] :B]
STAMPA (FRASE [CON LATI DI [RIPORTA MCDVELOX :B (:A - (:E * INT
LUNGHEZZA] :A :B :C) :A / :B))]
FINE FINE
HANOI
PER HANOI :N :A :B :C PER SPIEGAZIONI
ASMODO 2 PT VERIFICA :N = 1 ASMODO 2
SEV [SPOSTARE] SEF [RISOLUZIONE] STAMPA [ ]
FINE STAMPA [ATTIVARE LE PROCEDURE
CON L’INVOCAZIONE : ]
PER METTERE :L STAMPA [ ]
STAMPA (FRASE [METTERE IN] CAR 32 STAMPA [HANOI 3 (OPPURE : 4, 5. .....)
:L) “A “B “C]
FINE FINE
INDOVINA
ISOMETRI.E
PERIAREA AREAPERI
PER FINIRE
PT ST [CIAO ... ALLA PROSSIMA!!] [STOP]
FINE
Allegato B: Archivi e procedure pag. 175
TABELLIN.E
BIBLIOGRAFIA
Abelson H., Disessa A., La geometria della Tartaruga, Muzzio Edit., Padova, 1986.
Baldi E., Divizio M., Logo: potenza e semplicità, Gr. Ed. Jackson, Milano, 1984.
Bergamini M., Frascaroli C., Termanini D., Informatica con il Logo, Zanichelli,
Bologna, 1992
Bitter G. G., Watson N. R., Il Logo per l’Apple II, Tecniche Nuove, Milano, 1984.
Leone A, Moschini M., Con Logo insegno io, S. E. I., Torino, 1987.
Papert S., Mind storms: bambini, computers e cretività, Ediz. Emme, Milano, 1984.
INDICE
PREFAZIONE ( 5 )
Il Logo nella didattica di base ( 5 )
ELEMENTI INTRODUTTIVI ( 9 )
Il sistema di elaborazione di dati ( 12 )
Scrivere con la tastiera
LA TARTARUGA E LO SCHERMO ( 15 )
Entriamo nel mondo del Logo ( 15 )
La Tartaruga esplora lo schermo ( 16 )
Schiacciamento ( 21
Dai pixel alle linee ( 23 )
Il colore ( 23 )
Il Logo conosce l’aritmetica ( 24 )
Per uscire dal Logo ( 24 )
LE PROCEDURE E IL FOGLIO ( 42 )
Primitive e procedure( 42 )
Come dare il nome a una procedura( 42 )
pag. 178 Manuale Logo
PROCEDURE E VARIABILI ( 59 )
Che cosa è un argomento variabile ( 59 )
Argomento variabile e argomento attuale ( 60 )
Procedure a livello sempre più generale ( 61 )
Procedure con più argomenti variabili ( 62 )
Esempi di procedure con una o più variabili ( 64 )
Figure complesse con la procedura Quadrilatero ( 65 )
Nomi e valori delle variabili ( 66 )
Tre modi per definire variabili ( 67 )
Variabili globali ( 67 )
Variabili locali ( 68 )
PROCEDURE RICORSIVE ( 83 )
Introduzione alla ricorsività ( 83 )
Procedure che non si fermano “mai” ( 83 )
Che cosa è la ricorsività ( 83 )
Come fermare una procedura ricorsiva ( 84 )
Esempi di procedure ricorsive ( 85 )
Ricorsività e variazione di argomenti ( 86 )
Variare argomenti in procedure ricorsive ( 86 )
Procedure con variazione di argomento ( 87 )
BIBLIOGRAFIA ( 176 )
INDICE ( 177 )