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

পার্শ্বের দৈর্ঘ্যের alapján ত্রিভুজ সাজানোর C প্রোগ্রাম

বিভিন্ন ত্রিভুজের একটি অ্যারে দেওয়া থাকলে, যেখানে প্রতিটি ত্রিভুজের তিন পার্শ্ব [a, b, c] আকারে সংরক্ষিত আছে, তাদের ক্ষেত্রফল অনুযায়ী সাজাতে হবে। হেরনের সূত্র অনুযায়ী ত্রিভুজের ক্ষেত্রফল = √[p(p-a)(p-b)(p-c)], যেখানে p = (a+b+c)/2 (আর্ধ-পরিসীমা)।

উদাহরণ

ইনপুট: (7, 24, 25), (5, 12, 13), (3, 4, 5)

আউটপুট: (3, 4, 5), (5, 12, 13), (7, 24, 25) — ক্ষেত্রফল ক্রমে 6, 30, 84।

এলগরিদম

  1. একটি struct Triangle ডিফাইন করুন যাতে তিনটি পূর্ণসংখ্যা a, b, c থাকে।
  2. একটি square() ফাংশন লিখুন যা 16 × ক্ষেত্রফল² ফেরত দেয় (স কেয়ার রুট এড়াতে):
    (a+b+c)(a+b-c)(a-b+c)(-a+b+c)
  3. বাবল সোর্ট বা যেকোনো সর্টিং অ্যালগরিদম ব্যবহার করে square() মান অনুযায়ী ত্রিভুজগুলো সাজান।
  4. সাজানো ত্রিভুজগুলো প্রিন্ট করুন।

C কোড উদাহরণ

#include <stdio.h>
#define N 3

struct Triangle {
    int a, b, c;
};

int square(struct Triangle t) {
    int a = t.a, b = t.b, c = t.c;
    return (a + b + c) * (a + b - c) * (a - b + c) * (-a + b + c);
}

void solve(struct Triangle* a) {
    for (int i = 0; i < N; i++)
        for (int j = i + 1; j < N; j++)
            if (square(a[i]) > square(a[j])) {
                struct Triangle temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
}

int main() {
    struct Triangle triangles[N] = {{7, 24, 25}, {5, 12, 13}, {3, 4, 5}};
    solve(triangles);
    for (int i = 0; i < N; i++)
        printf("(%d, %d, %d)\n", triangles[i].a, triangles[i].b, triangles[i].c);
    return 0;
}

ইনপুট ও আউটপুট

ইনপুট: {{7, 24, 25}, {5, 12, 13}, {3, 4, 5}}

আউটপুট: (3, 4, 5) (5, 12, 13) (7, 24, 25)

  1. C প্রোগ্রামিং-এ রেডিক্স সর্ট (Radix Sort)

  2. C++ প্রোগ্রামে লম্বকোণী ত্রিভুজের হাইপোটেনাস দিয়ে সার্কামসার্কেলের ক্ষেত্রফল

  3. সি প্রোগ্রাম: বর্গাকারের ভিতরে পাতার আকারের ক্ষেত্রফল

  4. পাইথনে সিলেকশন সর্ট (Selection Sort)