12/11/19 1
Fondamenti di Informatica
Prof. Fenza Giuseppe
Esercitazione flow-chart
Diagrammi di flusso (flow-chart)
• I blocchi elementari sono:
- Blocco di Start - Blocco di Stop
- Blocco di azione generica - Blocco di azione di I/O - Blocco di decisione binaria - Blocco di connessione
START
STOP
azione generica
Flow-chart: Blocchi di azione
azione di I/O
struttura-1 struttura-2 Sequenza I O I struttura O
condizione
V
Flow-chart: Blocco di decisione
condizione V F If-Then struttura O I
condizione V F If-Then-Else struttura-1 struttura-2 O I
condizione V struttura F While-Do O I
Algoritmo
1. Si chiami NUM1 il valore del
moltiplicando ed NUM2 il valore del moltiplicatore e sia PROD il risultato (inizialmente zero).
2. Si ripetano le seguenti operazioni fino a che il valore di NUM1 non diventi uguale a 0:
i. si sommi il valore del moltiplicando NUM2 al valore di PROD e si chiami il risultato ancora PROD;
ii. si sottragga 1 dal valore di NUM1, e si chiami il risultato ancora NUM1.
3. Alla fine il valore di PROD è il risultato cercato.
Esercizio 1
a. Rappresentare con un diagramma a blocchi un algoritmo che dati in input la misura dei lati di un triangolo, ne stampi il perimetro. b. Rileggere la misura dei lati finché i valori
inseriti dall’utente non siano tutti maggiori di zero.
Soluzione 1 Ipotesi 1: triangolo equilatero
12/11/19 16 A. Inizio Leggi LATO Fine LATO > 0 Falso Vero B. Inizio Leggi LATO Fine Scrivi “PERIMETRO:” Perimetro Perimetro = 3 * LATO
Soluzione 1 (Completa) Ipotesi 1: triangolo equilatero 12/11/19 Fine 17 Scrivi “PERIMETRO:” Perimetro Perimetro = 3 * LATO Inizio Leggi LATO LATO > 0 Falso Vero
Soluzione 1
• Ipotesi 2: triangolo scaleno
12/11/19 18 Inizio Leggi LATO1 LATO1 > 0 Falso Vero Leggi LATO2 LATO2 > 0 Falso Vero Leggi LATO3 LATO3 > 0 Falso Vero Fine Scrivi “PERIMETRO:” Perimetro Perimetro = 3 * LATO
Esercizio per casa
• Ipotesi 3: triangolo isoscele
Esercizio 2
• Dato il flow chart in figura, dire quale delle seguenti affermazioni è vera:
20
A. Stampa j una sola volta; B. Termina quando j vale 1; C. Termina quando j vale 0; D. Nessuna delle precedenti.
Esercizio 3 • Dato il flow chart in
figura, rappresentare il suo funzionamento mediante tabella di traccia, supponendo NUM1 = 5 e NUM2 = 4. 12/11/19 21
Soluzione 3
12/11/19 22
Numero Istruzione
NUM1 NUM2 PROD NUM2>0 Output
1 5 4 2 0 3 VERO 4 (0+5) = 5 5 (4-1)= 3 6 VERO 7 (5+5) = 10 8 (3 1) = 2 -9 VERO 10 (10+5) = 15 -11 (2 1) = 1 12 VERO 13 (15+5) = 20 -14 (1 1) = 0 15 FALSO 16 20 0 1 2 3 4 5
Esercizio 4
a. Rappresentare con un diagramma a blocchi un algoritmo che dato in input il lato L di un quadrato, ne stampi il perimetro.
b. Rileggere L finché il valore inserito dall’utente non è maggiore di zero.
Soluzione 4 Inizio Leggi L Fine Scrivi “PERIMETRO:” Perimetro Perimetro = 4 * L L > 0 Falso Vero 12/11/19 25
Esercizio 5
• Dato il flow chart in figura, dire quale delle seguenti affermazioni è falsa:
12/11/19 26
A. Se N è uguale a 0 l’algoritmo termina; B. Il ciclo è eseguito solo per N>=1;
C. Se N è negativo si verifica un errore; D. L’algoritmo stampa i primi N interi in
Esercizio 6 • Dato il flow chart in
figura, rappresentare il suo funzionamento mediante tabella di traccia, supponendo X = 5 e Y = 7. 12/11/19 27 Inizio Leggi X Leggi Y Y = 0 Falso Vero Stampa X Fine X = X + 1 Y = Y - 1
Soluzione 6
Soluzione 6
Soluzione 6
Soluzione 6
Soluzione 6
Soluzione 6
Soluzione 6
Soluzione 6
Esercizio 7
a. Rappresentare con un diagramma a blocchi un algoritmo che stampa N volte la parola “Ciao”, dove N è dato in input al sistema. b. Controllare che l’input sia maggiore di 0.
Soluzione 7 Inizio Leggi N N > 0 Falso Vero Stampa ‘Ciao’ N = N -1 N > 0 Vero Fine Falso 12/11/19 38