Realizziamo adesso un algoritmo che calcola la somma di due matrici in C.
Innanzitutto va detto che la somma si può effettuare solo se le due matrici hanno lo stesso numero di righe e di colonne.
Date due matrici A[M][N] e B[M][N] , la somma si effettua semplicemente sommando l’elemento della prima riga e della prima colonna della matrice A con l’elemento della prima riga e della prima colonna della matrice B. E così via per gli altri elementi.
Si avrà una matrice C[M][N] .
Ad esempio se guardiamo le matrici della figura sotto A e B, la matrice somma sarà la matrice C che si ottiene sommando il primo elemento della prima riga e della prima colonna di A (cioè l’elemento 2) con il primo elemento della prima riga e della prima colonna di B (cioè l’elemento 4). Il secondo elemento della matrice somma sarà dato dalla somma di 8 e 15. Ecc..
Allego le foto sotto.
Algoritmo che realizza la somma di due matrici in C
Realizziamo adesso il programma, premettendo che l’uso delle funzioni lo renderebbe molto più snello ma ne rimando l’uso dopo aver spiegato come si usano.
Lenovo ThinkPad, Pc portatile Intel Core i5-6th Pronto All'uso con Pacchetto Libre, Notebook Con Display HD da 15,6", Ram 32Gb, SSD 1Tb, W10 (Ricondizionato)
348,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)HP 640 G2, Pc Portatile Notebook intel core i5-6th, Display 14", Ram 16Gb, SSD 512Gb, Pacchetto Libre, W10 (Ricondizionato)
229,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Lenovo, Pc portatile Intel Core i5 Pronto All'Uso con Pacchetto libre office, Notebook Con Display HD da 14", Ram 16Gb, SSD 512Gb, Garanzia Italiana (Ricondizionato)
285,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)I passi da seguire sono questi:
- Inserire la prima matrice
- Inserire la seconda matrice
- Calcolare la matrice somma
Procediamo chiedendo in input il numero di righe e di colonne. Non ho fatto il controllo dell’input come nell’esempio precedente, ma si può aggiungere.
Inseriamo i dati nella prima matrice e i dati nella seconda matrice. Stampiamo le due matrici e poi le sommiamo (potevo fare anche prima la somma e poi la stampa delle due matrici, è indifferente).
La somma delle due matrici si ottiene sommando ciascun elemento della prima riga della matrice A con ogni elemento della stessa posizione della prima riga della matrice B. Ovvero:
C[i][j]=A[i][j]+B[i][j];
Come spiegato nelle due immagini sopra.
Allego il programma che chiaramente è solo un esempio. Si possono trovare altre varianti.
#include <stdio.h>
#define M 8
#define N 8
main() {
int A[M][N], B[M][N], C[M][N];
int n,m,i,j;
printf("Dammi il numero di righe: ");
scanf("%d", &m);
printf("Dammi il numero di colonne: ");
scanf("%d", &n);
printf("\nInseriamo i dati nella prima matrice \n");
for (i=0;i<m;i++)
for(j=0;j<n;j++) {
printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
scanf("%d", &A[i][j]);
}
printf("\nInseriamo i dati nella seconda matrice \n");
for (i=0;i<m;i++)
for(j=0;j<n;j++) {
printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
scanf("%d", &B[i][j]);
}
printf("\nStampiamo i dati della matrice \n");
for (i=0;i<m;i++) {
printf("\n");
for(j=0;j<n;j++)
printf("\t%d", A[i][j]);
}
printf("\nStampiamo i dati della matrice \n");
for (i=0;i<m;i++) {
printf("\n");
for(j=0;j<n;j++)
printf("\t%d", B[i][j]);
}
for (i=0;i<m;i++) {
for (j=0;j<n;j++)
C[i][j]=A[i][j]+B[i][j];
}
printf("\nStampiamo i dati della matrice somma\n");
for (i=0;i<m;i++) {
printf("\n");
for(j=0;j<n;j++)
printf("\t%d", C[i][j]);
}
}
Alcuni link utili:
Somma elementi cornice esterna
Somma dei numeri di una matrice
Ricerca elementi in una matrice