logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è...

41
1 Informatica di Base Informatica di Base -- -- R.Gaeta R.Gaeta Logo Logo è un linguaggio di programmazione essenzialmente didattico; È orientato alla creazione di grafica vettoriale, ma può essere usato per fare qualsiasi tipo di programma; MSWLogo è una versione che funziona in ambiente Microsoft. URL sito: http://www.softronix.com/logo.html (Setup Kit)

Transcript of logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è...

Page 1: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

1

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Logo

• Logo è un linguaggio di programmazione essenzialmente didattico;

• È orientato alla creazione di grafica vettoriale, ma può essere usato per fare qualsiasi tipo di programma;

• MSWLogo è una versione che funziona in ambiente Microsoft.

• URL sito:

http://www.softronix.com/logo.html (Setup Kit)

Page 2: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

2

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Programmare una tartaruga

• MIT, anni ‘50: primi linguaggi per programmare piccoli robot (dalla forma di tartaruga);

• Seymour Papert, anni ‘60: introduce un linguaggio per fare programmare i robot dai bambini. Nasce il Logo.

• La tartaruga è rappresentata in MSWLogo da un triangolo:

Page 3: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

3

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

L’interfaccia di MSWLogo

Tartarugain posizioneiniziale (home)

Area di lavoro

Page 4: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

4

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

L’interfaccia di Logo

Linea comandi Logo

“Storia” comandi eseguiti

Page 5: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

5

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

I primi comandi

• Forward n (fd); (n è un numero)• Back n (bk); (idem)• Left a (lt); (a è un angolo espresso in gradi)• Right a (rt); (idem)• Home; • ClearScreen (cs);

Page 6: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

6

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Disegnare un quadrato

Suddivisione del problema in sottoproblemi:

1. Disegnare il primo lato di 100 pixel;

2. Disegnare il secondo lato di 100 pixel;

3. Disegnare il terzo lato di 100 pixel;

4. Disegnare il quarto lato di 100 pixel;

5. Tornare alla condizione di partenza.

Page 7: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

7

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Un primo esempio: un quadrato

Page 8: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

8

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Il programma per disegnare un quadrato

�� ���

�� ��

�� ���

�� ��

�� ���

�� ��

��

Page 9: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

9

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Esercizi

1. Costruire un quadrato partendo dal lato più a destra (suggerimento: la costruzione avverrebbe in senso antiorario);

2. Disegnare un rettangolo con la base lunga 100 pixel e l’altezza lunga 25 pixel;

3. Disegnare un triangolo equilatero (i.e., ha tutti i lati uguali ma anche tutti gli angoli uguali a 60 gradi);

4. Disegnare un triangolo isoscele;5. Disegnare un pentagono;

Page 10: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

10

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

180° – 60° = 120°

120°

fd 100

rt 120fd 100

fd 100

rt 120

Osservazione

Page 11: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

11

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Altri comandi importanti

• PenUp – (PU);• PenDown – (PD);• PenErase – (PE);• PenPaint – (PPT);• SetPenColor (list Red Green Blue);• Bye.

Page 12: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

12

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici

Esercizio:

Disegnare i quadrati

riportati in figura

Page 13: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

13

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici

Suddivisione del problema in sottoproblemi:

1. Disegnare il primo quadrato (lato di 100 pixel);

2. Posizionarsi per il secondo quadrato;

3. Cambiare colore (rosso);

4. Disegnare il secondo quadrato (lato di 50 pixel);

5. Tornare alla condizione di partenza.

Page 14: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

14

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici

Primo quadrato:

fd 100rt 90fd 100rt 90fd 100home

Page 15: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

15

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici

pufd 25rt 90

fd 25pd

setpencolor (list 255 0 0)cambiamo colore:

Page 16: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

16

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Altri Colori

Page 17: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

17

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici

Secondo quadrato:

fd 50lt 90fd 50lt 90fd 50lt 90fd 50lt 90

Ritorno a casa:

puhomepd

Page 18: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

18

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Il programma per disegnare due quadratifd 100rt 90fd 100rt 90fd 100homepufd 25rt 90fd 25pdsetpencolor (list 255 0 0)fd 50lt 90fd 50lt 90fd 50lt 90

fd 50lt 90puhomepd

Page 19: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

19

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Cicli iterativi: Repeat

Sintassi: Repeat n [ comando1 comando2 …]

Semantica:per un numero n di volte, vengono eseguiti i comandi tra parentesi quadre.

Page 20: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

20

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Esempi di cicli

• Disegnare un triangolo equilatero: repeat 3 [ fd 100 rt 120 ]

• Disegnare un pentagono: repeat 5 [ fd 100 rt 72 ]

• Disegnare un rettangolo 100x25:repeat 2 [ fd 100 rt 90 fd 25 rt 90 ]

Page 21: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

21

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Esercizi

• Disegnare un cerchio (sembra assurdo, ma…);

• Capire il seguente programma e cosa disegna prima ancora di eseguirlo:

repeat 2 [ fd 100 pu rt 90 fd 25 rt 90 pd ]rt 90 repeat 2 [ fd 25 pu lt 90 fd 100 lt 90 pd ]lt 90

Page 22: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

22

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Funzioni e procedure

• Buona programmazione:– Semplificare la leggibilità del codice;– Ridurre la complessità;– Creare moduli per ogni sottoproblema;

• Per ogni modulo, scrivere:– Una procedura, oppure– Una funzione (se si vuole un risultato in output).

Page 23: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

23

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Funzioni e procedure

• Un programma viene ad essere suddiviso in:– una procedura principale (main) richiamata appena si

esegue il programma– una serie di procedure secondarie (i moduli) richiamate

per essere eseguite dalla procedura principale o da altre procedure secondarie

Page 24: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

24

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Procedura

• Per ogni procedura abbiamo:– Un nome (ad esempio: quadrato)– Un codice (ad esempio: repeat 4 [ fd 100 rt 90 ] )

• Una procedura viene chiamata utilizzando il suo nome.• Prima di poter chiamare una procedura, dobbiamo

definirla.

Page 25: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

25

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definire una procedura: il nome

• To nome_procedura– Ad esempio: definiamo la funzione quadrato:

Page 26: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

26

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definire una procedura: il codice

• Scrivere il codice nella finestra che appare:– Ad esempio: repeat 4 [ fd 100 rt 90 ]

• Quando il codice è finito, battere End e poi cliccare su OK.

Page 27: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

27

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Modificare una procedura: l’editor

• Edit “nome_procedura– Ad esempio: Edit “quadrato

Page 28: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

28

Chiamare una procedura

• Scrivere il nome– Esempio: quadrato

Definizione

Informazione diMSWLogo sulladefinizione

Invocato Editor della procedura

Chiamata

Risultato della chiamata

Page 29: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

29

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici II

Suddivione del problema in sottoproblemi:

1. Disegnare il primo quadrato (lato di 100 pixel);

2. Posizionarsi per il secondo quadrato;

3. Cambiare colore (rosso);

4. Disegnare il secondo quadrato (lato di 50 pixel);

5. Tornare alla condizione di partenza.

Page 30: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

30

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Due quadrati concentrici II

Suddivisione in moduli (procedura principale):

1. Quadrato1

2. Posizionamento

3. Cambia_in_rosso

4. Quadrato2

5. My_home

Page 31: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

31

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: quadrato1

to quadrato1repeat 4 [ fd 100 rt 90 ]

end

Page 32: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

32

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: quadrato2

to quadrato2repeat 4 [ fd 50 rt 90 ]

end

Page 33: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

33

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: posizionamento

to posizionamentopufd 25rt 90fd 25lt 90pd

end

Page 34: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

34

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: cambia_in_rosso

to cambia_in_rossosetpencolor (list 255 0 0)

end

Page 35: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

35

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: my_home

to my_homepuhomepdsetpencolor (list 0 0 0)

end

Page 36: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

36

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Definizione: procedura principale

to mainquadrato1posizionamentocambia_in_rossoquadrato2my_home

end

Page 37: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

37

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Esecuzione del programma

Battere main nella Commander Window di Logo.

Page 38: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

38

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Ricapitolando: un passo avanti verso……

• Possibilità di generalizzare un programma: se volessi disegnare un quadrato di 125 e uno interno di 75 mi basta modificare le procedure quadrato1 e quadrato2

• Suddivisione in moduli (procedure) che risolvono in maniera indipendente i sottoproblemi

• In maniera indipendente, i.e., la modifica di una procedura non deve influire sulle altre

• A tal fine è bene fare riferimento alle coordinate assolute

Page 39: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

39

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Salvare e Caricare un programma

• Save “nome_file.lgo– Esempio: save “due_quadrati.lgo

• Load “nome_file.lgo– Esempio: load “due_quadrati.lgo

• Oppure:– File > Save as– File > Load

Page 40: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

40

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Esercizio

Disegnare la casa riportata in figura.

Ricordare di: 1. Suddividere il problema

in sottoproblemi;2. Scrivere una procedura

per ogni modulo;3. Scrivere una procedura

principale;

Page 41: logo - di.unito.itrossano/DIDATTICA/MDAMS-0203/lezione17.pdf · Logo. • La tartaruga è rappresentata in MSWLogo da un triangolo: 3 Informatica di Base --R.Gaeta L’interfaccia

41

Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta

Osservazione

• È consigliabile scrivere delle procedure che contengano sempre la chiamata alla procedura my_home all’inizio ed alla fine.

• Esempio:

to quadrato my_homerepeat 4 [ fd 100 rt 90 ]my_home

end