2. Elementi Didattici
Iterazione – Interazione con controllo in testa
• Target
– ITI - Informatica e Telecomunicazioni
– Informatica
– 3° Anno
• Lezione
– Modulo 2, Unità didattica 1 [vedi programma associato]
• Prerequisiti
– Elementi del Modulo 1:
• Avere la concezione di algoritmo,
• Sapere gli elementi salienti del linguaggio naturale
• Sapere cos’è un predicato e una proposizione
• Conoscere gli operatori logici
3. Elementi Didattici
Iterazione – Interazione con controllo in testa
• Script Lezione [argo + principio apprendimento]
– 10min Problematica Esercizio [motivazione+divertimento]
• Si vuole risolvere una problematica la cui soluzione è un naturale ripetersi di
operazioni (ricerca di un libro)
– 30min Ciclo while [particolare/concreto + partecipazione attiva]
• Spiegare cos’è un ciclo e cosa un’iterazione
• Si usa il materiale didattico ‘EsempioWhile.cpp’
• Eseguendolo e commentandolo insieme
– 15min Try It Yourself [tentar non nuoce]
• Esercizi da svolgere e da discutere in classe per recepire feedback dalla classe
– 20min Considerazioni [utilità dell’errore]
• Osservazioni rilevanti sul while e possibili errori, mostrati sull’editing in classe
del materiale didattico
– 10min HomeWork [tentar non nuoce]
• Esercizi da svolgere a casa per poi discuterne in classe
• Discussione degli esercizi svolti della lezione precedente
4. Elementi Didattici
Iterazione – Interazione con controllo in testa
• Metodologia Didattica
– Learning By Doing
• Imparare concetti dal pratico
– Problem Solving
• Affrontare ed analizzare nuovi tipi di problematiche
utilizzando strumenti nuovi
5. Elementi Didattici
Iterazione – Interazione con controllo in testa
• Strumenti didattici
– Slide
• Con le quali sarà presentato l’argomento
– Materiale didattico
• Piccoli codici da provare sul pc del docente e/o con
quelli dei ragazzi
– Postazioni del laboratorio
• Se disponibili
6. Elementi Didattici
Iterazione – Interazione con controllo in testa
• Obiettivi Formativi
– Conoscenze
• Concetto di iterazione
• Strutture iterative con controllo in testa – while
– Competenze
• Riuscire a implementare un progettare un algoritmo
con iterazioni, rappresentarlo graficamente con
opportune simbologie ed codificarlo in linguaggio c++
– Abilità
• Sapere utilizzare il ciclo while
8. Ricerca di un libro
• Supponiamo di dover prendere un libro da
uno scaffale di una biblioteca.
• Non conosciamo in quale scaffale è contenuto
9. • Si potrebbe pensare di eseguire i seguenti passi
Ricerca di un libro
INIZIO
Considera il primo scaffale
Se in esso è contenuto il libro
Allora estrailo
Altrimenti considera lo scaffale successivo
FINE
PSEUDOCODICE
1 2
3 4
5
7 8
6
Poi si ricontrolla per gli scaffali 2, 3, 4, 5, 6, 7, 8
E se si aggiunge un altro scaffale?
10. Problema
Quante volte è necessario considerare scaffali?
Quante volte dobbiamo scrivere
se ... allora ... altrimenti. ?
• È possibile ripetere un numero di
istruzioni fino al raggiungimento di
un particolare obiettivo?
11. Cicli e Iterazioni
• Fino ad ora abbiamo visto programmi
esclusivamente lineari
– if, if/else, switch ..
• Programmi complessi hanno al loro interno cicli
– Ciclo: ripetizione di una o più istruzioni
– Iterazione: fare più volte la stessa cosa
• Esistono differenti tipi di cicli tra cui while
12. Dove sono usati i cicli?
Sono usati per contare il
tempo negli orologi
digitali
Usati per i contare giri di
gare atletiche
13. Soluzione, Ricerca di un libro
• Le istruzioni del blocco mentre saranno
ripetute tante volte in fase di esecuzione
dell’algoritmo.
INIZIO
Considera il primo scaffale
Mentre il libro non è trovato o gli scaffali non sono esauriti esegui
Se in esso è contenuto il libro
Allora estrailo
Altrimenti considera lo scaffale successivo
FINE
PSEUDOCODICE
14. Esempio: Il ciclo while
• Accendete i PC
• Andate sulla piattaforma [simulazione con Dropbox]
• Scaricate EsempioWhile.cpp
15. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
16. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
• While è una parola
chiave ed è colorata.
17. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
• È presente una
espressione booleana,
come per il blocco IF
18. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
• Dopo il while segue un
blocco di istruzioni
• Se l’espressione num ≠ 0
è vera si entra nel blocco
while
• Il blocco di istruzione del
while è compreso tra le
parentesi graffe
19. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
• Dopo l’esecuzione del
blocco while, si ritorna
all’inizio
• Si rivaluta quindi
l’espressione booleana
• Se è vera si rientra nel
blocco del while
20. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
• Le istruzioni del blocco
while vengono
eseguite tante volte fino
a quando l’espressione
non diventa falsa
– Cioè finchè non viene
inserito 0 dalla tastiera
21. Il ciclo while
Condizione
Istruzioni
V
F
………
mentre condizione è vera esegui
istruzioni
………
PSEUDOCODICE
Si controlla subito la condizione: se è vera vengono eseguite le istruzioni previste
e successivamente si controlla di nuovo la condizione, se è falsa si esce dal ciclo.
………
while (condizione){
istruzione1;
istruzione2;
……
}
………
C++
22. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
Inizio
num = 1
num ≠ 0
“Inserisci un
numero”
Leggi num
Fine
F
V
23. Esempio: Il ciclo while
Inserire da tastiera dei numeri fino a che non viene digitato lo zero
Esecuzione del programma
24. Try It Yourself
• Inserire da tastiera dei numeri fino a che non
viene digitato l’uno
• Eseguire la somma dei numeri digitati finche
non viene digitato il numero 0
Prendendo spunto dal codice mostrato realizzare i seguenti programmi:
26. Considerazioni - 1
• Se la condizione è sempre vera si entra in un
ciclo infinito da cui non è possibile uscire.
All’interno del while deve esserci un
meccanismo che prima o poi rende falsa la
condizione
28. Cosa fa questo codice?
Esecuzione del programma
L’esecuzione di questo codice non termina mai poiché le istruzioni del
blocco while non modificano la condizione
29. Considerazioni - 2
• L’espressione booleana viene valutata prima
dei entrare nel ciclo.
• Prima di entrare nel ciclo bisogna fare
qualcosa di coerente con il significato
dell’espressione
Prima di entrare nel ciclo le variabili devono essere
opportunamente inizializzate
31. Cosa fa questo codice?
Esecuzione del programma
Se inizializziamo num = 0 il programma addirittura non entra nel ciclo
while e non viene eseguita nessuna istruzione del blocco.
NOTA: un ciclo può essere eseguito anche zero volte.
33. HomeWork
Correzione Esercizi Lezione Precedente
• La precedente lezione verte sulla realizzazione
di semplici algoritmi basati su
– Proposizioni, Predicati e Opertori logici
• Correzione Esercizio X (…)
34. HomeWork
1. Scrivere un programma che stampi i primi 20
numeri pari
2. Scrivere un programma che prende in input
due numeri A e B e stampa a video i numeri
compresi tra i due valori
Editor's Notes
Supponiamo di essere in una libreria
Dal particolare al generale [particolare]
Materiale Didattico + LearningByDoing
Adesso spiegare il codice passo passo con il nuovo concetto while