La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di Flusso Programmazione di Calcolatori: I diagrammi di flusso 1.

Presentazioni simili


Presentazione sul tema: "G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di Flusso Programmazione di Calcolatori: I diagrammi di flusso 1."— Transcript della presentazione:

1

2 G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di Flusso Programmazione di Calcolatori: I diagrammi di flusso 1

3 G. Amodeo, C. Gaibisso Nozione intuitiva di algoritmo Programmazione di Calcolatori: I diagrammi di flusso2 Nozione intuitiva di algoritmo è una sequenza finita di istruzioni ogni istruzione è costruita a partire da un alfabeto di dimensione finita ogni istruzione nella sequenza è codificata con una quantità finita di informazione deve esistere un agente di calcolo C capace di eseguire le istruzioni dellalgoritmo C deve avere capacità di memorizzazione …..

4 G. Amodeo, C. Gaibisso I diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso3 un formalismo grafico per la descrizione di algoritmi un particolare simbolo grafico detto blocco è associato ad ogni tipo di istruzione elementare i blocchi sono collegati tra loro da archi che definiscono lordine di esecuzione delle istruzioni Diagrammi di Flusso:

5 G. Amodeo, C. Gaibisso Esempio Programmazione di Calcolatori: I diagrammi di flusso4 Calcolare la somma dei numeri 1 i N Start Nome:SommaN Variabili:int N, cont, somma N somma 0 cont 0 cont < N somma cont cont+1 somma somma+cont End true false Inizio della sequenza Termine della sequenza Acquisizione del numero di valori da sommare Inizializzazione della somma parziale e del contatore Aggiornamento della somma parziale e del contatore Restituzione del valore calcolato Verifica sul numero di somme effettuate

6 G. Amodeo, C. Gaibisso Capacità di memorizzazione Programmazione di Calcolatori: I diagrammi di flusso5 descrizione della realtà limitatamente agli aspetti di interesse Modello: Modello di memoria: insieme di locazioni ogni locazione può memorizzare un valore di tipo intero, carattere, o booleano una locazione o è correntemente in uso o è disponibile in uso disponibile locazioni correntemente in uso sono dette variabili 3 c true intero carattere boleano ogni variabile è identificata da un nome e da un tipo A B C

7 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso6 è una foto istantanea della memoria Molto informalmente: E determinato: a)dal numero delle variabili b)dal loro nome, tipo e valore

8 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso7 Stato 1 A B C D c 120 d 2 Stato 2 A B C D c 120 d 2 SI Stato 1 = Stato 2 ?

9 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso8 Stato 1 A C D c d 2 Stato 2 A B C D c 120 d 2 NO Stato 1 = Stato 2 ?

10 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso9 Stato 1 A B C D Stato 2 A B C D c 120 d 2 12 m d 8 NO Stato 1 = Stato 2 ?

11 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso10 Stato 1 A C E D Stato 2 A E C D 12 m d 8 m d 8 NO Stato 1 = Stato 2 ?

12 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso11 Stato 1 = Stato 2 ? Stato 1 B C Stato 2 D A B C D A SI

13 G. Amodeo, C. Gaibisso Stato della Memoria Programmazione di Calcolatori: I diagrammi di flusso12 Stato 1 = Stato 2 ? true Stato 1 A B Stato 2 C D D B C A 12 true d 8 8 d 12 SI

14 G. Amodeo, C. Gaibisso Tipologia dei blocchi Programmazione di Calcolatori: I diagrammi di flusso13 Start Nome:SommaN Variabili:int N, somma, cont N somma 0 cont 0 cont < N somma cont cont+1 somma somma+cont End true false Inizio del diagramma Termine della sequenza Blocchi di inizio e di termine 1 + di 1 Nome del diagramma Nome delle variabili Tipo delle variabili intero:-2, -1, 0, 1, 2 …. carattere:c, 2, ! … booleano:true, false Definizione delle variabili utilizzate

15 G. Amodeo, C. Gaibisso Definizione di una variabile Programmazione di Calcolatori: I diagrammi di flusso14 N intero Stato F B A Stato I B A Blocco di inizio Start Nome:SommaN Variabili: int N, somma, cont 1.si individua una locazione di memoria disponibile 2.si riserva tale locazione 3.si associano a tale locazione il nome e il tipo specificati Per ognuna delle variabili elencate nel blocco

16 G. Amodeo, C. Gaibisso Tipologia dei blocchi Programmazione di Calcolatori: I diagrammi di flusso15 si rilascia la memoria allocata ad ognuna delle variabili elencate nel blocco Start Blocco di termine: End Stato I somma cont 10 4 N 4 Stato F 10 somma cont N 4 4

17 G. Amodeo, C. Gaibisso Tipologia dei blocchi Programmazione di Calcolatori: I diagrammi di flusso16 Blocco di acquisizione Blocco di restituzione Start Nome:SommaN Variabili:int N, somma, cont N somma 0 cont 0 cont < N somma cont cont+1 somma somma+cont End true false Blocchi di acquisizione e di restituzione dati Restituisce il contenuto della variabile somma Il dato acquisito è memorizzato nella variabile N

18 G. Amodeo, C. Gaibisso Tipologia dei blocchi Programmazione di Calcolatori: I diagrammi di flusso17 Start Nome:SommaN Variabili:int N, cont, somma N somma 0 cont 0 cont < N somma cont cont+1 somma somma+cont End true false Blocco di elaborazione Le operazioni di assegnamento vengono considerate nellordine in cui compaiono nel blocco dallalto verso il basso Blocco di elaborazione Contiene una sequenza di operazioni di assegnamento Formato di unoperazione di assegnamento: nome espressione

19 G. Amodeo, C. Gaibisso Operazioni di assegnamento Programmazione di Calcolatori: I diagrammi di flusso18 1.Si valuta il valore di espressione 2.Si aggiorna con tale valore il contenuto della variabile identificata da nome nome espressione Stato I cont somma 0 3 N3 Stato F cont somma 0 0 N3 cont cont+1 somma somma+cont

20 G. Amodeo, C. Gaibisso Tipologia dei blocchi Programmazione di Calcolatori: I diagrammi di flusso19 Start Nome:SommaN Variabili:int N, cont, somma N somma 0 cont 0 cont < N somma cont cont+1 somma somma+cont End true false Blocco di decisione Confronta due o più espressioni secondo diverse modalità Sulla base del risultato del confronto individua il prossimo blocco del flusso

21 G. Amodeo, C. Gaibisso Riassumendo …. Programmazione di Calcolatori: I diagrammi di flusso20 nome 1, nome 2, … Blocco di acquisizione Blocco di restituzione Blocco di inizio Start Nome:nome del diagramma Variabili:tipo 1 nome 1 tipo 2 nome 2 …… Blocco di termine End Blocco di elaborazione nome 1 espressione 1 nome 2 espressione 2 …… int bool char

22 G. Amodeo, C. Gaibisso Riassumendo …. Programmazione di Calcolatori: I diagrammi di flusso21 Blocco di decisione espressione a valore booleano true false

23 G. Amodeo, C. Gaibisso Operatori …. Programmazione di Calcolatori: I diagrammi di flusso22 Operatori aritmetici + : int x int intsomma tra interi - : int x int intdifferenza tra interi * : int x int intprodotto tra interi / : int x int intdivisione intera % : int x int intresto della divisione intera Operatori logici not : bool boolnegazione and : bool x bool bool and logico or : bool x bool bool or logico

24 G. Amodeo, C. Gaibisso Operatori …. Programmazione di Calcolatori: I diagrammi di flusso23 Operatori di confronto tra interi = : int x int booltest di uguaglianza > : int x int boolstrettamente maggiore : int x int boolmaggiore o uguale < : int x int boolstrettamente minore : int x int boolminore uguale

25 G. Amodeo, C. Gaibisso Ordinamento lessicografico Programmazione di Calcolatori: I diagrammi di flusso24 Tabella dei codici ASCII

26 G. Amodeo, C. Gaibisso Operatori …. Programmazione di Calcolatori: I diagrammi di flusso25 Operatori di confronto tra caratteri = : char x char booltest di uguaglianza < : char x char boolprecede lessicograficamente : char x char booluguale o precede lessicograficamente > : char x char boolsegue lessicograficamente : char x char booluguale o segue lessicograficamente

27 G. Amodeo, C. Gaibisso Condizioni di validità Programmazione di Calcolatori: I diagrammi di flusso26 Esiste un solo blocco di inizio ed ha un solo arco uscente; esistono uno o più blocchi di termine ciascun blocco di elaborazione, di acquisizione, di restituzione ha un solo arco entrante e un solo arco uscente; ciascun blocco di decisione ha un solo arco entrante e due uscenti; ciascun arco entra in un blocco o si innesta su un altro arco; ciascun blocco è raggiungibile dal blocco iniziale; da qualsiasi blocco è possibile raggiungere almeno uno dei blocchi di termine.

28 G. Amodeo, C. Gaibisso Un semplice esempio Programmazione di Calcolatori: I diagrammi di flusso 27 Calcolare il massimo di una sequenza di N1 numeri interi Start Nome:MaxTraN Variabili:int N, count, max, val int count max val count 1 count = N true max val false N, val max End count count+1 val > max val true false

29 G. Amodeo, C. Gaibisso Vettori Programmazione di Calcolatori: I diagrammi di flusso28 Vettore (monodimensionale) di n elementi: definisce una corrispondenza biunivoca tra un insieme omogeneo di n elementi e linsieme di interi {0, 1, …, n-1} Esempio: Vettore di 5 interi Definizione tipo Vettore nome Vettore [dim Vettore ] costante intera

30 G. Amodeo, C. Gaibisso Vettori Programmazione di Calcolatori: I diagrammi di flusso29 Vett[0] Vett[1] Vett[2] Effetto Stato F B A Stato I B A Start … Variabili: int Vett[3] intero Accesso allelemento di un vettore nome Vettore [indice] 0 espressione a valore intero dim Vettore -1

31 G. Amodeo, C. Gaibisso Vettori Programmazione di Calcolatori: I diagrammi di flusso 30 Start Nome:AcqVett Variabili:int index, int vett[ K ] index 0 index < K End false index index+1 true vett[index] Esempio Acquisizione del contenuto di un vettore di K interi

32 G. Amodeo, C. Gaibisso Matrici Programmazione di Calcolatori: I diagrammi di flusso31 Matrice di n x m elementi: definisce una corrispondenza biunivoca tra un insieme omogeneo di n x m elementi e linsieme di coppie di interi {(0,0), (0,1), …., (n-1, m-1)} Esempio: Matricedi 5 x 2 interi Definizione tipo Matrice nome Matrice [dim Righe ] [dim Colonne ] costanti intere (0,0) (1,0) (2,0) (3,0) (4,0) (0,1) (1,1) (2,1) (3,1) (4,1)

33 G. Amodeo, C. Gaibisso Matrici Programmazione di Calcolatori: I diagrammi di flusso32 Accesso allelemento di una matrice nome Matrice [indice Riga ][indice Colonna ] 0 espressione a valore intero dim Righe -1 0 espressione a valore intero dim Colonne -1

34 G. Amodeo, C. Gaibisso Matrici Programmazione di Calcolatori: I diagrammi di flusso 33 Start Nome:AcqMatRighe Variabili:int riga, col int mat[ P ][ Q ] riga 0 col 0 riga < P End false true col < Q col col+1 false riga riga+1 col 0 mat[riga][col] true Esempio Acquisizione del contenuto di una matrice di P x Q interi (per righe)

35 G. Amodeo, C. Gaibisso Matrici Programmazione di Calcolatori: I diagrammi di flusso 34 Start Nome:AcqMatCol Variabili:int riga, col int mat[ P ][ Q ] riga 0 col 0 col < Q End false true riga < P riga riga+1 false riga 0 col col+1 mat[riga][col] true Esempio Acquisizione del contenuto di una matrice di P x Q interi (per colonne)

36 G. Amodeo, C. Gaibisso Matrici Programmazione di Calcolatori: I diagrammi di flusso 35 Start Nome:AcqMat Variabili:int riga, col, max int mat[ P ][ Q ] riga 0 col 0 max mat[0][0] End false col < Q false riga 0 col col+1 true riga < P true mat[riga][col] > max max mat[riga][col] true riga riga+1 false Restituzione del massimo elemento di una matrice di P x Q interi, P 1, Q 1 Esempio


Scaricare ppt "G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di Flusso Programmazione di Calcolatori: I diagrammi di flusso 1."

Presentazioni simili


Annunci Google