![Page 1: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/1.jpg)
C. Gaibisso Programmazione di Programmazione di CalcolatoriCalcolatori
Lezione VI Diagrammi di flusso
Programmazione di Calcolatori: I diagrammi di flusso 1
![Page 2: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/2.jpg)
C. Gaibisso Nozione intuitiva di Nozione intuitiva di algoritmoalgoritmo
Programmazione di Calcolatori: I diagrammi di flusso 2
• Nozione intuitiva di algoritmo• è una sequenza finita di istruzioni
• ogni istruzione è una stringa di lunghezza finita costruita a partire da un alfabeto di dimensione finita
• deve esistere un agente di calcolo C capace di eseguire le istruzioni dell’algoritmo
• C deve avere capacità di memorizzazione
• …..
![Page 3: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/3.jpg)
C. Gaibisso
I diagrammi di flussoI diagrammi di flusso
Programmazione di Calcolatori: I diagrammi di flusso 3
• 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 l’ordine di esecuzione delle istruzioni
• Diagrammi di Flusso:
![Page 4: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/4.jpg)
C. Gaibisso
EsempioEsempio
Programmazione di Calcolatori: I diagrammi di flusso 4
• Calcolare la somma dei numeri interi 1 i N
StartNome: SommaNVariabili: int N, cont, somma
N
somma 0cont 0
cont < N sommacont cont+1
somma somma+cont
End
true false
Inizio del diagramm
a
Termine del diagramma
Acquisizione del numero N Inizializzazione della somma parziale e del
contatore
Aggiornamento della somma
parziale e del contatore
Restituzione del valore calcolato
Verifica sul numero di somme
effettuate
![Page 5: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/5.jpg)
C. Gaibisso
Capacità di memorizzazioneCapacità di memorizzazione
Programmazione di Calcolatori: I diagrammi di flusso 5
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 (il tipo del valore memorizzabile)
A
B
C
![Page 6: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/6.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 6
è una “foto” istantanea della memoria
• Molto informalmente:
• Molto meno informalmente:è determinato dall’insieme delle
triple
(nomevar, tipovar,
valorevar)
![Page 7: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/7.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 7
Stato1
A
B
C
D
‘c’
120
‘d’
2
Stato2
A
B
C
D
‘c’
120
‘d’
2
SI• Stato1 = Stato2 ?
![Page 8: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/8.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 8
Stato1
A
C
D
‘c’
‘d’
2
Stato2
A
B
C
D
‘c’
120
‘d’
2
NO• Stato1 = Stato2 ?
![Page 9: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/9.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 9
Stato1
A
B
C
D
Stato2
A
B
C
D
‘c’
120
‘d’
2
12
‘m’
‘d’
8
NO• Stato1 = Stato2 ?
![Page 10: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/10.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 10
Stato1
A
C
E
D
Stato2
A
E
C
D
12
‘m’
‘d’
8
12
‘d’
‘m’
8
SI• Stato1 = Stato2 ?
![Page 11: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/11.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 11
• Stato1 = Stato2 ?
Stato1
B
C
Stato2
D
A
B
C
D
A
Non lo so
![Page 12: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/12.jpg)
C. Gaibisso
Stato della MemoriaStato della Memoria
Programmazione di Calcolatori: I diagrammi di flusso 12
• Stato1 = Stato2 ?
true
Stato1
A
B
Stato2
C
D
D
B
C
A
12
true
‘d’
8
8
‘d’
12
SI
![Page 13: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/13.jpg)
C. Gaibisso
Tipologia dei blocchiTipologia dei blocchi
Programmazione di Calcolatori: I diagrammi di flusso 13
StartNome: SommaNVariabili: int N, somma, cont
N
somma 0cont 0
cont < N sommacont cont+1
somma somma+cont
End
true false
Inizio del diagram
ma
Termine del diagramma
• Blocchi di inizio e di termine
esattamente 1
almeno 1
Nome del diagramm
a
Nome delle variabili
Tipo delle variabili
intero: -2, -1, 0, 1, 2 ….carattere: ‘c’, ‘2’, ‘!’ …booleano: true, false
Definizione delle variabili
utilizzate
![Page 14: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/14.jpg)
C. Gaibisso
Definizione di una variabileDefinizione di una variabile
Programmazione di Calcolatori: I diagrammi di flusso 14
N
intero
StatoF
B
A
120
2
StatoI
B
A
120
2
• Blocco di inizio
StartNome: SommaNVariabili: int N,
somma,cont
1. si individua una locazione di memoria disponibile
2. si riserva tale locazione3. si associano a tale locazione il nome e il tipo
specificati
Per ognuna delle variabili elencate nel blocco
![Page 15: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/15.jpg)
C. Gaibisso
Tipologia dei blocchiTipologia dei blocchi
Programmazione di Calcolatori: I diagrammi di flusso 15
si rilascia la memoria allocata ad ognuna delle variabili elencate nel blocco “Start”
• Blocco di termine:
End
StatoI
somma
cont
10
4
N 4
StatoF
10
somma
cont
N
4
4
![Page 16: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/16.jpg)
C. Gaibisso
Tipologia dei blocchiTipologia dei blocchi
Programmazione di Calcolatori: I diagrammi di flusso 16
Blocco di acquisizione
Blocco di restituzione
StartNome: SommaNVariabili: int N, somma, cont
N
somma 0cont 0
cont < N sommacont 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
![Page 17: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/17.jpg)
C. Gaibisso
Tipologia dei blocchiTipologia dei blocchi
Programmazione di Calcolatori: I diagrammi di flusso 17
StartNome: SommaNVariabili: int N, cont, somma
N
somma 0cont 0
cont < N sommacont cont+1
somma somma+cont
End
true false
• Blocco di elaborazione
Le operazioni di assegnamento
vengono considerate nell’ordine in cui
compaiono nel blocco dall’alto verso il basso
Blocco di elaborazione
Blocco di elaborazione
Contiene una sequenza di operazioni di
assegnamentoFormato di
un’operazione di assegnamento:
nome espressione
![Page 18: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/18.jpg)
C. Gaibisso Operazioni di Operazioni di assegnamentoassegnamento
Programmazione di Calcolatori: I diagrammi di flusso 18
1. Si valuta il valore di espressione
2. Si aggiorna con tale valore il contenuto della variabile identificata da nome
• nome espressione
StatoI
cont
somma
0
3
N 3
StatoF
cont
somma
0
0
N 3cont cont+1
somma somma+cont
1
4
1
4
![Page 19: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/19.jpg)
C. Gaibisso
Tipologia dei blocchiTipologia dei blocchi
Programmazione di Calcolatori: I diagrammi di flusso 19
StartNome: SommaNVariabili: int N, cont, somma
N
somma 0cont 0
cont < N sommacont cont+1
somma somma+cont
End
true false
• Blocco di decisione
Blocco di decisione
Confronta due o più espressioni secondo diverse
modalitàSulla base del risultato del
confronto individua il prossimo blocco del flusso
![Page 20: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/20.jpg)
C. Gaibisso
Riassumendo ….Riassumendo ….
Programmazione di Calcolatori: I diagrammi di flusso 20
nome1, nome2, …
nome1, nome2, …
• Blocco di acquisizione
• Blocco di restituzione
• Blocco di inizioStartNome: nome del diagrammaVariabili: tipo1 nome1
tipo2 nome2
……
• Blocco di termine End
• Blocco di elaborazionenome1
espressione1
nome2 espressione2
……
intboolchar
![Page 21: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/21.jpg)
C. Gaibisso
Riassumendo ….Riassumendo ….
Programmazione di Calcolatori: I diagrammi di flusso 21
• Blocco di decisione
espressione avalore booleano
true
false
![Page 22: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/22.jpg)
C. Gaibisso
Operatori ….Operatori ….
Programmazione di Calcolatori: I diagrammi di flusso 22
• Operatori aritmetici + : int x int int somma tra
interi
- : int x int int differenza tra interi
* : int x int int prodotto tra interi
/ : int x int int divisione intera
% : int x int int resto della divisione intera
• Operatori logici not : bool bool negazione
and : bool x bool bool and logico
or : bool x bool bool or logico
![Page 23: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/23.jpg)
C. Gaibisso
Operatori ….Operatori ….
Programmazione di Calcolatori: I diagrammi di flusso 23
• Operatori di confronto tra interi = : int x int bool test di uguaglianza
> : int x int bool strettamente maggiore
≥ : int x int bool maggiore o uguale
< : int x int bool strettamente minore
≤ : int x int bool minore uguale
![Page 24: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/24.jpg)
C. Gaibisso
Ordinamento lessicograficoOrdinamento lessicografico
Programmazione di Calcolatori: I diagrammi di flusso 24
Tab
ella
dei co
dic
i A
SC
II
![Page 25: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/25.jpg)
C. Gaibisso
Operatori ….Operatori ….
Programmazione di Calcolatori: I diagrammi di flusso 25
• Operatori di confronto tra caratteri = : char x char bool test di uguaglianza
< : char x char bool precede lessicograficamente
≤ : char x char bool uguale o precede lessicograficamente
> : char x char bool segue lessicograficamente
≥ : char x char bool uguale o segue
lessicograficamente
![Page 26: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/26.jpg)
C. Gaibisso
Condizioni di validitàCondizioni di validità
Programmazione di Calcolatori: I diagrammi di flusso 26
• Esiste un solo blocco di inizio e almeno un blocco di termine;
• il blocco di inizio ha un solo arco uscente e non ha archi entranti;
• ogni blocco di uscita ha un solo arco entrante e non ha archi uscenti;
• ciascun blocco di elaborazione, di acquisizione, e 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.
![Page 27: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/27.jpg)
C. Gaibisso
Un semplice esempioUn semplice esempio
Programmazione di Calcolatori: I diagrammi di flusso 27
Calcolare il massimo di una
sequenza di N≥1 numeri
interi
StartNome: MaxTraNVariabili: int N, count, max, val
int count
truemax
N, val
max valcount 1
count = N
false
count count+1
valval > maxmax valtrue
false
End
![Page 28: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/28.jpg)
C. Gaibisso
VettoriVettori
Programmazione di Calcolatori: I diagrammi di flusso 28
• Vettore (monodimensionale) di n elementi:
definisce una corrispondenza biunivoca tra un insieme omogeneo di n elementi e l’insieme di interi {1, 2, …, n}
• Esempio: 1
2
3
4
5
Vettore di 5 interi
5
-1
32
-4
27
• Definizione
tipoVettore nomeVettore [dimVettore]
costante intera
![Page 29: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/29.jpg)
C. Gaibisso
VettoriVettori
Programmazione di Calcolatori: I diagrammi di flusso 29
Vett[1]
Vett[2]
Vett[3]
• Effetto
StatoF
B
A
120
2
StatoI
B
A
120
2
Start…Variabili: int Vett[3]
intero
• Accesso all’elemento di un vettore
nomeVettore [indice]
1 espressione a valore intero dimVettore
![Page 30: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/30.jpg)
C. Gaibisso
VettoriVettori
Programmazione di Calcolatori: I diagrammi di flusso 30
StartNome: AcqVettVariabili: int index,
int vett[K]
index 1
index <= K Endfalseindex index+1
true
vett[index]
• Esempio
Acquisire il contenuto di un
vettore di K interi
![Page 31: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/31.jpg)
C. Gaibisso
VettoriVettori
Programmazione di Calcolatori: I diagrammi di flusso 31
StartNome: MaxVettVariabili: int index,
int vett[K]
max vett[1]index 2
index > K
End
• Esempio
Calcolare il massimo
elemento di un vettore di K
interi
truemax
vett[index] > max
index index+1
false
max vett[index]
true
![Page 32: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/32.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 32
• Matrice di n x m elementi:definisce una corrispondenza biunivoca tra un insieme omogeneo di n x m elementi e l’insieme di coppie di interi {(1,1), (1,2), …., (n, m)}
• Esempio:
Matricedi 5 x 2 interi
• Definizione
tipoMatrice nomeMatrice [dimRighe] [dimColonne]
costanti intere
(1,1)(2,1)(3,1)(4,1)(5,1)
(1,2)(2,2)(3,2)(4,2)(5,2)
4-112-94
8
1547
7
![Page 33: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/33.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 33
• Accesso all’elemento di una matrice
nomeMatrice [indiceRiga][indiceColonna]
1 espressione a valore intero dimRighe
1 espressione a valore intero dimColonne
![Page 34: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/34.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 34
StartNome: AcqMatRigheVariabili: int riga, col
int mat[P][Q]
riga 1col 1
riga <= P Endfalse
true
col <= Q
col col+1
false
riga riga+1col 1
mat[riga][col]
true
• Esempio
Acquisire il contenuto di
una matrice diP x Q interi (per
righe)
![Page 35: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/35.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 35
StartNome: AcqMatColVariabili: int riga, col
int mat[P][Q]
riga 1col 1
col <= Q Endfalse
true
riga <= P
riga riga+1
false
riga 1col col+1
mat[riga][col]
true
• Esempio
Acquisire il contenuto di
una matrice diP x Q interi (per
colonne)
![Page 36: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/36.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 36
StartNome: AcqMatVariabili: int riga, col, max
int mat[P][Q]
riga 1col 1
max mat[1][1]
Endcol <= Q
false
riga 1col col+1
true
riga <= P
true
mat[riga][col] > max
max mat[riga][col]
true
riga riga+1false
Calcolare il massimo
elemento di una matrice di P x Q
interi
• Esempio
falsemax
![Page 37: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/37.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 37
StartNome: AcqMatVariabili: int ind, max
int mat[P][P]
ind 1max mat[1][1]
End ind <= P
true
mat[ind][ind] > max
max mat[ind][ind]
true
ind ind+1false
Calcolare il massimo
elemento sulla diagonale
principale di una matrice di P
x P interi
• Esempio
falsemax
![Page 38: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/38.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso 38
StartNome: AcqMatVariabili: int ind, max
int mat[P][P]
ind 1max mat[1][P]
End ind <= P
true
mat[ind][P–ind+1] > max
max mat[ind][P –ind+1]
true
ind ind+1
false
Calcolare il massimo elemento sull’anti-
diagonale di una matrice di P
x P interi
• Esempio
falsemax
![Page 39: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/39.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso39
• Prodotto tra matrici:
siano date una matrice A di dimensione m x n ed una seconda matrice B di dimensioni n x p.
Viene definito prodotto matriciale di A per B (A x B) la matrice C, di dimensioni m x p, i cui termini ci,j sono calcolati come segue:
j,r
n
1rr,ij,i bac
![Page 40: C. Gaibisso Programmazione di Calcolatori Lezione V I Diagrammi di flusso Programmazione di Calcolatori: I diagrammi di flusso 1](https://reader035.vdocuments.site/reader035/viewer/2022070313/5542eb66497959361e8d1b54/html5/thumbnails/40.jpg)
C. Gaibisso
MatriciMatrici
Programmazione di Calcolatori: I diagrammi di flusso40
StartNome: ProdMatVariabili: int riga, col, ind
int A[P][Q], int B [Q][R], int C [P][R],
riga 1col 1
riga <= P
false
riga riga+1col 1
true
col <= R
ind <= Q
C[riga][col] C[riga][col] +(A[riga][ind]*B[ind][col])
true
ind ind+1
Calcolare il prodotto tra due matrici di interi, di dimensioni P x Q la prima, Q x R
la seconda
• Esempio
trueC[riga][col] 0
ind 1
col col+1
false
falseEnd