I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi.

Slides:



Advertisements
Presentazioni simili
Linguaggi algoritmici
Advertisements

Introduzione alla programmazione ll
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Strutture di controllo in C -- Flow Chart --
DIAGRAMMI DI FLUSSO Notazione grafica usata per descrivere in modo intuitivo le azioni di cui è fatto un algoritmo. Viene usata per descrivere i passi.
INFORMATICA MATTEO CRISTANI.
Ripasso : Algoritmi.
DIVERTIRSI CON SCRATCH
Rappresentazione degli algoritmi
Realizzazione software
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Problemi, algoritmi e programmazione
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6 Dal problema al programma.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
Programmazione: Iterazione Esistono tre tipi di iterazione fondamentali e vedremo la corrispondenza dei relativi diagrammi a blocchi e la loro traduzione.
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A Programmazione strutturata.
CONTROLLO DELLA CONCORRENZA
© 2007 SEI-Società Editrice Internazionale, Apogeo
Dal problema all’ algoritmo
LA PROGRAMMAZIONE: Algoritmi e programmi
La rappresentazione degli algoritmi
DAL DIAGRAMMA AL CODICE
Definizione di logaritmo
Statistica Prima Parte I Dati.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Dal problema al processo risolutivo
Protocollo di locking a due fasi stretto
7. Strutture di controllo Ing. Simona Colucci
Logica binaria Moreno Marzolla
Write-only, read-only.
DIRIGERE L’INNOVAZIONE
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
7. Strutture di controllo
Unità di apprendimento 7
Strutture di controllo
Programmazione strutturata
Forme per rappresentare l’algoritmo:
Lezione 9 – A.A. 2016/2017 Prof. Giovanni Acampora
Algebra di Boole e sue applicazioni
PON Docente: Maura Roberta Orlando I.C. Zingarelli, Bari
PON Docente: Maura Roberta Orlando I.C. Zingarelli, Bari
I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi.
Classe III A A.s – 2012 Programma di Informatica
IL CONCETTO DI ALGORITMO
Programmare.
Il CLOCK Il funzionamento della CPU è regolato da un clock di sistema, questo perché la CPU è una macchina sequenziale, quindi è necessario la presenza.
Linguaggio C++ Selezione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Strutture di Controllo
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
A = InputBox("Immetti un numero")
Ricorsione 16/01/2019 package.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Algoritmi e Strutture Dati
Esercizio.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Teoria della computabilità
Processi decisionali e funzioni di controllo
Il Diagramma di Flusso Docente: Maria Savina Rossi Alunne:
Unità D2 Dal problema all’algoritmo
CICLO WHILE LINGUAGGIO C.
Informatica CdL Scienze e Tecniche Psicologiche a.a
Informatica CdL Scienze e Tecniche Psicologiche a.a
La programmazione strutturata
Algoritmi.
LA CONFIGUARAZIONE DEL PROGETTO
Transcript della presentazione:

I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi

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 I DIAGRAMMI DI FLUSSO

INIZIO Indica l’inizio dell’algoritmo Un solo inizio per ogni diagramma di flusso I DIAGRAMMI DI FLUSSO

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 DIAGRAMMI DI FLUSSO

ELABORAZIONE/AZIONE Indica un’operazione, un’azione che deve essere eseguita Operazione da eseguire I DIAGRAMMI DI FLUSSO

DECISIONE/DOMANDA/CONFRONTO Se ci sono delle decisioni da prendere, più opzioni, più strade possibili, bisogna utilizzare questa forma. Controllo I DIAGRAMMI DI FLUSSO

DIREZIONE DEL FLUSSO Le frecce collegano i vari blocchi e indicano la direzione del processo Collegano blocchi I DIAGRAMMI DI FLUSSO

FINE Dichiara la conclusione del diagramma FINE I DIAGRAMMI DI FLUSSO

Un diagramma a blocchi è un insieme di blocchi elementari composto da: a) un blocco iniziale b) un blocco finale c) un numero finito n (n>=1) di blocchi di azione e/o di blocchi di lettura/scrittura d) un numero finito m (m>=0) di blocchi di controllo I DIAGRAMMI DI FLUSSO

ciascun blocco è raggiungibile dal blocco iniziale 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 I DIAGRAMMI DI FLUSSO

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) I DIAGRAMMI DI FLUSSO

Schema di sequenza – più schemi di flusso sono eseguiti in sequenza 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 I DIAGRAMMI DI FLUSSO

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) I DIAGRAMMI DI FLUSSO

È 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 I DIAGRAMMI DI FLUSSO

È 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 I DIAGRAMMI DI FLUSSO

L’uso dei diagrammi a blocchi strutturati garantisce: 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 I DIAGRAMMI DI FLUSSO

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. I DIAGRAMMI DI FLUSSO

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” : I DIAGRAMMI DI FLUSSO

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” : I DIAGRAMMI DI FLUSSO

Digramma di flusso non strutturato I DIAGRAMMI DI FLUSSO

Come verificare se un diagramma di flusso è strutturato I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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 I DIAGRAMMI DI FLUSSO

Esempio: 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” I DIAGRAMMI DI FLUSSO

Esempio: 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. I DIAGRAMMI DI FLUSSO

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. I DIAGRAMMI DI FLUSSO

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. I DIAGRAMMI DI FLUSSO

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 I DIAGRAMMI DI FLUSSO