2016 03 01 - incontro - CICLI e PROCEDURE - il progetto Pong.pdf

Embed Size (px)

Citation preview

  • 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