C ++ programa dviem matricoms padauginti naudojant daugialypius matricas

Ši programa užima dvi atitinkamai r1 * c1 ir r2 * c2 eilės matricas. Tada programa padaugina šias dvi matricas (jei įmanoma) ir parodo jas ekrane.

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C ++ programavimo temas:

  • C ++ daugiamatės masyvai
  • C ++ masyvai

Norėdami padauginti dvi matricas, pirmosios matricos stulpelių skaičius turėtų būti lygus eilučių į antrąją matricą skaičiui. Ši programa rodo klaidą, kol pirmosios matricos stulpelių skaičius bus lygus antrosios matricos eilučių skaičiui.

Pavyzdys: padauginkite dvi matricas nenaudodami funkcijų

 #include using namespace std; int main() ( int a(10)(10), b(10)(10), mult(10)(10), r1, c1, r2, c2, i, j, k; cout <> r1>> c1; cout <> r2>> c2; // If column of first matrix in not equal to row of second matrix, // ask the user to enter the size of matrix again. while (c1!=r2) ( cout << "Error! column of first matrix not equal to row of second."; cout <> r1>> c1; cout <> r2>> c2; ) // Storing elements of first matrix. cout << endl << "Enter elements of matrix 1:" << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c1; ++j) ( cout << "Enter element a" << i + 1 << j + 1 <> a(i)(j); ) // Storing elements of second matrix. cout << endl << "Enter elements of matrix 2:" << endl; for(i = 0; i < r2; ++i) for(j = 0; j < c2; ++j) ( cout << "Enter element b" << i + 1 << j + 1 <> b(i)(j); ) // Initializing elements of matrix mult to 0. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( mult(i)(j)=0; ) // Multiplying matrix a and b and storing in array mult. for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) for(k = 0; k < c1; ++k) ( mult(i)(j) += a(i)(k) * b(k)(j); ) // Displaying the multiplication of two matrix. cout << endl << "Output Matrix: " << endl; for(i = 0; i < r1; ++i) for(j = 0; j < c2; ++j) ( cout << " " << mult(i)(j); if(j == c2-1) cout << endl; ) return 0; ) 

Rezultatas

Įveskite eilutes ir stulpelį pirmajai matricai: 3 2 Įveskite eilutes ir stulpelį antrai matricai: 3 2 Klaida! pirmosios matricos stulpelis nėra lygus antrosios eilės stulpeliui. Įveskite eilutes ir stulpelį pirmajai matricai: 2 3 Įveskite eilutes ir stulpelį antrai matricai: 3 2 Įveskite 1 matricos elementus: įveskite elementus a11: 3 įveskite elementus a12: -2 įveskite elementus a13: 5 įveskite elementus a21: 3 įveskite elementus a22 : 0 Įveskite elementus a23: 4 Įveskite 2 matricos elementus: Įveskite elementus b11: 2 Įveskite elementus b12: 3 Įveskite elementus b21: -9 Įveskite elementus b22: 0 Įveskite elementus b31: 0 Įveskite elementus b32: 4 Išvesties matrica: 24 29 6 25

Šioje programoje vartotojo pirmiausia prašoma įvesti dviejų matricų dydį.

Pirmosios matricos stulpelis turi būti lygus dauginamosios antrosios matricos eilutei. Jei ši sąlyga nėra įvykdyta, matricos dydis vėl paklausiamas naudojant while loop.

Tada vartotojo paprašoma įvesti dvi matricas ir galiausiai apskaičiuojama ir rodoma dviejų matricų išvestis.

Kadangi programą ilgai ir sunku derinti, geriau išspręsti šią programą perduodant ją funkcijai.

Apsilankykite šiame puslapyje ir sužinokite apie matricų padauginimą perduodant masyvus funkcijai.

Įdomios straipsniai...