17-lezione17rossano/didattica/mdams-0203/lezione18.pdf• es.: [ciao mondo!] 12 informatica di base...
TRANSCRIPT
![Page 1: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/1.jpg)
1
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di valori alle procedure
• Si distingue tra procedure di sistema e procedure definite dall’utente.
• Es. forward 70: il 70 è un valore passato all’argomento della procedura forward di sistema;
• Anche le procedure definite dall’utente possono avere argomenti (parametri).
![Page 2: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/2.jpg)
2
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di valori alle procedure
Definizione di una procedura con un argomento (parametro):
To nome_procedura :nome_argomento…end
![Page 3: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/3.jpg)
3
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di valori alle procedure
Esempio:
To quadrato :l_lato
Repeat 4 [ forward :l_lato rt 90 ]end
![Page 4: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/4.jpg)
4
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Due quadrati concentrici III
La procedura main può essere riscritta così:
Quadrato 100
Posizionamento
Cambia_in_rosso
Quadrato 50
My_home
![Page 5: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/5.jpg)
5
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di più valori
Esempio:
to rettangolo :base :altezzarepeat 2 [ fd :base rt 90 fd :altezza rt 90 ]
end
rettangolo 100 50
100 50
![Page 6: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/6.jpg)
6
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di più valori
Esempio:
to rettangolo :base :altezzarepeat 2 [ fd :base rt 90 fd :altezza rt 90 ]
end
rettangolo 100 50
100 50
100
![Page 7: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/7.jpg)
7
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Passaggio di più valori
Esempio:
to rettangolo :base :altezzarepeat 2 [ fd :base rt 90 fd :altezza rt 90 ]
end
rettangolo 100 50
100 50
100 50
![Page 8: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/8.jpg)
8
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
SetPos
• Sintassi:SetPos (list :X :Y)
• Semantica:Posiziona la tartaruga nel punto di coordinate (X, Y).
• Utile per riferirsi a delle coordinate assolute• Bisogna sollevare la penna e ricordarsi di riposizionarla
![Page 9: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/9.jpg)
9
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Procedure• Si può definire una procedura che usa altre procedure:
�� ����������
��
���
�������
�� ���
�������
���
• Operazioni di inizializzazione, e.g., cs home• Commenti al codice e nomi significativi!!!!!!!!!• sintassi ; commento
�� ����������
������������� ���
��
���
�������
�� ���
�������
���
![Page 10: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/10.jpg)
10
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esercizi
• Riscrivere la procedura quadrato utilizzando soltanto la procedura rettangolo vista prima;
• Riscrivere la procedura casa con la possibilità di specificare le seguenti quantità:– Altezza e base della casa– Altezza e base della porta– Dimensione della finestra (un quadrato)– Altezza e base del tetto
![Page 11: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/11.jpg)
11
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Valori Alfanumerici
• Finora abbiamo utilizzato solo valori numerici;• Se vogliamo usare valori alfanumerici (caratteri e
numeri), usiamo le stringhe;• In Logo le stringhe si delimitano con le parentesi
quadre;• Es.: [Ciao Mondo!]
![Page 12: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/12.jpg)
12
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Scrittura testi sullo schermo
• Label stringa– Esempio: Label [Ciao mondo!]– Nota: La scritta segue la direzione attuale della tartaruga
• Label numero– Esempio: Label 5
![Page 13: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/13.jpg)
13
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio
Rt 45
Label [Ciao Mondo!]
![Page 14: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/14.jpg)
14
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Variabili
• Le variabili permettono di memorizzare valori;• Sono identificate da un nome;• Sono la struttura di dati più elementare;• Useremo valori dei seguenti tipi:
– Numeri;– Stringhe;
![Page 15: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/15.jpg)
15
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Operazioni con le variabili
• Scrittura (assegnazione) – si assegna alla variabile un valore; – Sintassi: make “nome_variabile valore
• Lettura (accesso) – si utilizza il valore memorizzato dalla variabile;– :nome_variabile
• Vi ricorda qualcosa?
![Page 16: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/16.jpg)
16
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Semplice esempio
to scrivi_numeromake “x 10label :x
end
![Page 17: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/17.jpg)
17
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Semplice esempio (cont.)
rt 90scrivi_numero
![Page 18: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/18.jpg)
18
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Assegnazione di un valore ad una variabile
• Due modi:– Make “nome_variabile valore– Make “nome_variabile espressione
• Un’espressione può essere composta da:– Una variabile;– Un’espressione aritmetica tra variabili e numeri;– Una funzione.
![Page 19: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/19.jpg)
19
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempi
; assegna ad X il valore 10x5, ovvero 50
Make “X 10*5 ; assegna ad Y il valore contenuto in X più 4, ; ovvero 54Make “Y :X + 4; assegna ad Y il valore già contenuto in Y; più 1, ovvero 55Make “Y :Y + 1
![Page 20: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/20.jpg)
20
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Type e Print
• Sintassi:– Type Variabile (o Espressione)– Print Variabile (o Espressione)
• Semantica:– Il contenuto della variabile (o il risultato dell’espressione)
vengono mostrati in output sulla Commander Window
• Differenza:– Type non manda a capo– Print manda a capo
![Page 21: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/21.jpg)
21
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Programma di Input/Output(input tramite parametri)
To somma :X :Y :Zmake “Risultato :X + :Y + :ZRt 90label :Risultato; usare print se si vuole visualizzare il risultato; sulla commander window.
end
![Page 22: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/22.jpg)
22
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Input utente
È possibile usare una GUI (graphical user interface) per chiedere l’immissione di dati da parte dell’utente:
questionbox [UserInput][testo etichetta]
Vedere questa funzionalità dall’help di MSWLogo
![Page 23: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/23.jpg)
23
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esercizio1
Quadrati concentrici:Scrivere un programma che faccia disegnare alla
tartaruga un numero di quadrati concentrici scelto dall’utente (che fornirà input alla procedura principale tramite parametri).
![Page 24: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/24.jpg)
24
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio con 50 quadrati
Esempio:50 quadrati
![Page 25: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/25.jpg)
25
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Istruzioni condizionali: if
• Due tipi di flusso d’esecuzione di un programma:– Sequenziale;– Ciclica (repeat);
• Esiste anche il flusso alternativo al verificarsi di una certa condizione: – istruzioni if… then… else
![Page 26: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/26.jpg)
26
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
If
Sintassi: If condizione [ istruzioni ]
Semantica:Se la condizione è vera, allora esegui le istruzioni nella lista.
![Page 27: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/27.jpg)
27
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio
To maggiorenne :anniType [Hai ]Type :anniPrint [ anni]If :anni >= 18 [ print [Sei maggiorenne]]
End
![Page 28: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/28.jpg)
28
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Ifelse
Sintassi: Ifelse condizione [ istruzioni1 ] [ istruzioni2 ]
Semantica:Se la condizione è vera, allora esegui le istruzioni nella prima lista, altrimenti esegui le istruzioni nella seconda lista.
![Page 29: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/29.jpg)
29
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esempio
…Ifelse :anni >= 18 [
print [Sei maggiorenne]][print [Sei minorenne]]
![Page 30: 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base --R.Gaeta Scrittura testi sullo schermo •Label stringa – Esempio: Label [Ciao](https://reader036.vdocumenti.com/reader036/viewer/2022071419/61171be4d0136f67d7159ca6/html5/thumbnails/30.jpg)
30
Informatica di Base Informatica di Base ---- R.GaetaR.Gaeta
Esercizio
• Dati due numeri (inseriti dall’utente), trovare il massimo tra i due e mostrarlo in output;
• Dati tre numeri (inseriti dall’utente), trovare il massimo.
• Dati un numero indefinito di numeri, restituire il massimo.