Concetti Chiave
- La funzione crea una matrice triangolare inferiore di interi allocando memoria dinamicamente per risparmiare spazio.
- La matrice è costruita riempiendo ogni riga con un numero crescente di elementi, partendo da 1 fino all'ordine specificato.
- La memoria per ogni riga viene allocata in modo decrescente, riducendo il numero di colonne per ogni riga successiva.
- L'allocazione dinamica della matrice viene eseguita tramite l'uso delle funzioni malloc per gestire le righe e le colonne necessarie.
- La funzione restituisce un puntatore al primo elemento della matrice, consentendo l'accesso e la manipolazione dei dati esternamente.
Scrivi una funzione C/C++ che crea e restituisce una matrice triangolare di interi i cui elementi hanno valori 1, 2, 3, ... . Naturalmente, la matrice deve essere allocata dinamicamente e non bisogna usare più memoria di quella strettamente necessaria.
Ad esempio se l’ordine (della matrice) è 5 la funzione deve creare la matrice:
1 2 3 4 5
6 7 8 9
10 11 12
13 14
15
Scrivi l’istruzione di chiamata e definisci tutte le variabili necessarie.
Definizione (codifica) della funzione:
int **matriceTriang(int ordine)
{
int **m = (int **) malloc(ordine*sizeof(int *)); //Alloca il vettore delle righe
int r, c, numCol = ordine, k = 1;
for (r = 0 ; r
{
m[r] = (int *) malloc(numCol*sizeof(int)); //Alloca la riga r-esima
for (c = 0 ; c
{
m[r][c] = k;
k++;
}
numCol--;
}
return m;
}
int ** matrix;
int ordine;
matrix = matriceTriang(ordine);