Diagrammi di flusso (Flow Chart)

Похожие документы
Cicli. S i a i = a 1 + a 2 + a a n

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Introduzione alla programmazione

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Risoluzione di un problema

CAPITOLO 3 - ALGORITMI E CODIFICA

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione al MATLAB c Parte 3 Script e function

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Introduzione a Matlab

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Rappresentazione degli algoritmi

INFORMATICA. Strutture iterative

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Informatica (A-K) 5. Algoritmi e pseudocodifica

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Rappresentazione con i diagrammi di flusso (Flow - chart)

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

LINGUAGGI DI PROGRAMMAZIONE!

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

IL TEOREMA DI BOEHM-JACOPINI

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

FONDAMENTI DI INFORMATICA

Fondamenti di Informatica

Strutture di Controllo

Informatica Applicata al Suono Tutorial Matlab

Introduzione agli Algoritmi

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Rappresentazione degli algoritmi

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

Dall algoritmo al programma

Algoritmi e soluzione di problemi

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

INTRODUZIONE ALLA PROGRAMMAZIONE

Qualsiasi programma in C++ segue lo schema:

Транскрипт:

Diagrammi di flusso (Flow Chart) I diagrammi di flusso sono un formalismo grafico per descrivere gli algoritmi. I diagrammi di flusso visualizzano graficamente i passi da cui sono formati gli algoritmi e l ordine in cui devono essere eseguiti. Un diagramma di flusso è una descrizione formale, (cioè rispetta una precisa sintassi), più efficace e meno ambigua di una descrizione a parole.

Diagrammi di flusso Operazioni rappresentabili in un diagramma di flusso: Ingresso/Uscita dati (rappresentate come schede) Operazioni sui dati (rappresentate come rettangoli) Trasferimento di informazione (assegnazioni) Calcolo di espressioni aritmetiche e logiche Verifica di condizioni (rappresentate come rombi) Assunzione di decisioni o cicli (combinazioni di rettangoli e rombi) Se allora Ripeti per N volte Ripeti finché. Possono utilizzare costanti e variabili

Diagrammi di flusso Un diagramma di flusso è costituito da due tipi di entità: Nodi rappresentano le operazioni e gli stati di inizio e fine dell algoritmo Archi orientati (di solito segmenti di retta orientati secondo la direzione indicata da una freccia) Collegano fra loro i nodi, rappresentando con frecce il flusso dei dati, cioè la sequenza delle operazioni: l istruzione contenuta in un nodo è seguita dall esecuzione dell operazione contenuta nel nodo a cui punta l arco uscente da esso Una struttura di questo tipo è detta grafo (orientato)

Tipi di Nodi Start Inizio Var1 Lettura dati (input) Var1 Espr1 Elaborazione / Assegnazione Stop Fine Var1 Scrittura dati (output) Sì No Espr1 = Espr2 Espr1 Espr2 Espr1 > Espr2 Espr1 Espr2 Espr1 < Espr2 Espr1 Espr2 Decisione

Esempio Start Inizio Var1 Leggi un valore (ad es. 10) che sarà assegnato alla variabile Var1 Var1 Stampa il contenuto di Var1 (stampa 10) Stop Fine

Esempio 2 Start Var1 Var1 Var1 + 1 Inizio Leggi un valore (ad es. 10) e inseriscilo nella locazione di memoria corrispondente alla variabile Var1 Aggiungi 1 a quel valore Var1 Stop Stampa il nuovo valore (stampa il contenuto di Var1 cioè 11) Fine

Strutture di Controllo Sì C No O1 O2 If - Then - Else Se la condizione C è vera esegue l operazione (o sequenza) O1, altrimenti esegue O2

Esempio 3 (uso di istruzioni condizionali) Start Inizio Var1 Leggi Var1 Var1 > 10 No Var1 Var1 + 1 Se Var1 > 10 stampa Var1 Sì Altrimenti Var1 incrementa di 1 Var1 e poi stampa Var1 Stop Fine

Strutture di Controllo: Cicli C No O O Sì No C Sì Ciclo While Ciclo For Ripete una stessa operazione (o sequenza) O finché la condizione C resta vera Ciclo Repeat - Until Ripete una stessa operazione (o sequenza) O finché la condizione C non diventa vera

Esempio 4 (cicli: conto alla rovescia) Start Inizio Var1 Leggi Var1 (numero intero positivo) Var1 >= 0 Stop No Sì Var1 Var1-1 Fine Var1 Se Var1 >= 0 1. stampa Var1 2. la decrementa di 1 3. torna alla verifica Var1 >= 0 Altrimenti stop

Programmazione Strutturata Si compone di sequenze di azioni, decisioni (if then, if then else) e cicli (do-while, repeat until). Ogni diagramma ha esattamente un ingresso ed una uscita Ogni azione può essere Un operazione semplice Un azione composta da altri diagrammi di flusso

Esempio: Somma di due Numeri Start Var1 Var2 Somma Var1 +Var2 Somma Stop

Esempio: Somma di N Numeri Start N Sì I < N Var No I 0 Somma 0 Somma Somma + Var I I + 1 Somma Stop

MATLAB

L ambiente MATLAB Lab. Programmazione - MATLAB 15

Caratteristiche Linguaggio di programmazione orientato all'elaborazione di matrici (MATLAB=MATrix LABoratory) Un linguaggio si basa sull'uso delle variabili che rappresentano i dati e sulla disponibilità di alcuni operatori per manipolarli. Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione 1x1; un array di dimensione N è una matrice 1xN) Gli operatori, quindi, sono definiti per operare su matrici Lab. Programmazione - MATLAB 16

Dati Un elaboratore è un manipolatore di simboli L'architettura di ogni elaboratore è intrinsecamente capace di trattare vari domini di definizione dei dati, detti tipi di dato primitivi dominio dei numeri interi dominio dei numeri reali dominio dei caratteri dominio delle stringhe di caratteri Le variabili di MATLAB sono matrici (array multidimensionali) i cui elementi appartengono ad uno di questi domini: se non specificato, sono reali. Lab. Programmazione - MATLAB 17

Variabili Inizializzazione variabile: la variabile inizia ad esistere al momento in cui le si assegna un valore; a = 0, cento = 100; b = [1 2;4 1] c = ['stringa'; 'altra stringa']; La finestra Watchlist mostra una lista delle variabili che sono state definite oltre ad altre informazioni (tipo, dimensione) Da linea di comando lo stesso risultato si ottiene nella Command Window col comando whos Lab. Programmazione - MATLAB 18

Commenti Se all interno del codice (ad es. per spiegare cosa si sta facendo a chi legge il codice) vogliamo inserire dei commenti, questi devono essere preceduti dal simbolo %. a = 0, cento = 100; % scalari b = [1 2;4 1] % matrice c = ['stringa'; 'altra stringa']; % matrice di stringhe Durante l esecuzione tutto ciò che si trova fra % e la fine della riga viene ignorato Lab. Programmazione - MATLAB 19

Esempio a=3; b=2; % ad a, b (variabili scalari) vengono % assegnati i rispettivi valori c = [1 2;4 1] % c è definita come matrice 2x2 % il simbolo ; separa le righe d = c + c % i valori di d e k vengono modificati, k = a + b % assegnando a d due volte il valore di c % e a k la somma di a e b % dopo l'esecuzione di queste operazioni % il valore di d è [2 4; 8 2] e k vale 5 Lab. Programmazione - MATLAB 20

Esempio di programma MATLAB % Usa solo moltiplicazione e assegnazione a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3]'; % ' indica la k = a*b; disp(k) % matrice trasposta % * è il prodotto % scalare fra matrici Lab. Programmazione - MATLAB 21

Esempio di programma MATLAB Un programma si scrive attivando la finestra Editor (attiva un editor di testo) e salvando poi il file con estensione.m (es. prova.m) nella cartella di lavoro (si seleziona la cartella nella finestra Current Folder). Una volta salvato è possibile eseguire il programma inserendo il nome del file (senza estensione, es. prova)nella Command Window e premendo Invio, oppure clickando sul bottone «Run» Lab. Programmazione - MATLAB 22

Stringhe Una stringa è una sequenza di caratteri delimitata da apici 'ciao' 'hello' In MATLAB le stringhe possono essere elementi di una matrice itaing = ['ciao '; 'hello'] Ogni stringa diventa una riga della matrice itaing che ha quindi un numero di righe pari al numero di stringhe e un numero di colonne pari alla lunghezza della stringa più lunga. NB Alle stringhe più corte devono essere aggiunti spazi perché tutte le righe della matrice abbiano la stessa lunghezza. Lab. Programmazione - MATLAB 23

Espressioni MATLAB è un linguaggio basato su espressioni Un'espressione è una notazione che denota un valore mediante un processo di valutazione Un'espressione può essere semplice (una costante, un simbolo di variabile) o composta ogni linguaggio comprende un insieme di operatori che permettono di aggregare altre espressioni (operandi) per formare espressioni composte Esempi : 4*8-2*arcsin(x) a&&(b c) Lab. Programmazione - MATLAB 24

Classificazione degli operatori In base al tipo di operandi (aritmetici, logici, relazionali) In base al numero degli operandi (unari, binari, ternari..) Gli operatori forniti dal linguaggio, insieme alle istruzioni di controllo (if, cicli, ecc.) consentono di scrivere programmi e funzioni. Lab. Programmazione - MATLAB 25

Funzioni e programmi Un programma è la descrizione di una sequenza di operazioni, definite tramite il linguaggio di programmazione, che risolvono uno specifico problema su dati predeterminati o forniti dall'utente durante la sua esecuzione. Una funzione generalizza la soluzione di una classe di problemi e consente di essere utilizzata (chiamata) specificando dei valori di input (eventualmente generati all'interno di un programma) che descrivono una istanza della classe di problemi per cui la funzione fornisce una soluzione. Lab. Programmazione - MATLAB 26

Funzioni e programmi Es. di programma b = input ('inserisci la base') h = input ('inserisci l''altezza') a = b*h; disp('area = '); disp (a); Lab. Programmazione - MATLAB 27

Funzioni e programmi Es. di funzione area2(b,h) function a=area2(b,h) a = b*h; end Definisce una regola che, per qualsiasi valore di b e di h calcola un terzo valore che rappresenta l'area. Posso salvarla e riutilizzarla all'interno di un programma o nella Command Window scrivendo ad es. area2(3,5) (rappresenta il valore 15) Lab. Programmazione - MATLAB 28

Funzioni e programmi Una volta definita una funzione posso usarla all'interno di un programma salvandola in un file che abbia lo stesso nome della funzione ed estensione.m Es. di programma che usa la funzione area l = input ('inserisci la larghezza') p = input ('inserisci la profondita'' ') abase = area2(l,p); disp('area di base = '); disp (abase); h = input ('inserisci l''altezza'); disp('il volume è '); disp (abase*h); Lab. Programmazione - MATLAB 29

Operatori aritmetici Operatore Tipo MATLAB Inversione di segno Unario - Somma Binario + Differenza Binario - Moltiplicazione Binario * Divisione (molt. per l inv.) Binario / Molt. elemento per elemento Binario.* Div. elemento per elemento Binario./ Lab. Programmazione - MATLAB 30

Esempi di operazioni a = [1 2 3; 9 5 4; 10 1 7]; b = [1 2 3; 7 1 2; 6 6 9]; c = a*b d = a.*b e = a + b f = -a g = 3*b Se si chiude il comando con ; non si ottiene alcun output. Altrimenti il risultato dell'operazione è visualizzato immediatamente nella Command Window Lab. Programmazione - MATLAB 31

Esercizi Sulla base di quanto visto per la somma di N numeri Definire un algoritmo per il calcolo del prodotto di N numeri Descriverlo attraverso un opportuno diagramma di flusso Descrivere il diagramma di flusso di un algoritmo che calcola l area di triangoli o rettangoli: Inizialmente il programma deve chiedere quanti lati ha la figura di cui si vuole calcolare l area Poi chiede base e altezza e calcola l area mediante la giusta formula per la figura considerata.

Esercizi Scrivere due programmi MATLAB che eseguano i due algoritmi formalizzati mediante i diagrammi di flusso (prima il secondo è più facile!) NB Entrambi richiedono l uso di istruzioni If Else che vedremo meglio nella prossima lezione.