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

সমকোণ ত্রিভুজের বাকি দুটি বাহু ও কোণ খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা a দেওয়া আছে যা একটি সমকোণ ত্রিভুজের একটি বাহুকে নির্দেশ করে। আমাদের চেক করতে হবে যে a বাহু দিয়ে সমকোণ ত্রিভুজ তৈরি করা সম্ভব কিনা। যদি সম্ভব হয়, তবে বাকি দুটি বাহু এবং কোণগুলো খুঁজে বের করতে হবে।

উদাহরণ

ইনপুট

a = 5

আউটপুট

Sides : 5, 12, 13 Angles : 67.38, 22.62, 90

ব্যাখ্যা

সমকোণ ত্রিভুজের বাহুরা হল 5² + 12² = 13²। এবং এই বাহুগুলো ব্যবহার করে কোণগুলো বের করা যায়: Sin⁻¹(5/13) এবং 90 - Sin⁻¹(5/13)।

সমাধানের পদ্ধতি

সহজ সমাধান হল পিথাগোরাসের উপপদ্য ব্যবহার করা। সমকোণ ত্রিভুজের বাহুগুলো এই উপপদ্য মান করে:

a² + b² = c²

যেখানে a এবং b হল ত্রিভুজের দুটি বাহু এবং c হল হাইপোটেনাস।

এটি ব্যবহার করে আমরা a থেকে b এবং c এর মান বের করব।

কেস ১: a সম সংখ্যা হলে

c = (a²/4) + 1
b = (a²/4) - 1

কেস ২: a বিষম সংখ্যা হলে

c = (a² + 1) / 2
b = (a² - 1) / 2

কোণগুলো বের করতে, আমাদের ত্রিভুজের বাহুগুলো জানতে হবে এবং তারপর কসাইন সূত্র ব্যবহার করতে হবে।

cos(A) = (b² + c² - a²) / (2bc)
cos(B) = (a² + c² - b²) / (2ac)
cos(C) = (a² + b² - c²) / (2ab)

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

#include <bits/stdc++.h>
#include <cmath>
using namespace std;

#define PI 3.1415926535

void printAngles(int a, int b, int c) {
    double x = (double)a;
    double y = (double)b;
    double z = (double)c;
    
    double A = (acos((y*y + z*z - x*x) / (2*y*z))) * 180 / PI;
    double B = (acos((x*x + z*z - y*y) / (2*x*z))) * 180 / PI;
    
    cout << "Angles: A = " << A << ", B = " << B << ", C = 90";
}

void printOtherSides(int n) {
    int b, c;
    
    if (n & 1) { // বিষম সংখ্যা
        if (n == 1)
            cout << -1 << endl;
        else {
            b = (n*n - 1) / 2;
            c = (n*n + 1) / 2;
        }
    } else { // সম সংখ্যা
        if (n == 2)
            cout << -1 << endl;
        else {
            b = n*n/4 - 1;
            c = n*n/4 + 1;
        }
    }
    
    cout << "Sides : a = " << n << ", b = " << b << ", c = " << c << endl;
    printAngles(n, b, c);
}

int main() {
    int a = 5;
    printOtherSides(a);
    return 0;
}

আউটপুট

Sides : a = 5, b = 12, c = 13
Angles: A = 22.6199, B = 67.3801, C = 90
  1. সি++-এ ত্রিভুজের পেরিমিটার (Perimeter) বের করা

  2. ঘড়ির ঘন্টা ও মিনিটের কাঁটার কোণ বের করা C++-এ

  3. C++-এ একটি বৃত্তের দুটি অংশের কোণের ন্যূনতম পার্থক্য বের করার প্রোগ্রাম

  4. পাইথনে সমকোণ ত্রিভুজের মিডপয়েন্ট এবং বেসের কোণ বের করার প্রোগ্রাম