কম্পিউটার টিউটোরিয়াল

ফাংশনে ম্যাট্রিক্স পাস করে দুটি ম্যাট্রিক্স গুণ করার C++ প্রোগ্রাম


ম্যাট্রিক্স হলো রো এবং কলামে সাজানো সংখ্যাদের রেক্ট্যাঙ্গুলার অ্যারে। ম্যাট্রিক্স গুণের শর্ত: প্রথম ম্যাট্রিক্সের কলাম = দ্বিতীয় ম্যাট্রিক্সের রো। ফলাফল ম্যাট্রিক্সের ডাইমেনশন: প্রথম ম্যাট্রিক্সের রো × দ্বিতীয় ম্যাট্রিক্সের কলাম।

উদাহরণ কোড

#include <iostream>
using namespace std;

void MatrixMultiplication(int a[2][3], int b[3][3]) {
    int product[10][10];
    int r1 = 2, c1 = 3, r2 = 3, c2 = 3;
    int i, j, k;

    if (c1 != r2) {
        cout << "প্রথম ম্যাট্রিক্সের কলাম = দ্বিতীয় ম্যাট্রিক্সের রো হতে হবে";
        return;
    }

    cout << "প্রথম ম্যাট্রিক্স:\n";
    for (i = 0; i < r1; ++i) {
        for (j = 0; j < c1; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }

    cout << "\nদ্বিতীয় ম্যাট্রিক্স:\n";
    for (i = 0; i < r2; ++i) {
        for (j = 0; j < c2; ++j)
            cout << b[i][j] << " ";
        cout << endl;
    }

    // Initialize product matrix to 0
    for (i = 0; i < r1; ++i)
        for (j = 0; j < c2; ++j)
            product[i][j] = 0;

    // Matrix multiplication
    for (i = 0; i < r1; ++i)
        for (j = 0; j < c2; ++j)
            for (k = 0; k < c1; ++k)
                product[i][j] += a[i][k] * b[k][j];

    cout << "\nদুই ম্যাট্রিক্সের গুণফল:\n";
    for (i = 0; i < r1; ++i) {
        for (j = 0; j < c2; ++j)
            cout << product[i][j] << " ";
        cout << endl;
    }
}

int main() {
    int a[2][3] = {{2, 4, 1}, {2, 3, 9}};
    int b[3][3] = {{1, 2, 3}, {3, 6, 1}, {2, 9, 7}};

    MatrixMultiplication(a, b);
    return 0;
}

আউটপুট

প্রথম ম্যাট্রিক্স:
2 4 1
2 3 9

দ্বিতীয় ম্যাট্রিক্স:
1 2 3
3 6 1
2 9 7

দুই ম্যাট্রিক্সের গুণফল:
16 37 17
29 103 72

ব্যাখ্যা

  • ফাংশন প্যারামিটার: void MatrixMultiplication(int a[2][3], int b[3][3]) — কলাম সাইজ ফিক্সড থাকতে হয় C++-এ।
  • ভ্যালিডেশন: if (c1 != r2) চেক করে।
  • গুণ: ট্রিপল নেস্টেড লুপ: product[i][j] += a[i][k] * b[k][j]।
  • আউটপুট: দুই ম্যাট্রিক্স এবং গুণফল ম্যাট্রিক্স প্রিন্ট করা হয়।

সীমাবদ্ধতা: ফাংশনে ফিক্সড সাইজ অ্যারে পাস করা হয়েছে। ডাইনামিক সাইজের জন্য ভেক্টর বা পয়েন্টার ব্যবহার করা উচিত।

  1. C++-এ দুই মাত্রিক অ্যারে (2D Array) ফাংশনে পাস করা

  2. C#-এ দুটি ম্যাট্রিক্স গুণ করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম দুটি ম্যাট্রিক্স গুণ করা

  4. Python-এ দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি