Program C ++ pentru a multiplica două matrice folosind tablouri multi-dimensionale

Acest program ia două matrice de ordinul r1 * c1 și respectiv r2 * c2. Apoi, programul înmulțește aceste două matrice (dacă este posibil) și îl afișează pe ecran.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C ++:

  • Matrice multidimensionale C ++
  • Matrice C ++

Pentru a înmulți două matrice, numărul de coloane din prima matrice ar trebui să fie egal cu numărul de rânduri în a doua matrice. Acest program afișează eroarea până când numărul de coloane din prima matrice este egal cu numărul de rânduri din a doua matrice.

Exemplu: Înmulțiți două matrice fără a utiliza funcții

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

Ieșire

Introduceți rândurile și coloana pentru prima matrice: 3 2 Introduceți rândurile și coloana pentru a doua matrice: 3 2 Eroare! coloana primei matrice nu este egală cu rândul celei de-a doua. Introduceți rândurile și coloana pentru prima matrice: 2 3 Introduceți rândurile și coloana pentru a doua matrice: 3 2 Introduceți elementele matricei 1: Introduceți elementele a11: 3 Introduceți elementele a12: -2 Introduceți elementele a13: 5 Introduceți elementele a21: 3 Introduceți elementele a22 : 0 Introduceți elementele a23: 4 Introduceți elementele matricei 2: Introduceți elementele b11: 2 Introduceți elementele b12: 3 Introduceți elementele b21: -9 Introduceți elementele b22: 0 Introduceți elementele b31: 0 Introduceți elementele b32: 4 Ieșire matrice: 24 29 6 25

În acest program, utilizatorul este rugat să introducă la început dimensiunea a două matrice.

Coloana primei matrice ar trebui să fie egală cu rândul celei de-a doua matrice pentru multiplicare. Dacă această condiție nu este îndeplinită, dimensiunea matricei este cerută din nou folosind bucla while.

Apoi, utilizatorul este rugat să introducă două matrice și, în final, ieșirea a două matrice este calculată și afișată.

Deoarece programul este lung și greu de depanat, este mai bine să rezolvați acest program trecându-l la o funcție.

Accesați această pagină pentru a afla despre înmulțirea matricilor prin trecerea matricelor la o funcție.

Articole interesante...