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

C++-এ ম্যাট্রিক্সের আপার ও লোয়ার ট্রায়্যাঙ্গেলের যোগফল


এই সমস্যায়, আমাদের একটি ম্যাট্রিক্স দেওয়া আছে। আমাদের কাজ হল আপার ট্রায়্যাঙ্গেল এবং লোয়ার ট্রায়্যাঙ্গেলের যোগফল প্রিন্ট করার জন্য একটি প্রোগ্রাম তৈরি করা।

লোয়ার ট্রায়্যাঙ্গেল

M₀₀  0  0  …  0
M₁₀  M₁₁  0  …  0
M₂₀  M₂₁  M₂₂  …  0
…
Mᵣₒw₀  Mᵣₒw₁  Mᵣₒw₂  …  Mᵣₒw,ᶜᵒˡ

আপার ট্রায়্যাঙ্গেল

M₀₀  M₀₁  M₀₂  …  M₀,ᶜᵒˡ
0    M₁₁  M₁₂  …  M₁,ᶜᵒˡ
0    0    M₂₂  …  M₂,ᶜᵒˡ
…
0    0    0    …  Mᵣₒw,ᶜᵒˡ

উদাহরণ দিয়ে বোঝা যাক

ইনপুট: {{5, 1, 6}, {8, 2, 0}, {3, 7, 4}}
আউটপুট: আপার ট্রায়্যাঙ্গেল যোগফল = ১৮, লোয়ার ট্রায়্যাঙ্গেল যোগফল = ২৯
ব্যাখ্যা: 
আপার ট্রায়্যাঙ্গেল যোগফল = 5 + 1 + 6 + 2 + 0 + 4 = ১৮
লোয়ার ট্রায়্যাঙ্গেল যোগফল = 5 + 8 + 2 + 3 + 7 + 4 = ২৯

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল লুপ ব্যবহার করে আপার এবং লোয়ার ট্রায়্যাঙ্গুলার উপাদানগুলো ট্রাভার্স করা এবং দুটি আলাদা ভেরিয়েবল (lSum এবং uSum) এ যোগফল গণনা করা।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

int row = 3;
int col = 3;

void sum(int mat[3][3]) {
    int i, j;
    int uSum = 0;
    int lSum = 0;
    
    for (i = 0; i < row; i++)
        for (j = 0; j < col; j++) {
            if (i <= j) {
                uSum += mat[i][j];
            }
        }
    cout << "Sum of the upper triangle is " << uSum << endl;
    
    for (i = 0; i < row; i++)
        for (j = 0; j < col; j++) {
            if (j <= i) {
                lSum += mat[i][j];
            }
        }
    cout << "Sum of the lower triangle is " << lSum << endl;
}

int main() {
    int mat[3][3] = { { 5, 1, 6 },
                      { 8, 2, 0 },
                      { 3, 7, 4 }};
    sum(mat);
    return 0;
}

আউটপুট

Sum of the upper triangle is 18
Sum of the lower triangle is 29
  1. ত্রিভুজে ন্যূনতম সম পথ বের করা (C++)

  2. C++-এ আপার ডায়াগোনালকে লোয়ার ডায়াগোনালের সাথে সোয়াপ করা

  3. C++-এ অল্টারনেট লোয়ার-আপার কেস স্ট্রিং সর্ট

  4. C++-এ অ্যালিকোট সম (Aliquot Sum)