Програм Ц ++ за множење две матрице помоћу вишедимензионалних низова

Овај програм узима две матрице реда р1 * ц1 и р2 * ц2. Затим програм множи ове две матрице (ако је могуће) и приказује их на екрану.

Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања на Ц ++:

  • Ц ++ вишедимензионални низови
  • Ц ++ низови

Да бисте помножили две матрице, број колона прве матрице требало би да буде једнак броју редова у другој матрици. Овај програм приказује грешку све док број колона прве матрице не буде једнак броју редова друге матрице.

Пример: Помножите две матрице без употребе функција

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

Оутпут

Унесите редове и колоне за прву матрицу: 3 2 Унесите редове и колоне за другу матрицу: 3 2 Грешка! колона прве матрице није једнака реду друге. Унесите редове и колоне за прву матрицу: 2 3 Унесите редове и колоне за другу матрицу: 3 2 Унесите елементе матрице 1: Унесите елементе а11: 3 Унесите елементе а12: -2 Унесите елементе а13: 5 Унесите елементе а21: 3 Унесите елементе а22 : 0 Унесите елементе а23: 4 Унесите елементе матрице 2: Унесите елементе б11: 2 Унесите елементе б12: 3 Унесите елементе б21: -9 Унесите елементе б22: 0 Унесите елементе б31: 0 Унесите елементе б32: 4 Излазна матрица: 24 29 6 25

У овом програму се од корисника тражи да прво унесе величину две матрице.

Колона прве матрице треба да буде једнака реду друге матрице за множење. Ако овај услов тада није задовољен, величина матрице се поново пита помоћу вхиле петље.

Затим се од корисника тражи да унесе две матрице и на крају се израчуна и прикаже излаз две матрице.

Будући да је програм дуг и тежак за отклањање грешака, боље је да га решите тако што ћете га пренети функцији.

Посетите ову страницу да бисте сазнали више о умножавању матрица прослеђивањем низова функцији.

Занимљиви Чланци...