C ++ programm kahe maatriksi korrutamiseks mitmemõõtmeliste massiivide abil

See programm võtab kaks maatriksit järjestuses r1 * c1 ja r2 * c2. Seejärel korrutab programm need kaks maatriksit (kui võimalik) ja kuvab selle ekraanil.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C ++ programmeerimise teemadest:

  • C ++ mitmemõõtmelised massiivid
  • C ++ massiivid

Kahe maatriksi korrutamiseks peaks esimese maatriksi veergude arv olema võrdne teise maatriksi ridade arvuga. See programm kuvab vea seni, kuni esimese maatriksi veergude arv on võrdne teise maatriksi ridade arvuga.

Näide: korrutage kaks maatriksit funktsioone kasutamata

 #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; ) 

Väljund

Sisestage esimese maatriksi read ja veerg: 3 2 Sisestage teise maatriksi read ja veerg: 3 2 Viga! esimese maatriksi veerg ei võrdu teise reaga. Sisestage esimese maatriksi read ja veerg: 2 3 Sisestage teise maatriksi read ja veerg: 3 2 Sisestage maatriksi 1 elemendid: sisestage elemendid a11: 3 sisestage elemendid a12: -2 sisestage elemendid a13: 5 sisestage elemendid a21: 3 sisestage elemendid a22 : 0 Sisestage elemendid a23: 4 Sisestage maatriksi 2 elemendid: Sisestage elemendid b11: 2 Sisestage elemendid b12: 3 Sisestage elemendid b21: -9 Sisestage elemendid b22: 0 Sisestage elemendid b31: 0 Sisestage elemendid b32: 4 Väljundmaatriksid: 24 29 6 25

Selles programmis palutakse kasutajal esmalt sisestada kahe maatriksi suurus.

Esimese maatriksi veerg peaks korrutamiseks olema võrdne teise maatriksi reaga. Kui see tingimus ei ole täidetud, küsitakse uuesti maatriksi suurust kasutades while loopi.

Seejärel palutakse kasutajal sisestada kaks maatriksit ning lõpuks arvutatakse ja kuvatakse kahe maatriksi väljund.

Kuna programm on pikk ja seda on raske siluda, on parem see programm lahendada, edastades selle funktsioonile.

Maatriksite korrutamise kohta massiividele funktsiooni edastamise kohta leiate selle lehe.

Huvitavad Artiklid...