Çok Boyutlu Diziler Kullanarak İki Matrisi Çarpmaya Yönelik C ++ Programı

Bu program sırasıyla r1 * c1 ve r2 * c2 dereceli iki matris alır. Daha sonra program bu iki matrisi (mümkünse) çarpar ve ekranda görüntüler.

Bu örneği anlamak için, aşağıdaki C ++ programlama konuları hakkında bilgi sahibi olmalısınız:

  • C ++ Çok Boyutlu Diziler
  • C ++ Dizileri

İki matrisi çarpmak için, birinci matrisin sütun sayısı ikinci matrise satır sayısına eşit olmalıdır. Bu program, ilk matrisin sütun sayısı ikinci matrisin satır sayısına eşit olana kadar hatayı görüntüler.

Örnek: Fonksiyonları kullanmadan iki matrisi çarpın

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

Çıktı

İlk matris için satır ve sütun girin: 3 2 İkinci matris için satır ve sütun girin: 3 2 Hata! birinci matrisin sütunu, ikinci satıra eşit değil. İlk matris için satır ve sütun girin: 2 3 İkinci matris için satırları ve sütunu girin: 3 2 Matrisin elemanlarını girin 1: Elemanları girin a11: 3 Elemanları girin a12: -2 Elemanları girin a13: 5 Elemanları girin a21: 3 Elemanları girin a22 : 0 Elemanları girin a23: 4 Matris 2'nin elemanlarını girin b11: 2 Elemanları girin b12: 3 Elemanları girin b21: -9 Elemanları girin b22: 0 Elemanları girin b31: 0 Elemanları girin b32: 4 Çıktı Matrisi: 24 29 6 25

Bu programda, kullanıcıdan ilk önce iki matrisin boyutunu girmesi istenir.

Çarpma işlemi için ilk matrisin sütunu ikinci matrisin satırına eşit olmalıdır. Bu koşul yerine getirilmezse, döngünün kullanıldığı matrisin boyutu tekrar sorulur.

Ardından, kullanıcıdan iki matris girmesi istenir ve son olarak iki matrisin çıktısı hesaplanır ve görüntülenir.

Program uzun ve hata ayıklaması zor olduğundan, bu programı bir fonksiyona geçirerek çözmek daha iyidir.

Dizileri bir işleve geçirerek matrisleri çarpmayı öğrenmek için bu sayfayı ziyaret edin.

Ilginç makaleler...