diagrammi a blocchiweb.math.unifi.it/users/ferrari/diagrammiblocchi.pdf · 2012-03-02 ·...
TRANSCRIPT
![Page 1: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/1.jpg)
1
Diagrammi a blocchi
![Page 2: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/2.jpg)
2
Sommario
Diagrammi di flusso, o a blocchi.
Analisi strutturata.
Esercizi.
![Page 3: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/3.jpg)
3
Diagrammi a blocchi
È un linguaggio formale di tipo grafico per rappresentare gli
algoritmi.
Attraverso il diagramma a blocchi (o flow chart) si può indicare
l’ordine di esecuzione delle istruzioni.
Un particolare simbolo grafico detto blocco elementare è
associato a ciascun tipo di istruzione elementare.
I blocchi sono collegati fra loro tramite frecce che indicano il
susseguirsi delle istruzioni.
![Page 4: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/4.jpg)
4
Diagrammi a blocchi
I blocchi elementari sono i seguenti:
![Page 5: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/5.jpg)
5
Diagrammi a blocchi
Un diagramma a blocchi descrive un algoritmo se:
ha un blocco iniziale e uno finale;
è costituito da un numero finito di blocchi azione e/o blocchi
lettura/scrittura e/o blocchi di controllo;
ciascun blocco elementare soddisfa le condizioni di validità.
![Page 6: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/6.jpg)
6
Diagrammi a blocchi
Condizioni di validità:
ciascun blocco azione, lettura/scrittura ha una sola freccia entrante
e una sola freccia uscente;
ciascun blocco di controllo ha una sola freccia entrante e due frecce
uscenti;
ciascuna freccia entra in un blocco o si innesta su un’altra freccia;
ciascun blocco è raggiungibile dal blocco iniziale;
il blocco finale è raggiungibile da qualsiasi altro blocco.
![Page 7: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/7.jpg)
7
Esercizio
Scrivere un algoritmo e rappresentarlo tramite un
diagramma a blocchi per i seguenti problemi:
attraversare la strada;
preparare la pasta;
calcolare l’area del triangolo;
determinare le radici di un’equazione di secondo grado;
realizzare la somma di due numeri interi.
![Page 8: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/8.jpg)
8
Analisi strutturata
Analisi volta alla stesura di descrizioni di algoritmi
tramite diagrammi a blocchi di tipo strutturato.
Un diagramma a blocchi di tipo strutturato è più
facilmente comprensibile e modificabile.
In un diagramma strutturato non apparirà mai
un’istruzione di salto incondizionato.
![Page 9: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/9.jpg)
9
Analisi strutturata
Teorema di Böhm-Jacopini:
Ogni diagramma a blocchi non strutturato è
sempre trasformabile in un diagramma a blocchi
strutturato ad esso equivalente.
Due diagrammi sono equivalenti se, partendo dagli
stessi dati iniziali, producono gli stessi risultati.
![Page 10: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/10.jpg)
10
Analisi strutturata
Una descrizione è di tipo strutturato se i
blocchi sono collegati tramite i seguenti
schemi di flusso strutturato:
schema di sequenza;
schema di selezione;
schema di iterazione.
![Page 11: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/11.jpg)
11
Analisi strutturata
Schema di sequenza:
due o più schemi di flusso sono
eseguiti in successione.
Nota: lo schema di sequenza è
strutturato se e solo se lo sono i
blocchi S1 e S2.
![Page 12: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/12.jpg)
12
Analisi strutturata
Schema di selezione:
esiste un blocco di
controllo che permette
di scegliere quale
schema di flusso
debba essere eseguito
tra due schemi, in
funzione del valore di
verità del controllo.
![Page 13: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/13.jpg)
13
Analisi strutturata
Schema di iterazione (ciclo o loop):
modo conciso per descrivere azione che devono essere
ripetute.
![Page 14: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/14.jpg)
14
Analisi strutturata
Nota.
I due schemi precedenti non sono equivalenti; in un caso lo
schema S è eseguito almeno una volta, nell’altro potrebbe
non essere mai eseguito.
Le condizioni vero/falso per il controllo possono essere
invertite: si parla di iterazione per vero quando S è eseguito
finché la condizione su C è vera e iterazione per falso
nell’altro caso.
![Page 15: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/15.jpg)
15
Note sullo schema di iterazione
Quando è necessario eseguire lo stesso insieme di
operazioni per un numero specificato di volte, si
adotta un particolare schema di iterazione:
inizia con una sequenza di azioni di assegnazione, dette
istruzioni di inizializzazione;
possiede una sequenza di azioni (iterazione) che viene
ripetuta per un numero specificato di volte.
![Page 16: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/16.jpg)
16
Analisi strutturata
![Page 17: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/17.jpg)
17
Analisi strutturata
Condizione di fine ciclo: viene
controllata dopo l’esecuzione di ogni
blocco di iterazione.
Può essere con controllo in coda al ciclo
o in testa.
![Page 18: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/18.jpg)
18
Analisi strutturata
Un ciclo è detto enumerativo quando è noto a priori il
numero di volte che deve essere eseguito.
Si usa la tecnica del contatore per controllarne l’esecuzione:
si usa cioè una variabile detta contatore del ciclo che viene
incrementata (o decrementata) fino a raggiungere un valore
prefissato.
![Page 19: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/19.jpg)
19
Analisi strutturata
Un ciclo è indefinito quando non è noto a priori il
numero di volte che deve essere eseguito.
Questo accade quando la condizione di fine ciclo
dipende dal valore di una o più variabili che, a loro
volta, o dipendono dall’interazione con l’esterno o
vengono modificate dall’interno dell’iterazione in
modo complesso.
![Page 20: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/20.jpg)
20
Esercizi
Ricerca di un elemento in un vettore.
Determinazione del massimo numero in
un vettore.
Media di un vettore.
![Page 21: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/21.jpg)
21
Soluzione: ricerca
![Page 22: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/22.jpg)
22
Soluzione: massimo
![Page 23: Diagrammi a blocchiweb.math.unifi.it/users/ferrari/DiagrammiBlocchi.pdf · 2012-03-02 · algoritmi. Attraverso il diagramma a blocchi (o flow chart) si può indicare l’ordine di](https://reader030.vdocuments.mx/reader030/viewer/2022040201/5e49a4df05615c723774dd1d/html5/thumbnails/23.jpg)
23
Soluzione: media