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 ] Informatica di Base -- R.Gaeta 1 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 Informatica di Base -- R.Gaeta 2 Definire una procedura: il nome • To nome_procedura – Ad esempio: definiamo la funzione quadrato: Informatica di Base -- R.Gaeta 3 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. Informatica di Base -- R.Gaeta 4 Modificare una procedura: l’editor • Edit “nome_procedura – Ad esempio: Edit “quadrato Informatica di Base -- R.Gaeta 5 Chiamare una procedura Definizione • Scrivere il nome – Esempio: quadrato Chiamata Informazione di MSWLogo sulla definizione Risultato della chiamata Invocato Editor della procedura 6 Esercizio • Dopo aver definito la procedura quadrato, ottenere il disegno riportato in figura: Informatica di Base -- R.Gaeta 7 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. Informatica di Base -- R.Gaeta 8 Due quadrati concentrici II Suddivione in moduli (procedura principale): 1. Quadrato1 2. Posizionamento 3. Cambia_in_rosso 4. Quadrato2 5. My_home Informatica di Base -- R.Gaeta 9 Definizione: quadrato1 to quadrato1 repeat 4 [ fd 100 rt 90 ] end Informatica di Base -- R.Gaeta 10 Definizione: quadrato2 to quadrato2 repeat 4 [ fd 50 rt 90 ] end Informatica di Base -- R.Gaeta 11 Definizione: posizionamento to posizionamento pu fd 25 rt 90 fd 25 lt 90 pd end Informatica di Base -- R.Gaeta 12 Definizione: cambia_in_rosso to cambia_in_rosso setpencolor (list 255 0 0) end Informatica di Base -- R.Gaeta 13 Definizione: my_home to my_home pu home pd setpencolor (list 0 0 0) end Informatica di Base -- R.Gaeta 14 Definizione: procedura principale to main quadrato1 posizionamento cambia_in_rosso quadrato2 my_home end Informatica di Base -- R.Gaeta 15 Esecuzione del programma Battere main nella Commander Window di Logo. Informatica di Base -- R.Gaeta 16 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 Informatica di Base -- R.Gaeta 17 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; Informatica di Base -- R.Gaeta 18 Osservazione • È consigliabile scrivere delle procedure che contengano sempre la chiamata alla procedura my_home all’inizio ed alla fine. • Esempio: to quadrato my_home repeat 4 [ fd 100 rt 90 ] my_home end Informatica di Base -- R.Gaeta 19 Esercizio 1 • Disegnare 4 quadrati concentrici come nella figura sottostante: Informatica di Base -- R.Gaeta 20 Esercizio 2 • Disegnare 3 sottostante: cerchi concentrici come nella figura Informatica di Base -- R.Gaeta 21 Esercizio 3 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 22 Esercizio 4 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 23 Esercizio 5 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 24 Esercizio 6 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 25 Esercizio 7 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 26 Esercizio 8 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 27 Esercizio 9 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 28 Esercizio 10 • Disegnare la figura sottostante: Informatica di Base -- R.Gaeta 29