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

C++-এ ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

একটি ম্যাট্রিক্স M[r][c] দেওয়া আছে, 'r' নির্দেশ করে রো সংখ্যা এবং 'c' নির্দেশ করে কলাম সংখ্যা যাতে r = c একটি স্কোয়ার ম্যাট্রিক্স বানাচ্ছে। আমাদের খুঁজে বের করতে হবে দেওয়া স্কোয়ার ম্যাট্রিক্সটি ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স কিনা। যদি এটি ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স হয় তবে আউটপুট-এ yes প্রিন্ট করো।

ডায়াগোনাল ম্যাট্রিক্স (Diagonal Matrix)

একটি স্কোয়ার ম্যাট্রিক্স m[][] ডায়াগোনাল ম্যাট্রিক্স হবে যদি এবং কেবল যদি মেইন ডায়াগোনাল ছাড়া বাকি সব এলিমেন্ট শূন্য হয়।

নিচের ফিগার-এ দেখানো আছে -

C++-এ ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

এখানে, লাল রঙের এলিমেন্ট গুলো মেইন ডায়াগোনাল যা নন-জিরো বাকি এলিমেন্ট গুলো মেইন ডায়াগোনাল ছাড়া শূন্য তাই এটি একটি ডায়াগোনাল ম্যাট্রিক্স।

উদাহরণ

ইনপুট: m[3][3] = { {7, 0, 0}, {0, 8, 0}, {0, 0, 9} }
আউটপুট: yes

ইনপুট: m[3][3] = { {1, 2, 3}, {0, 4, 0}, {0, 0, 5} }
আউটপুট: no

অ্যালগরিদম

শুরু
    স্টেপ ১ -> size 4 ম্যাক্রো ডিফাইন করো
    স্টেপ ২ -> ম্যাট্রিক্স ডায়াগোনাল কিনা চেক করার ফাংশন ডিক্লেয়ার করো
        bool ifdiagonal(int arr[size][size])
        লুপ i = 0 থেকে i < size এবং i++ পর্যন্ত
            লুপ j = 0 থেকে j < size এবং j++ পর্যন্ত
                IF ((i != j) && (arr[i][j] != 0))
                    return false
                এন্ড
            এন্ড
        এন্ড
        return true
    স্টেপ ৩ -> main()-এ
        int arr[size][size] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } } ডিক্লেয়ার এবং সেট করো
        IF (ifdiagonal(arr))
            প্রিন্ট its a diagonal matrix
        এন্ড
        এলস
            প্রিন্ট its not a diagonal matrix
        এন্ড
স্টপ

ডায়াগোনাল ম্যাট্রিক্স

উদাহরণ (C++ কোড)

#include <bits/stdc++.h>
#define size 4
using namespace std;

// ম্যাট্রিক্স ডায়াগোনাল ম্যাট্রিক্স কিনা চেক করো
bool ifdiagonal(int arr[size][size]) {
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            if ((i != j) && (arr[i][j] != 0))
                return false;
    return true;
}

int main() {
    int arr[size][size] = { { 1, 0, 0, 0 },
                            { 0, 1, 0, 0 },
                            { 0, 0, 1, 0 },
                            { 0, 0, 0, 1 } };
    if (ifdiagonal(arr))
        cout << "its a diagonal matrix" << endl;
    else
        cout << "its not a diagonal matrix" << endl;
    return 0;
}

আউটপুট

its a diagonal matrix

স্ক্যালার ম্যাট্রিক্স (Scalar Matrix)

একটি স্কোয়ার ম্যাট্রিক্স m[][] স্ক্যালার ম্যাট্রিক্স যদি মেইন ডায়াগোনাল-এ এলিমেন্ট গুলো সমান থাকে এবং বাকি এলিমেন্ট গুলো শূন্য থাকে।

নিচের উদাহরণে দেখানো আছে -

C++-এ ডায়াগোনাল এবং স্ক্যালার ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

এখানে, লাল রঙের এলিমেন্ট গুলো ডায়াগোনাল এলিমেন্ট গুলো যা একই এবং বাকি এলিমেন্ট গুলো শূন্য তাই এটি একটি স্ক্যালার ম্যাট্রিক্স।

উদাহরণ

ইনপুট: m[3][3] = { {2, 0, 0}, {0, 2, 0}, {0, 0, 2} }
আউটপুট: yes

ইনপুট: m[3][3] = { {3, 0, 0}, {0, 2, 0}, {0, 0, 3} }
আউটপুট: no

অ্যালগরিদম

শুরু
    স্টেপ ১ -> #define size 4 ম্যাক্রো ডিক্লেয়ার করো
    স্টেপ ২ -> ম্যাট্রিক্স স্ক্যালার ম্যাট্রিক্স কিনা চেক করার ফাংশন ডিক্লেয়ার করো
        bool scalar(int arr[size][size])
        লুপ i = 0 থেকে i < size এবং i++ পর্যন্ত
            লুপ j = 0 থেকে j < size এবং j++ পর্যন্ত
                IF ((i != j) && (arr[i][j] != 0))
                    return false
                এন্ড
            এন্ড
        এন্ড
        লুপ i = 0 থেকে i < size - 1 এবং i++ পর্যন্ত
            If (arr[i][i] != arr[i + 1][i + 1])
                return false
            এন্ড
        এন্ড
        Return true
    স্টেপ ৩ -> main()-এ
        অ্যারে ডিক্লেয়ার করো int arr[size][size] = { { 2, 0, 0, 0 }, { 0, 2, 0, 0 }, { 0, 0, 2, 0 }, { 0, 0, 0, 2 } }
        IF(scalar(arr))
            প্রিন্ট its a scalar matrix
        এলস
            প্রিন্ট its not a scalar matrix
স্টপ

উদাহরণ (C++ কোড)

#include <bits/stdc++.h>
#define size 4
using namespace std;

// ম্যাট্রিক্স স্ক্যালার ম্যাট্রিক্স কিনা চেক করো
bool scalar(int arr[size][size]) {
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            if ((i != j) && (arr[i][j] != 0))
                return false;
    for (int i = 0; i < size - 1; i++)
        if (arr[i][i] != arr[i + 1][i + 1])
            return false;
    return true;
}

int main() {
    int arr[size][size] = { { 2, 0, 0, 0 },
                            { 0, 2, 0, 0 },
                            { 0, 0, 2, 0 },
                            { 0, 0, 0, 2 } };
    if (scalar(arr))
        cout << "its a scalar matrix" << endl;
    else
        cout << "its not a scalar matrix" << endl;
    return 0;
}

আউটপুট

its a scalar matrix
  1. সি++-এ অ্যারে বিটোনিক (Bitonic) কিনা তা যাচাই করার প্রোগ্রাম

  2. C++-এ ম্যাট্রিক্স লোয়ার ট্রায়্যাঙ্গুলার কিনা তা যাচাই করার প্রোগ্রাম

  3. C++-এ ইনভোলিউটরি ম্যাট্রিক্স যাচাই করার প্রোগ্রাম

  4. C++-এ আইডেমপটেন্ট ম্যাট্রিক্স যাচাই করার প্রোগ্রাম