La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi.

Presentazioni simili


Presentazione sul tema: "I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi."— Transcript della presentazione:

1 I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi

2 Diagrammi di flusso (Flow Chart)
Per rappresentare in modo efficace un algoritmo sono stati sviluppati dei modelli grafici (i diagrammi di flusso o diagrammi a blocchi) che associano alle istruzioni del programma dei simboli grafici. I blocchi sono i simboli grafici che vengono utilizzati nella scrittura del diagramma per descrivere azioni e decisioni; gli archi orientati servono per collegare i vari blocchi e per descrivere la sequenza di svolgimento delle azioni. Ogni forma ha il suo significato.

3 Inizio Indica l’inizio dell’algoritmo.
Un solo inizio per ogni diagramma di flusso.

4 Ingresso/Uscita Indica un inserimento di dati o una restituzione di dati (azione di input/output). Input: ingresso dei dati. Output: uscita dei dati. I/O

5 Elaborazione/Azione Indica un’operazione, un’azione che deve essere eseguita. Operazione da eseguire.

6 Decisione/Domanda/Confronto
Se ci sono delle decisioni da prendere, più opzioni, più strade possibili, bisogna utilizzare questa forma. Esegue un test è verifica se è vera o falsa. L’unico blocco che ha un ingresso e due uscite.

7 Direzione del flusso Le frecce collegano i vari blocchi e indicano la direzione del processo.

8 Fine Dichiara la conclusione del diagramma.
Una sola fine per un diagramma di flusso.

9 Caratteristiche Un diagramma a blocchi è un insieme di blocchi elementari composto da: Un blocco iniziale. Un blocco finale. Un numero finito n (n>=1) di blocchi di azione e/o di blocchi di lettura/scrittura. Un numero finito m (m>=0) di blocchi di controllo.

10 Caratteristiche L’insieme dei blocchi elementari che descrivono un algoritmo deve soddisfare le seguenti condizioni: Ciascun blocco di azione o di lettura/scrittura ha una sola freccia entrante ed una sola freccia uscente. Ciascun blocco di controllo ha una sola freccia entrante e due frecce uscenti. Ciascuna freccia entra in un blocco oppure si innesta in un’altra freccia. Ciascun blocco è raggiungibile dal blocco iniziale. Il blocco finale è raggiungibile da qualsiasi altro blocco.

11 Dal diagramma di flusso all’Algoritmo
Come si esegue un algoritmo descritto con un diagramma di flusso: Si inizia dal blocco iniziale (START, BEGIN, INIZIO…). Si seguono le frecce. Si esegue ogni blocco rettangolare che si incontra. Si valuta l’espressione di ogni blocco romboidale e si segue la freccia etichettata con il valore risultante dalla valutazione (vero / falso, si / no, T/F ….). Ci si arresta quando si incontra il blocco finale (stop/fine).

12 Dal diagramma di flusso all’Algoritmo
La programmazione strutturata favorisce la descrizione di algoritmi facilmente documentabili e comprensibili, privi di salti senza regole. I blocchi di un diagramma a blocchi strutturato sono collegati secondo i seguenti schemi di flusso: Schema di sequenza – più schemi di flusso sono eseguiti in sequenza. Schema di selezione – un blocco di controllo subordina l’esecuzione di due possibili schemi di flusso al verificarsi di una condizione. Schema di iterazione – si itera l’esecuzione di un dato schema di flusso.

13 Dal diagramma di flusso all’Algoritmo
Un diagramma a blocchi strutturato è un diagramma a blocchi nel quale gli schemi di flusso sono strutturati. Uno schema di flusso è strutturato quando soddisfa una delle seguenti proprietà: È uno schema elementare o uno schema di sequenza (nella sequenza ci sono solo schemi di flusso strutturati).

14 Dal diagramma di flusso all’Algoritmo
È uno schema di selezione Nel primo caso, lo schema S viene eseguito solo se la condizione è vera; se la condizione è falsa, non viene eseguita alcuna azione. Nel secondo caso, viene eseguito solo uno dei due schemi S_true o S_false, in dipendenza del valore di verità della condizione.

15 Dal diagramma di flusso all’Algoritmo
È uno schema di iterazione Nel primo caso, S può non venire mai eseguito, se la condizione è subito falsa. Nel secondo caso, S viene eseguito almeno una volta.

16 Dal diagramma di flusso all’Algoritmo
Ogni diagramma a blocchi non strutturato è trasformabile in un diagramma a blocchi strutturato equivalente; Due diagrammi a blocchi sono equivalenti se, operando sugli stessi dati, producono gli stessi risultati. L’uso dei diagrammi a blocchi strutturati garantisce: Facilità di comprensione e modifica dei diagrammi a blocchi. Maggiore uniformità nella descrizione degli algoritmi.

17 Dal diagramma di flusso all’Algoritmo
Ogni programma può essere codificato riferendosi esclusivamente ad un algoritmo strutturato e quindi attenendosi alle tre strutture fondamentali: SEQUENZIALE ITERATIVA CONDIZIONALE In un diagramma strutturato non apparirà mai una istruzione di salto incondizionato.

18 Dal diagramma di flusso all’Algoritmo
I tre schemi fondamentali possono essere concatenati, uno di seguito all’altro, o nidificati, uno dentro l’altro; non possono in nessun caso essere “intrecciati” o “accavallati” :

19 Diagramma di flusso non strutturato

20 Come verificare se un diagramma di flusso è strutturato

21 Esempi di diagrammi di flusso e relativo Algoritmo
Dato un numero, dire se è positivo o negativo: Inizia Leggi NUMERO Se NUMERO>=0 Allora Scrivi “Il numero è positivo” Altrimenti Scrivi “Il numero è negativo” FineSe Fine

22 Esempi di diagrammi di flusso e relativo Algoritmo
Dato un numero, dire se è positivo ,negativo o nullo Inizia Leggi NUMERO Se NUMERO>0 Allora Scrivi “Il numero è positivo” Altrimenti Se Numero=0 Scrivi “Il numero è nullo” Scrivi “Il numero è negativo” FineSe Fine

23 Esempi di diagrammi di flusso e relativo Algoritmo
Dati due numeri, calcolare il loro prodotto usando solo l’operazione di somma Inizia Leggi NUM1, NUM2 PROD=0 Mentre NUM2>0 PROD=PROD+NUM1 NUM2=NUM2-1 FineMentre Scrivi PROD Fine

24 Esempi di diagrammi di flusso e relativo Algoritmo
Dati tre numeri, stabilire quale sia il maggiore (soluzione 1): Inizia Leggi NUM1, NUM2, NUM3 Se NUM1>NUM2 Allora MAX=NUM1 Altrimenti MAX=NUM2 FineSe Se NUM3>MAX MAX=NUM3 Scrivi MAX Fine

25 Esempi di diagrammi di flusso e relativo Algoritmo
Dati tre numeri, stabilire quale sia il maggiore (soluzione 2) Inizia Leggi NUM1,NUM2,NUM3 Se (NUM1>NUM2) AND (NUM1>NUM3) Allora MAX=NUM1 Altrimenti Se (NUM2>NUM1) AND (NUM2>NUM3) MAX=NUM2 MAX=NUM3 FineSe Scrivi MAX Fine

26 Esempi di diagrammi di flusso e relativo Algoritmo
Sommare tre numeri consecutivi (soluzione 1) Inizia Leggi NUM SOMMA=0 SOMMA=SOMMA+NUM SOMMA=SOMMA+(NUM+1) SOMMA=SOMMA+(NUM+2) Scrivi SOMMA Fine I numeri da sommare sono solo 3, ma se fossero n? Bisogna introdurre un ciclo

27 Esempi di diagrammi di flusso e relativo Algoritmo
Sommare tre numeri consecutivi (soluzione 2) Questo diagramma è valido anche se i numeri da sommare sono n, basta cambiare la condizione del do_while con “while k<n-1”

28 Esempi di diagrammi di flusso e relativo Algoritmo
Calcolare la media di n numeri Questo è un esempio di ciclo “indefinito” perché non è possibile sapere a priori quante volte verrà eseguito. I numeri vengono letti uno alla volta fino a che non si incontra un numero NUM=0, che segnala la fine della serie.

29 Limiti dei diagrammi di flusso
I diagrammi di flusso complessi o non strutturati sono generalmente illeggibili, non si riesce a seguire l’algoritmo soprattutto quando superano le dimensioni di un semplice esercizio didattico. La lettura andrebbe fatta un po’ dall’alto un po’ dal basso senza un ordine preciso. I diagrammi di flusso sono facilmente esposti ad errori logici, bastano pochi accavallamenti di cicli per perdere il filo del controllo. Ciò nasce dalle correzioni consentite da un indisciplinato uso delle frecce che causa un proliferare di errori logici che si accentua con la complessità del problema e l’inesperienza del risolutore. Scarsa praticità dovuta alla natura grafica bidimensionale. Difficoltà di riconoscimento della struttura di controllo.

30 Limiti dei diagrammi di flusso
La soluzione a questi problemi consiste nell’imporre una disciplina di composizione che eviti cattive strutturazioni degli algoritmi. L’idea base è che, un algoritmo deve essere letto dall’alto al basso secondo un ordine sequenziale di esecuzione. Ciò non significa che non possono esistere dei cicli o dei controlli, ma che questi siano strutturati in modo da poter essere considerati come un unico blocco operativo con un unico ingresso e una sola uscita. Si devono poter distinguere: blocchi semplici; blocchi composti; tutti con un unico punto di ingresso e un unico punto di uscita. .

31 I vantaggi dei diagrammi di flusso
Un diagramma di flusso è utile per scomporre un processo in attività elementari facili da gestire e da comprendere, infatti un diagramma di flusso strutturato è componibile ossia ad ogni schema elementare si può sostituire con uno schema più complesso di selezione o di iterazione. È facilmente modificabile. È facilmente leggibile poiché rappresenta il processo come una mappa. È utile per identificare i processi più critici e i punti di controllo.


Scaricare ppt "I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi."

Presentazioni simili


Annunci Google