C ++ -ohjelma kahden matriisin kertomiseen moniulotteisten taulukoiden avulla

Tämä ohjelma ottaa kaksi matriisia järjestyksessä r1 * c1 ja r2 * c2. Sitten ohjelma kertoo nämä kaksi matriisia (jos mahdollista) ja näyttää ne näytöllä.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C ++ -ohjelmointiaiheista:

  • C ++ moniulotteiset taulukot
  • C ++ taulukot

Kahden matriisin kertomiseksi ensimmäisen matriisin sarakkeiden määrän on oltava yhtä suuri kuin toiseen matriisiin liittyvien rivien lukumäärä. Tämä ohjelma näyttää virheen, kunnes ensimmäisen matriisin sarakkeiden määrä on yhtä suuri kuin toisen matriisin rivien lukumäärä.

Esimerkki: Kerro kaksi matriisia käyttämättä funktioita

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

Tuotos

Syötä ensimmäisen matriisin rivit ja sarake: 3 2 Syötä toisen matriisin rivit ja sarake: 3 2 Virhe! ensimmäisen matriisin sarake ei ole yhtä suuri kuin toisen rivin sarake. Syötä rivit ja sarake ensimmäiselle matriisille: 2 3 Syötä rivit ja sarake toiselle matriisille: 3 2 Syötä matriisin 1 elementit: Syötä elementit a11: 3 Syötä elementit a12: -2 Syötä elementit a13: 5 Syötä elementit a21: 3 Syötä elementit a22 : 0 Syötä elementit a23: 4 Syötä matriisin 2 elementit: Syötä elementit b11: 2 Syötä elementit b12: 3 Syötä elementit b21: -9 Syötä elementit b22: 0 Syötä elementit b31: 0 Syötä elementit b32: 4 Lähtömatriisi: 24 29 6 25

Tässä ohjelmassa käyttäjää pyydetään syöttämään aluksi kahden matriisin koko.

Ensimmäisen matriisin sarakkeen tulee olla yhtä suuri kuin toisen matriisin rivi kertomista varten. Jos tämä ehto ei täyty, matriisin kokoa kysytään taas while loop -toiminnon avulla.

Sitten käyttäjää pyydetään syöttämään kaksi matriisia ja lopuksi kahden matriisin lähtö lasketaan ja näytetään.

Koska ohjelma on pitkä ja vaikea virheenkorjaus, on parempi ratkaista tämä ohjelma siirtämällä se funktiolle.

Tältä sivulta saat lisätietoja matriisien kertomisesta siirtämällä taulukoita funktiolle.

Mielenkiintoisia artikkeleita...