14.3 C
Roma
mercoledì, Maggio 12, 2021
Home Algoritmi C Prodotto tra matrici in C

Prodotto tra matrici in C

Lavorando con gli array, monodimensionali o bidimensionali che siano, si ha necessità di effettuare elaborazione con i dati al loro interno. L’operazione che analizzeremo oggi è il prodotto tra matrici. 

Il programma da noi creato è composto principalmente da quattro funzioni: 

  • Valorizza Dimensione 
  • Valorizza Matrice 
  • Stampa Matrice 
  • Prodotto Matrici 

La valorizzazione della dimensione è fondamentale per non fare in modo che il nostro programma non vada in errore. Se abbiamo creato delle matrici di dimensioni 20*20 e l’utente richiede di inserire 21 righe il programma non andrà in errore fino alla fase di caricamento del caricamento del 21° elemento, tuttavia effettuando un controllo come il nostro dove richiediamo che il numero delle righe e delle colonne non sia superiore all’indice massimo consentito (nel nostro esercizio odierno 20) e non sia inferiore a 1. 

La funzione della valorizzazione della matrice, effettua due cicli for, uno per ogni dimensione dell’array e richiede di inserire un valore all’utente, stesso ragionamento per stampa della matrice con la sola differenza che non richiede nulla ma effettua una stampa dei precedenti valori inseriti. 

La funzione che effettua il prodotto tra le matrici non differisce dallo stesso ragionamento della funzione di caricamento e di stampa. La funzione è composta da due cicli for uno per il numero delle righe ed uno al suo interno per il numero di colonne. La funzione inserisce all’interno di un terzo array “res” il risultato del prodotto del singolo elemento dell’array a con quello dell’array b, memorizzandolo nella stessa posizione. Infine, effettua una stampa del vettore risultante. 

#include<stdio.h>
#include<stdlib.h>
#define max 20

int valorizzazioneDimensione(char tipo[])
{
	int n;
	printf("Inserire il numero di %s: ",tipo);
	scanf("%d",&n);
	while((n>max)||(n<1))
	{
		printf("Valore errato inserire nuovamente il numero delle %s: ", tipo);
		scanf("%d",&n);
	}
	return (n);
}

void valorizzaMatrice(int a[][max],int c,int r)
{
	printf("Valorizzazione Matrice\n");
	for(int i = 0; i < r; i++)
	{
		for(int j = 0; j < c; j++)
		{
			printf("Inserisci %d colonna del %d rigo: ", i+1, j+1);
			scanf("%d", &a[i][j]);
		}
	}
}

void stampaMatrice(int a[][max],int c,int r)
{
	printf("Stampa Matrice\n");
	for(int i = 0; i < r; i++)
	{
		for(int j = 0; j < c; j++)
		{
			printf("%d\t",a[i][j]);
		}
		printf("\n");
	}
}

void prodottoMatrici(int a[][max],int b[][max],int c,int r)
{
	int res[max][max];
	for(int i = 0; i < r; i++)
	{
		for(int j = 0; j < c; j++)
		{
			res[i][j] = a[i][j] * b[i][j];
		}
	}
	stampaMatrice(res, c, r);
}


int main()
{
	int r, c;
	int a[max][max],b[max][max];
	r = valorizzazioneDimensione("Righe");
	c = valorizzazioneDimensione("Colonne");
	valorizzaMatrice(a,c,r);
	valorizzaMatrice(b,c,r);
	stampaMatrice(a,c,r);
	stampaMatrice(b,c,r);
	prodottoMatrici(a,b,c,r);
}

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
Corso C: https://www.developersumo.com/c/
Altri algoritmi in C: https://www.developersumo.com/category/corsi/c/algoritmi/
I nostri Corsi: https://www.developersumo.com/corsi/
Le nostre App su Play Store: https://play.google.com/store/apps/developer?id=Developer+Sumo

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Cos’è e come fare un Vlog

Se siete abituati ad usare la tecnologia è abbastanza probabile che siate giovani e che passiate molto tempo sui social e se...

Come usare e creare le classi in HTML

L'attributo class è utilizzato per assegnare ad un oggetto HTML una classe. Una delle caratteristiche principali delle classi HTML è che possono...

Lista compleanni personaggi Death Note

Death Note scritto da Tsugumi Ōba e illustrato da Takeshi Obata. È stato serializzato in Giappone dal 1º dicembre 2003 al 15...

Linguaggio di Programmazione di League of Legends

Se sei un appassionato di sviluppo informatico sicuramente ti sarai chiesto quale sia il linguaggi di programmazione di League of Legends. League...

Recent Comments