Logo Facebook8    Logo Youtube12     Logo twitter

Inmultirea a doua matrici | Programe C++

Mai multe probleme C

Cerinta:

Se considera doua matrici cu m linii si n coloane. Sa se inmulteasca cele doua matrici si sa se afiseze matricea rezultata.


Rezolvare:

 

 

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
int n,i,j,k,a[10][10],b[10][10],c[10][10];
cout<<"Introduceti gradul matricei:";
cin>>n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<"A["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}}

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<"B["<<i<<"]["<<j<<"]=";
cin>>b[i][j];
}}

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c[i][j]=0;
for(k=1;k<=n;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}}

for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;

}


Explicatie:

Programul inmulteste doua matrici cu valori citite de la tastatura.
n reprezinta gradul matricei (marimea celor doua matrici citite de la tastatura).
si j reprezinta contoarele celor doua matrici.
Pentru matricea rezultata "C", se va crea contorul "k";
a[10][10], b[10][10] si c[10][10] reprezinta declararea matricilor ([10][10] reprezinta gradul maxim pe care il poate avea matricea).

Pentru fiecare matrice, vom crea un contor (for) pentru a le parcurge. Fiecare matrice va contine doua instructiuni for. Primul for va contine contorul "i" si cel de-al doilea va contine contorul "j". Contoarele "i" si "j" reprezinta liniile si coloanele matricei:

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<"A["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}}

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<"B["<<i<<"]["<<j<<"]=";
cin>>b[i][j];
}}

In matricea C va fi salvata si afisat produsul celor doua matrici. Pentru aceasta matrice, vom crea trei instructiuni for si vom egala matricea C[i][j] cu 0 pentru ca egalitatea "c[i][j]=c[i][j]+a[i][k]*b[k][j];" sa fie adevarata. 

for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c[i][j]=0;
for(k=1;k<=n;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}}

La final, vom crea un for care are rolul de a afisa matricea "c[i][j]":

for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}

Acest site foloseste cookie-uri.

Folosim cookie-uri pentru a vă asigura că aveti cea mai bună experiență pe acest site.

I understand
DESPRE NOI
World-IT este un site care are ca domeniu Tehnologia Informatiei(IT).
Acest site are ca prim scop introducerea persoanelor in acest domeniu. Mai multe informatii aici.

URMARESTE-NE 
Logo Facebook8  Logo Youtube12  Logo twitter