কম্পিউটার

ক্ষেত্রফলের ভিত্তিতে ত্রিভুজ বাছাই করার জন্য সি প্রোগ্রাম


ধরুন আমাদের কাছে বিভিন্ন ত্রিভুজের একটি বিন্যাস রয়েছে যেখানে ত্রিভুজ[i] =[ai, bi, ci] এগুলি ith ত্রিভুজের বাহু। আমাদের ত্রিভুজগুলিকে তাদের ক্ষেত্রফলের উপর ভিত্তি করে সাজাতে হবে। বাহু ব্যবহার করে একটি ত্রিভুজের ক্ষেত্রফল হল: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)

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • a, b এবং c বাহু দিয়ে ত্রিভুজ বস্তুর সংজ্ঞা দাও
  • একটি ফাংশন বর্গক্ষেত্র সংজ্ঞায়িত করুন, এটি ত্রিভুজ টি নেবে,
  • a :=t.a
  • b :=t.b
  • c :=t.c
  • রিটার্ন (a + b + c) * (a + b - c) * (a - b + c) * (-a + b + c)
  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন:
  • আরম্ভ করার জন্য i :=0, যখন i
  • j শুরু করার জন্য :=i + 1, যখন j
  • যদি বর্গ(a[i])> বর্গক্ষেত্র(a[j]), তারপর:
    • a[i] এবং a[j]
    • অদলবদল করুন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#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);
    }
}

ইনপুট

{{7, 24, 25}, {5, 12, 13}, {3, 4, 5}}

আউটপুট

(3, 4, 5)
(5, 12, 13)
(7, 24, 25)

  1. রেডিক্স সাজানোর জন্য সি প্রোগ্রাম

  2. C প্রোগ্রামে একটি সমকোণী ত্রিভুজের বৃত্তের ক্ষেত্রফল?

  3. সি প্রোগ্রামে একটি বর্গক্ষেত্রের ভিতরে একটি পাতার ক্ষেত্রফল?

  4. পাইথন প্রোগ্রামে নির্বাচন সাজান