Diagrammi di flusso e Codice Matlab
Vitoantonio Bevilacqua Strutture di controllo e Diagrammi di flusso vitoantonio.bevilacqua@poliba.it
Sommario. Il presente paragrafo si riferisce alle lezioni del I Modulo di Informatica : Fondamenti di Informatica per il nuovo corso di laurea triennale in Ingegneria dei Sistemi Medicali del Dipartimento di Ingegneria Elettrica e dell'Informazione del Politecnico di Bari.
Parole chiave: Algoritmo, Diagramma di flusso, Ricerca dicotomica.
Introduzione
Un algoritmo è una sequenza ordinata di passi elementari che consente di passare da dati in ingresso a dati in uscita; alcune delle proprietà fondamentali di un algoritmo sono:
- eseguibilità: ogni parte, ogni diramazione dell’algoritmo deve essere percorribile;
- non ambiguità: la scelta di un percorso rispetto ad un altro è legata ad una condizione (cioè da ogni punto del programma non devo poter andare dove voglio);
- finitezza: l’algoritmo deve finire altrimenti si va in “loop”.
Un diagramma di flusso è una rappresentazione simbolica di un algoritmo e ha lo scopo di esprimere il meccanismo di interazione con l’utenza e le operazioni da fare a partire dai dati inseriti. Le operazioni esplicitate in un algoritmo necessitano di essere eseguite sotto il controllo di un esecutore che le interpreta ed esegue nell’ordine logico di esecuzione. Poiché gli algoritmi che incontreremo dovranno essere eseguiti in maniera automatica, l’esecutore è l’elaboratore e quindi l’algoritmo dovrà essere tradotto in una sequenza di istruzioni scritte in un linguaggio che l’elaboratore è in grado di interpretare ed eseguire. Un linguaggio che ci consente di fare ciò è appunto il linguaggio C.
Struttura di un diagramma di flusso
Un qualsiasi diagramma di flusso è gestito da quattro schemi fondamentali che, opportunamente combinati attraverso delle frecce, rappresentano la sequenza logica e temporale dell’evoluzione dell’algoritmo. I quattro schemi hanno un ordine e un valore logico completamente diverso, e sono: File:Esempio.jpg# una “ellisse” che contiene al suo interno un label (etichetta) che può indicare l’ “inizio” o la “fine” dell’algoritmo; quindi ciascun algoritmo avrà questa forma:
- il “blocco delle assegnazioni”, che contiene appunto un’assegnazione1; in particolare si assegna la parte destra del segno di = alla variabile a sinistra del segno; un’assegnazione del tipo i=0 è un’assegnazione “di inizializzazione”.
- il “blocco di input/output”: se di input, serve ad assegnare alla variabile contenuta nel blocco (ad es. N) un valore immesso dall’esterno e in C corrisponde all’istruzione:
se di output, serve a stampare su video il valore della variabile contenuta nel blocco, precedentemente modificato dall’algoritmo e in C corrisponde all’istruzione: printf(“%d”,N);