Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di...

37
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Unità 7 Matrici Domenico Daniele Bloisi

Transcript of Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di...

Page 1: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Corso di Laboratorio di Informatica

Ingegneria Clinica – BCLR

Unità 7

Matrici

Domenico Daniele Bloisi

Page 2: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Docente

Ing. Domenico Daniele Bloisi, PhD

Ricercatore

Dipartimento di Ingegneria Informatica, Automatica

e Gestionale “Antonio Ruberti”

Via Ariosto 25

(adiacente Piazza Dante,

Manzoni

Tram 3 fermata via Labicana)

email: [email protected]

home page:

Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Pagina 2

http://www.dis.uniroma1.it/~bloisi

Page 3: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Ricevimento

In aula, subito dopo le lezioni

Su appuntamento (tramite invio di una email)

presso:

Dipartimento di Ingegneria Informatica,

Automatica e Gestionale “Antonio Ruberti”,

via Ariosto 25 - II piano, stanza A209

Si invitano gli studenti a controllare regolarmente la

bacheca degli avvisi

http://www.dis.uniroma1.it/~bloisi/didattica/labinf1415.html#Avvisi

Pagina 3Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 4: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Orari

Lunedì 12.00 – 13.30

Aula 4, via del Castro Laurenziano 7A

Martedì 14.00 – 17.15

Aula 15, Laboratorio Didattico via Tiburtina 205

Mercoledì 12.00 – 13.30

Aula 4, via via del Castro Laurenziano 7A

Pagina 4Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 5: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Sommario – Unità 7

• Array come collezione di elementi

• Dichiarazione di variabili array

• Creazione di array

• Accesso agli elementi di un array

• Espressioni che rappresentano array

• Passaggio di parametri di tipo array

• Variabili array e puntatori

• Ordinamento degli elementi di un array

• Ricerca tra gli elementi di un array

• Matrici

Pagina 5Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 6: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Variabili array e puntatori

int A[4] = {1, 2, 3, 4};

int *B;

B = A;

int i;

for (i = 0; i < 4; i++)

printf("%d\n", B[i]);

B[0] = 10;

printf("A[0] = %d\n", A[0]);

La variabile array A può essere assegnata a una variabile

puntatore a int B.

Dopo l’assegnazione, B può essere usata come una

variabile array.

Pagina 6Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 7: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esecuzione

Se eseguito, il frammento di codice precedente produce il

seguente output

1

2

3

4

A[0] = 10

Nota: una variabile array non può essere assegnata a

un’altra variabile array.

Pagina 7Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 8: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Ricerca sequenziale di un elemento in un

arraySi scriva una funzione cercaArray che prenda come

parametri un array di interi a, un intero n (corrispondente alla

dimensione dell’array) e un intero e da ricercare nell’array.

La funzione deve restituire 1 se il valore e è presente

nell’array, 0 altrimenti:

int cercaArray(int a[], int n, int e) {

int i;

for (i = 0; i < n; i++) {

if (e == a[i])

return 1; //true

}

return 0; //false

}Pagina 8Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 9: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempio d’uso

int main() {

const int n = 3;

int x[n];

x[0] = 1; x[1] = 2; x[2] = 3;

printf("Array-x:\n");

int i;

for (i = 0; i < n; i++)

printf("%d\n", x[i]);

// cerca il valore 2 nell’array x

if ( cercaArray(x, n, 2) ) {

// l’elemento è stato trovato

printf("trovato\n");

}

else {

// l’elemento non è stato trovato

printf("non trovato\n");

}

}

Pagina 9Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 10: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esecuzione

Array-x:

1

2

3

trovato

Pagina 10Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 11: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Ricerca del valore massimo in un array

Si scriva una funzione massimoArray che prenda come

parametri un array di long a e la sua lunghezza n,

restituendo il massimo valore in a.

Si assuma che l’array contenga almeno un elemento.

long massimoArray(long a[], int n) {

long max = a[0];

int i;

for (i = 1; i < n; i++)

if (a[i] > max)

max = a[i];

return max;

}

Pagina 11Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 12: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempio d’uso

int main () {

// creazione array x di 5 long

long x[5] = { 5, 3, 9, 1, 2 };

int i;

for (i = 0; i < 5; i++) // stampa 5 3 9 1 2

printf("%ld ", x[i]);

printf("\nmassimo = %ld\n",

massimoArray(x,5));

}

Output5 3 9 1 2

massimo = 9

Pagina 12Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 13: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Rovesciare i valori di un array

Si scriva una funzione rovesciaArray che prenda come

parametri un array di interi a e la sua dimensione n.

La funzione deve modificare il contenuto di a posizionando gli

elementi in ordine inverso, dall’ultimo al primo.

void swap(int *i, int *j) {

int temp=*i; *i=*j; *j=temp;

}

void rovesciaArray(int a[], int n) {

int temp;

int i;

for (i=0; i < n/2; i++)

swap(&a[i],&a[n-i-1]);

return;

}Pagina 13Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 14: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempio d’uso

int main () {

const int n = 5;

// creazione array x di 5 int

int x[n];

// inizializzazione

x[0] = 5; x[1] = 3; x[2] = 9; x[3] = 5; x[4] = 12;

int i;

for (i = 0; i < n; i++) // stampa 5 3 9 5 12

printf("%d ", x[i]);

printf("\n");

rovesciaArray(x, n); // rovescia l’array x

for (i = 0; i < n; i++) // stampa 12 5 9 3 5

printf("%d ", x[i]);

printf("\n");

return EXIT_SUCCESS;

}

Pagina 14Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 15: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esecuzione

5 3 9 5 12

12 5 9 3 5

Il meccanismo di passaggio dei parametri fornisce come parametro attuale al metodo rovesciaArray

il riferimento all'array x e non una copia di x. Tale

riferimento viene poi copiato nel parametro formale a.

Quindi, a ed x si riferiscono al medesimo array.

Pagina 15Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 16: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Array come risultato di una funzione

int* copiaInversa(int a[], int n) {

int* temp = (int*)malloc(n * sizeof(int));

if(temp != NULL) {

int i;

for (i = 0; i < n; i++) {

temp[n-1-i] = a[i];

}

}

return temp;

}

La funzione copiaInversa prende come parametri un array

a e la sua dimensione n, restituendo un nuovo array con gli

elementi in ordine inverso rispetto ad a.

In questo esempio, poiché si vuole

restituire un array, tale array viene creato

dinamicamente all’interno della funzione copiaInversa.

cast (opzionale)

Pagina 16Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 17: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempio d’uso

int main () {

const int n = 5;

int x[n];

x[0] = 5; x[1] = 3; x[2] = 9; x[3] = 5; x[4] = 12;

int i;

for (i = 0; i < n; i++) // stampa 5 3 9 5 12

printf("%d ", x[i]);

printf("\n");

int * y = copiaInversa(x, n);

if(y == NULL) {

printf("ERRORE\n");

return EXIT_FAILURE;

}

for (i = 0; i < n; i++) // stampa 12 5 9 3 5

printf("%d ", y[i]);

printf("\n");

return EXIT_SUCCESS;

}Pagina 17Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 18: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Nota

Il risultato di una funzione può essere un riferimento

a un array, ma occorre usare come tipo di ritorno un puntatore, cioè non si può scrivere int [] come

risultato della funzione, bensì si deve usare int *

In alternativa, si sarebbe potuto usare un parametro

di tipo array anche per il risultato, con la relativa

dichiarazione fatta (staticamente) nella funzione

invocante. Ad esempio:void copiaInversa(int a[], int n, int res[])

Pagina 18Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 19: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Nota

Array allocati nello stack non devono essere deallocati esplicitamente. L’array x nell’esempio precedente sarà

deallocato automaticamente al termine del bloccodi codice in cui è definito (cioè nel main).

Invece, quando si alloca dinamicamente (nello heap) un array,

al termine del suo uso è necessario deallocare la memoria occupata esplicitamente, tramite la funzione free.

Nell’esempio precedente si può aggiungere nellafunzione main la seguente istruzione per rilasciare la memoria

allocata nella funzione:

free(y);

Pagina 19Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 20: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Matrici

Una matrice è una collezione in forma tabellare di

elementi dello stesso tipo, ognuno dei quali è

indicizzato da una coppia di numeri che

rappresentano riga e colonna dell’elemento.

Una matrice può essere rappresentata in C

mediante un array multidimensionale.

Pagina 20Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 21: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempi

Dichiarazione di una matrice 3x5 accessibile mediante la variabile m:

int m[3][5];

Pagina 21

? ? ? ? ?

? ? ? ? ?

? ? ? ? ?

Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 22: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Accesso agli elementi della matrice

// assegnazione dell’elemento della matrice m

// alla riga 1, colonna 2

m[1][2] = 39;

// assegnazione dell’elemento della matrice m

// alla riga 0, colonna 0

m[0][0] = 4;

printf("%d\n", m[1][2]); // stampa 39

Pagina 22

4 ? ? ? ?

? ? 39 ? ?

? ? ? ? ?

Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 23: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Rappresentazione grafica

Pagina 23

?? ? ?

? ? ??

? ? ?? ?

Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 24: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Espressioni che denotano oggetti matrice

Poiché una matrice è semplicemente un array i cui elementi

sono a loro volta array, nella definizione di matrici è possibile

utilizzare espressioni che denotano matrici come nel

seguente esempio:

int m[][2] = {

{ 3, 5 },

{ 9, 12 }

};

Si noti che solo la prima dimensione dell’array

può essere non specificata.

Pagina 24Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 25: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esempio

int main () {

int m[][2] = {

{ 3, 5 },

{ 9, 12 }

};

int i, j;

for(i = 0; i < 2; i++) {

for(j = 0; j < 2; j++) {

printf("%d ", m[i][j]);

}

printf("\n");

}

}

Cosa stampa questo

programma?

Pagina 25Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 26: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esecuzione

La definizione di matrice

int m[][2] = {

{ 3, 5 },

{ 9, 12 }

};

è equivalente a:

int m[2][2];

m[0][0] = 3;

m[0][1] = 5;

m[1][0] = 9;

m[1][1] = 12;

Pagina 26Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 27: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Numero di righe e colonne di una matrice

Usando la funzione sizeof è possibile risalire al numero di

elementi dell’array, anche nel caso multidimensionale.

int x[][2] = {{ 3, 5}, {9, 12}};

printf("dimensione array %d byte\n",

sizeof(x));

stampa il valore 16, che corrisponde al numero di byte per memorizzare 4 int (4 byte ciascuno)

Pagina 27Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 28: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Stampa di una matrice per righe

for (i = 0; i < N; i++) {

for (j = 0; j < M; j++)

printf("%d ", m[i][j]);

printf("\n");

}

stampa di una matrice NxM per righe

Si noti che per accedere a tutti gli elementi della matrice m vengono usati

due cicli for annidati:

1) un for esterno che scandisce le righe (i)

2) un for interno che scandisce gli elementi di ogni riga (j).

Quando tutti gli elementi di una riga sono stati stampati, viene stampato

un ritorno a capo.

Pagina 28Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 29: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Stampa di una matrice per colonne

for (i = 0; i < N; i++) {

for (j = 0; j < M; j++)

printf("%d ", m[j][i]);

printf("\n");

}

Esercizio 7.5

Scrivere un programma che stampi prima per righe e poi

per colonne la matrice1 2 3

4 5 6

Stampa di una matrice NxM per colonne

Pagina 29Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 30: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Somma di matrici

Si assuma che A e B abbiano le stesse dimensioni (stesso

numero di righe e stesso numero di colonne).Si vogliono definire i valori di una nuova matrice C ottenuta

sommando gli elementi corrispondenti di A e B.

for (i = 0; i < N; i++)

for (j = 0; j < M; j++)

C[i][j] = A[i][j] + B[i][j];

Per accedere a tutti gli elementi della matrice A (e a quelli di

B) usiamo due cicli for annidati:

1) for esterno che scandisce le righe (i),

2) for interno che scandisce gli elementi di ogni riga (j).

Pagina 30Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 31: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Prodotto di matrici (1/2)

Si scriva un frammento di codice che definisca i valori di una nuova matrice C ottenuta come

prodotto di A e B.

Si assuma che

1. Le matrici siano quadrate, cioè abbiano lo

stesso numero di righe e colonne

2. Le matrici abbiano le stesse dimensioni.

Pagina 31Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 32: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Prodotto di matrici (2/2)

Ogni elemento C[i][j] del prodotto di matrici A・B è ottenuto come prodotto scalare della riga i di A

con la colonna j di B,

cioè per ogni coppia di indici i,j, si ha:

Pagina 32Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 33: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esecuzione

for (i = 0; i < N; i++) {

for (j = 0; j < N; j++) {

C[i][j] = 0;

for (k = 0; k < N; k++)

C[i][j] += A[i][k] * B[k][j];

}

}

Si noti che per calcolare il prodotto delle matriciC = A x B si usano tre cicli for annidati:

1) for esterno che scandisce le righe (i) di C,

2) for intermedio che scandisce le colonne (j) di C,

3) for più interno che calcola il prodotto scalare della riga i

di A con la colonna j di B, che viene salvato in C[i][j].

Pagina 33Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 34: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Passaggio di parametri matrice

Nel passaggio dei parametri per per array multi-dimensionali è

necessario specificare nell’intestazione della funzione tutte le

dimensioni dell’array, eccetto la prima.

Per le matrici è, quindi, necessario specificare il numero delle

colonne, mentre il numero delle righe può essere omesso.

void stampaMatrice (int A[][3], int N) {

//corpo della funzione

...

}

Pagina 34Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 35: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Passaggio di parametri matrice

La funzione stampaMatrice stamperà solo matrici

con 3 colonne!

Dovendo esplicitare il numero di colonne non è

possibile scrivere una funzione che stampi matrici di dimensione NxN, ma solo Nx3

Per ovviare a questo inconveniente possono essere

utilizzate

1) opportune strutture di dati che consentano di

manipolare strutture bi-dimensionali2) apposite librerie matematiche (e.g., gsl).

Pagina 35Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 36: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esercizi

Esercizio 7.6

Scrivere una funzioneint arrayUguali(int[] A, int[] B, int n)

che restituisca

1 se gli array A e B sono uguali (cioè hanno tutti

gli elementi corrispondenti uguali)

0 altrimenti

Pagina 36Laboratorio di Informatica

2014/2015

Matrici

Unità 7

Page 37: Presentazione di PowerPoint - uniroma1.itbloisi/didattica/ingegneria... · Laboratorio di Informatica Pagina 30 2014/2015 Matrici Unità 7. Prodotto di matrici (1/2) Si scriva un

Esercizi

Esercizio 7.7Una matrice M si dice diagonale se tutti gli elementi

M[i][j] con i diverso da j (cioè non appartenenti

alla diagonale principale) valgono zero.

Scrivere una funzione che restituisca 1 se la matrice M è diagonale e 0 altrimenti.

Pagina 37Laboratorio di Informatica

2014/2015

Matrici

Unità 7