+ All Categories
Home > Documents > 17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base...

17-lezione17rossano/DIDATTICA/MDAMS-0203/lezione18.pdf• Es.: [Ciao Mondo!] 12 Informatica di Base...

Date post: 15-Mar-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
30
1 Informatica di Base Informatica di Base -- -- R.Gaeta R.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).
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.


Recommended