Realizziamo un algoritmo che calcoli il prodotto tra due matrici in C.
Procediamo seguendo questi passi:
- Inseriamo i dati nella prima matrice
- Inseriamo i dati nella seconda matrice
- Calcoliamo il prodotto
- Visualizziamo la prima matrice
- Visualizziamo la seconda matrice
E’ utile sapere che il prodotto tra due matrici si può ottenere se il numero di colonne della prima matrice è uguale al numero di righe della seconda matrice.
Quindi ad esempio se ho:
a[M][N] e b[N][P] il prodotto è possibile.
a[M][N] e b[M][P] il prodotto non è possibile.
Algoritmo in linguaggio C per il calcolo del prodotto tra due matrici
Immaginiamo di poter utilizzare quindi queste due matrici, a[M][N] e b[N][P]. La matrice prodotto sarà quindi c[M][P].
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 Laptop 15s-fq5002sl Notebook, Intel Core i7-1255U, RAM 16GB DDR4, SSD 512GB, Intel Iris X, Display 15.6” FHD, Antiriflesso,Wi-Fi, Lettore SD e Impronte Digitali, Webcam HD,Windows 11 Home,Argento
699,99 € (a partire da 18 Marzo 2024 14:37 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 notebook, Cpu Intel i5 13Th, 1335U 10 Core, 24 Gb ram, Full HD 15,6", SSD Nvme da 256 Gb + SSD da 1 TeraByte, webcam, usb C, Win 11 Pro, pronto all'uso, garanzia Italia
699,00 € (a partire da 18 Marzo 2024 14:37 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.)Definiamo le dimensioni delle righe e delle colonne, ad esempio:
#define M 4
#define N 3
#define P 5
Quindi avremo una matrice a[4] [3] e una matrice b[3] [5].
Dapprima carichiamo i dati della prima matrice
printf("\nInseriamo i dati nella 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]);
}
e poi i dati della seconda matrice
printf("\nInseriamo i dati nella seconda matrice \n");
for (i=0;i<N;i++)
for(j=0;j<P;j++) {
printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
scanf("%d", &b[i][j]);
}
La matrice prodotto sarà dunque la matrice c[4][5]
Per ottenere il valore dell’elemento i, j della matrice prodotto si inizializza a zero c[i][j]=0;
Con un ciclo che scandisce la riga i di a e la colonna j di b, si accumula in c la sommatoria dei prodotti dei corrispondenti elementi di a e b.
La variabile k permette di scorrere contemporaneamente la linea i di a e la colonna j di b. Questo procedimento lo ripetiamo per ogni elemento della matrice prodotto.
Algoritmo completo del prodotto tra matrici in linguaggio C
#include <stdio.h>
#define N 3
#define P 5
#define M 4
int a[M][N];
int b[N][P];
int c[M][P];
main() {
int i,j,k;
printf("\nInseriamo i dati nella 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<N;i++)
for (j=0;j<P;j++) {
printf("Inserisci elemento di riga %d e colonna %d: ", i, j);
scanf("%d", &b[i][j]);
}
printf("\nCalcoliamo il prodotto \n");
for (i=0;i<M;i++)
for(j=0;j<P;j++) {
c[i][j]=0;
for(k=0;k<N;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
printf("\nStampiamo i dati della prima 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 seconda matrice \n");
for (i=0;i<N;i++) {
printf("\n");
for(j=0;j<P;j++)
printf("\t%d", b[i][j]);
}
printf("\nStampiamo i dati della matrice prodotto \n");
for (i=0;i<M;i++) {
printf("\n");
for(j=0;j<P;j++)
printf("\t%d", c[i][j]);
}
}
Ovviamente proponete pure il vostro metodo nei commenti sotto.
Alcuni link utili:
Media dei numeri in un array in C
Apple iPad (6a Generazione) 32 GB Wi-Fi - Argento (Ricondizionato)
184,40 € (a partire da 18 Marzo 2024 15:18 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.)WOZIFAN PC Portatile Win 11 Computer 14 Pollici Notebook 6GB+256GB Supporta l' espansione 1TB SSD Intel 2.4G+5G 1080P con mouse senza fili & & Film in lingua siliconica per tastiera(Italiana)-Rosso
209,49 € (a partire da 18 Marzo 2024 14:37 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.)Apple iPad 9,7 (5th Gen) 32GB Wi-Fi - Grigio Siderale (Ricondizionato)
189,89 € (a partire da 18 Marzo 2024 15:18 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.)Selection sort in linguaggio C
Insertion Sort in linguaggio C
Ottimo spiegato bene! Spero inserirai altri esempi.
Certo sicuramente, se ti va segui la mia pagina su facebook
https://www.facebook.com/Codingcreativo-158675988177964
in modo da restare sempre aggiornato sui miei articoli.