2016 03 01 - incontro - cicli e procedure - il progetto pong.pdf
TRANSCRIPT
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
1/62
FONDAMENTI DI AUTOMAZIONE E PROGRAMMAZIONEa.a. 2015-2016
LA PROGRAMMAZIONE: CICLI e PROCEDURE
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
2/62
Lo scopo della programmazione
• Programmare vuol dire fornire istruzioni in maniera il più possibile
efficiente ad un computer per
• creare un sistema interattivo che risponda in modo adeguato
alle possibili interazioni di un utente
• Le istruzioni fornite al computer devono essere in numero finito ,
chiare e non ambigue , devono essere quindi un algoritmo ; un
algoritmo eseguibile da un computer è un programma
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
3/62
Lo scopo della programmazione
• Programmare vuol dire fornire istruzioni in maniera il più possibile
efficiente ad un computer per
• creare un sistema interattivo che risponda in modo adeguato
alle possibili interazioni di un utente
• Le istruzioni fornite al computer devono essere in numero finito ,
chiare e non ambigue , devono essere quindi un algoritmo ; un
algoritmo eseguibile da un computer è un programma
L’insieme degli script di un progetto Scratch costituisce un algoritmo?
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
4/62
Lo scopo della programmazione
• Il numero di blocchi di un qualunque script di Scratch , e quindi
di un qualunque progetto, è ovviamente finito (altrimenti
impiegheremmo un tempo infinito a creare un progetto…)
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
5/62
Lo scopo della programmazione
• Il significato di ciascuno dei blocchi di Scratch è chiaro e ben
definito: ad esempio i blocchi della categoria movimento fanno
spostare e controllano il movimento dello sprite. Per ogni blocco è
possibile avere una breve spiegazione cliccandolo con il tasto
destro e selezionando "aiuto".
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
6/62
Lo scopo della programmazione
• Il significato di ciascuno dei blocchi di Scratch è non ambiguo : il
funzionamento di ogni blocco è sempre lo stesso, ogni volta che lo
usiamo in un qualunque script.
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
7/62
Lo scopo della programmazione
• Programmare vuol dire fornire istruzioni in maniera il più possibile
efficiente ad un computer per
• creare un sistema interattivo che risponda in modo adeguato
alle possibili interazioni di un utente
• Le istruzioni fornite al computer devono essere in numero finito ,
chiare e non ambigue , devono essere quindi un algoritmo ; un
algoritmo eseguibile da un computer è un programma
L’insieme degli script di un progetto Scratch costituisce un algoritmoe quindi è un programma
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
8/62
I concetti dell’Informatica
[pong-lezione-iniziale.sb]
Programma Pong
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
9/62
I concetti dell’Informatica
[pong-cicli-base.sb]
Un algoritmo è un procedimentocomposto di unnumero finito dipassi chiari ( non
ambigui ) cherisolve un
determinatoproblema…
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
10/62
I concetti dell’Informatica
[pong-lezione-iniziale.sb]
Algoritmo
… e il programma Pong è perciò unalgoritmo in quanto risolve il problema
“ Pong ” definendo chiaramente ilcomportamento degli sprite attraverso un
numero finito di blocchi il cui significato èchiaro per il computer ( non ambigui ).
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
11/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Nello script dello Stage sono presentimolte ripetizioni di due soli blocchi (iblocchi PASSA A SFONDO SEGUENTE e
ATTENDI SECONDI )
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
12/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Nello script dello Stage sono presentimolte ripetizioni di due soli blocchi (iblocchi PASSA A SFONDO SEGUENTE e
ATTENDI SECONDI )
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
13/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Confrontiamolo con le macro di Office eLibreOffice …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
14/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Quando registriamo una macro, nonvogliamo registrare la stessa operazione
più e più volte (altrimenti nonrisparmieremmo molto tempo )…
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
15/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Selection.MoveRight Unit:=wdWord, Count:=1Selection.MoveRight Unit:=wdWord, Count:=1,…Selection.CutSelection.MoveRight Unit:=wdCellSelection.PasteAndFormat (wdPasteDefault)Selection.MoveRight Unit:=wdCellSelection.HomeKey Unit:=wdCharacter, Count:=1
Da un’operazione su una riga…
…registriamo quindi leoperazioni da eseguire su una
sola riga …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
16/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
For i = 1 To Selection.Tables(1).Rows.Count
Selection.MoveRight Unit:=wdWord, Count:=1Selection.MoveRight Unit:=wdWord, Count :=1,…Selection.CutSelection.MoveRight Unit:=wdCellSelection.PasteAndFormat (wdPasteDefault)Selection.MoveRight Unit:=wdCellSelection.HomeKey Unit:=wdCharacter, Count:=1
Next
… a un’operazione su più righe
… e poi facciamo in modo chevengano ripetute automaticamente
per tutte le righe …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
17/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
For i = 1 To Selection.Tables(1).Rows.Count
Selection.MoveRight Unit:=wdWord, Count:=1Selection.MoveRight Unit:=wdWord, Count:=1,…Selection.CutSelection.MoveRight Unit:=wdCellSelection.PasteAndFormat (wdPasteDefault)Selection.MoveRight Unit:=wdCellSelection.HomeKey Unit:=wdCharacter, Count:=1
Next
… a un’operazione su più righe
… usando nel Basic il ciclo for/next
… e poi facciamo in modo chevengano ripetute automaticamente
per tutte le righe …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
18/62
Progetto Pong
La situazione daricostruire…
Vediamo come sia possibile realizzarelo stesso tipo di “ risparmio ” in
Scratch . Lo vedremo proprio con ilprogetto Pong.
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli-base.sbhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli-base.sb
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
19/62
RImodificare gli script del progetto…
GARA…!
[pong-lezione-iniziale.sb]
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
20/62
… tornando ai valori iniziali
GARA…!
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
21/62
Dal programma Pong originale …
[pong-lezione-iniziale.sb]
Programma Pong
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
22/62
… ad un programma Pong più semplice da modificare
[pong-cicli e procedure-finale.ypr]
Programma Pong
più semplice damodificare
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
23/62
Un programma Pong più semplice da modificare
La differenza è in
questi script
La differenza è in
questi script
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
24/62
La differenza è in questi script…
Un programma Pong più semplice da modificare
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
25/62
La differenza è in questi script…
Un programma Pong più semplice da modificare
Cosa sono…?
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
26/62
Torniamo agli script originali…
[pong-cicli-iniziale.sb]
Dal programma Pong originale …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
27/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente in Scratch
Nello script dello Stagedel progetto Pong
abbiamo visto che èpresente una
sequenza di operazioniche si ripetono
identiche una di
seguito all’altra
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
28/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente in Scratch
Questa sequenza di dueblocchi…
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
29/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente in Scratch
…che si ripete per 32volte
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
30/62
Fornire istruzioni in maniera efficiente in Scratch
Lo scopo della programmazione
In che modol'abbiamo abbreviata?
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
31/62
I concetti dell’Informatica
Anche in questocaso, come eraaccaduto per il
blocco PER SEMPRE,siamo passati da
una sequenza -in cuile azioni vengono
eseguite dalla primaall’ultima in basso- …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
32/62
I concetti dell’Informatica
…ad un ciclo , in cuidopo aver eseguitol’ultima operazionedel ciclo si torna di
nuovo ad eseguire la prima . Le azioni delciclo in questo caso
non vengono ripetute per sempre, ma
vengono ripetute perun preciso numero di
volte , indicatonell'argomento del
blocco RIPETI VOLTE
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli-finale.sbhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli-finale.sb
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
33/62
I concetti dell’Informatica
Usando i cicli possiamoeliminare le ripetizioni di
sequenze identiche diblocchi, purchè DISPOSTE
UNA DIETRO L’ALTRA ,senza cioè ulteriori
blocchi tra unaripetizione e l' altra
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
34/62
I concetti dell’Informatica
Ciclo
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
35/62
I concetti dell’Informatica
Ciclo
Rimpiazziamo di nuovo0,1 con 0,2:
• quanto tempoimpieghiamo? • possiamo commettere
errori?
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
36/62
I concetti dell’Informatica
Ciclo
Grazie ai cicli possiamo…• ridurre la lunghezzadell’algoritmo• correggere più velocementeuna lunga ripetizione• commettere meno erroriquando dobbiamo modificareuna lunga ripetizione• capire meglio la struttura diun algoritmo (utile permodificare un algoritmo scrittoda noi o da qualcun altro)
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
37/62
Lo scopo della programmazione
Fornire istruzioni in maniera efficiente
Un tipo di “spreco” similelo ritroviamo negli script
dei mattoncini delprogetto Pong …
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
38/62
Fornire istruzioni in maniera efficiente
Lo scopo della programmazione… in cui la stessa sequenza di blocchi viene usata piùvolte ma NON UNA DIETRO L’ALTRA, spesso in sprite
diversi (in questo caso per mattoncini diversi)
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
39/62
Fornire istruzioni in maniera efficiente
Lo scopo della programmazione
Sub arial16grassetto()Selection.Font.Name = "Arial"Selection.Font.Size = 16Selection.Font.Bold = wdToggleEnd Sub
Proprio per evitare questasituazione (dover ripetere le
stesse sequenze di operazioni piùe più volte) nel Basic abbiamousato le macro : una macro
raccoglie infatti al suo internomolte operazioni che possiamo
rieseguire in molti punti diversi diuno stesso documento
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
40/62
Lo scopo della programmazione
La sequenza di operazioni
della macro vieneidentificata attraverso ilnome della macro (in questo
caso arial16grassetto )
Sub arial16grassetto()Selection.Font.Name = "Arial"Selection.Font.Size = 16Selection.Font.Bold = wdToggleEnd Sub
Fornire istruzioni in maniera efficiente
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
41/62
Fornire istruzioni in maniera efficiente
Lo scopo della programmazione
Sub arial16grassetto()Selection.Font.Name = "Arial"Selection.Font.Size = 16Selection.Font.Bold = wdToggleEnd Sub
Lo stesso tipo di strategia
(assegnare un nome ad unasequenza di operazioni)possiamo adottarla anche in
un linguaggio a blocchi.Ma non in Scratch .
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
42/62
BYOB
Per dare un nome a delle sequenze di
operazioni ci occorre BYOB, unlinguaggio a blocchi per molti versiidentico a Scratch, ma con
un'importante differenza: ci permette di assegnare dei nomi a sequenze di
operazioni
P i BYOB ll
http://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/byob.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
43/62
BYOB
[pong-procedure-iniziale.ypr]
Per assegnare in BYOB un nome allesequenze di operazioni RIPETUTE MA
NON CONSECUTIVE (e non dover quindiriscriverle più e più volte) è sufficiente
cliccare sull’area script con il tastodestro e selezionare l’opzione “ crea un
blocco ”
U lt lt l t g i d l
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
44/62
BYOBUna volta scelta la categoria del nuovoblocco che vogliamo creare (cliccando
sul pulsante della categoriadesiderata)…
[pong-procedure-iniziale.ypr]
e digitato il nome che vogliamo
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
45/62
BYOB… e digitato il nome che vogliamo
assegnare alla sequenza (va bene tutto,anche gli spazi tranne alcuni simboliparticolari, ad esempio la virgola )…
[pong-procedure-iniziale.ypr]
possiamo cliccare su OK
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
46/62
BYOB… possiamo cliccare su OK…
[pong-procedure-iniziale.ypr]
e vedremo comparire una nuova area
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
47/62
BYOB… e vedremo comparire una nuova area
script (chiamata Editor di blocchi ) in cui ilnome che abbiamo scelto per il nuovo
blocco compare in alto (all’interno di unblocco di tipo “cappello”, cioè arrotondato) .
[pong-procedure-iniziale.ypr]
S tt t bl t tt
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
48/62
BYOBSotto a questo blocco potremo attaccare
la sequenza di operazioni ripetute (inquesto caso i blocchi MOSTRA, PERSEMPRE QUANDO, ecc). Possiamo
trascinare questi blocchi nell’Editor diblocchi direttamente dall’area script.
[pong-procedure-iniziale.ypr]
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
49/62
BYOB
Terminata la creazione delnuovo blocco, possiamocliccare su OK
[pong-procedure-iniziale.ypr]
Troveremo il nuovo blocco in
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-base.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
50/62
BYOBTroveremo il nuovo blocco in
fondo alla categoria che abbiamoselezionato creando il blocco (inquesto caso la categoria Aspetto )
[pong-procedure-iniziale.ypr]
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
51/62
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
52/62
BYOB Possiamo quindi rimpiazzare tuttele 18 ripetizioni , dallo spritemattoncino1 fino allo sprite
mattoncino18,…
[pong-procedure-iniziale.ypr]
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
53/62
BYOB
… con il blocco che abbiamo
appena creato (ricordandoci dirimuovere dallo script la sequenza originale) in tutti i 18 mattoncini
[pong-procedure-iniziale.ypr]
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-procedure-finale.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
54/62
I concetti dell’Informatica
La creazione di un nuovo bloccoin BYOB (e di una macro inVisual Basic) viene detta in
generale in Informatica“definizione di procedura ”
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
55/62
I concetti dell’Informatica
Procedura
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
56/62
I concetti dell’Informatica
Procedura
Rimpiazziamo di nuovo0,1 con 0,2 e 61 con 48 per tutti i mattoncini:
• quanto tempoimpieghiamo? • possiamocommettere moltierrori?
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
57/62
I concetti dell’Informatica
Procedura
Grazie alle procedure possiamo…
• ridurre la lunghezza dell’algoritmo• correggere più velocemente molte ripetizioni • commettere meno errori quando dobbiamo modificaremolte ripetizioni • capire meglio la struttura di un algoritmo (utile per
modificare un algoritmo scritto da noi o da qualcun altro)
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
58/62
I concetti dell’Informatica
Procedura
Un’animazioneinterattiva è moltospesso una
ripetizione dianimazioni simili -o
anche del tuttouguali- …
"distanti" tra loro assegnate solitamente a sprite
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
59/62
Fornire istruzioni in maniera efficiente
Lo scopo della programmazione… distanti tra loro, assegnate solitamente a sprite
diversi (ma anche ad uno stesso sprite in scriptdiversi o anche in punti diversi di uno stesso script)
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
60/62
I concetti dell’Informatica
A cosa servono cicli e procedure?
Cicli e Procedure
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
61/62
I concetti dell’Informatica
Cicli e Procedure
A cosa servono cicli a procedure?
• a rid urre la lunghezzadell’al goritmo• a po ter correggere piùvelocemente un algoritmo• a commettere meno erroriquando dobbiamo modificarlo• a capire meglio la struttura diun algoritmo (utile permodificare un algoritmo scrittoda noi o da qualcun altro)
http://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.yprhttp://localhost/var/www/apps/conversion/tmp/scratch_7/pong-cicli%20e%20procedure-finale.ypr
-
8/20/2019 2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf
62/62
FONDAMENTI DI AUTOMAZIONE E PROGRAMMAZIONEa.a. 2015-2016
LA PROGRAMMAZIONE: CICLI e PROCEDURE