কম্পিউটার

C++ এ আয়তক্ষেত্র এলাকা


ধরুন আমরা একটি 2D সমতলে দুটি রেকটিলিনিয়ার আয়তক্ষেত্র দ্বারা আচ্ছাদিত মোট এলাকা খুঁজে পেতে চাই। এখানে প্রতিটি আয়তক্ষেত্রকে তার নীচের বাম কোণে এবং উপরের ডানদিকের কোণ দ্বারা সংজ্ঞায়িত করা হয়েছে যেমন চিত্রে দেখানো হয়েছে।

C++ এ আয়তক্ষেত্র এলাকা

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

  • যদি C =E বা A>=G বা B>=H বা D <=F, তাহলে

    • রিটার্ন (C – A) * (D – B) + (G – E) * (H – F)

  • একটি অ্যারে h সংজ্ঞায়িত করুন, h

    এ A, C, E, G সন্নিবেশ করুন
  • একটি অ্যারে v সংজ্ঞায়িত করুন, v

    -এ B, D, F, H সন্নিবেশ করুন
  • h অ্যারে সাজান এবং v অ্যারে সাজান

  • temp :=(h[2] – h[1]) * (v[2] - v[1])

  • মোট :=তাপমাত্রা

  • মোট :=মোট + (C – A) * (D – B)

  • মোট :=মোট + (G – E) * (H – F)

  • মোট রিটার্ন

উদাহরণ(C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
      if(C <= E || A >= G || B >= H || D <= F) return (C - A) * (D - B) + (G - E) * (H - F);
      vector <int> h;
      h.push_back(A);
      h.push_back(C);
      h.push_back(E);
      h.push_back(G);
      vector <int> v;
      v.push_back(B);
      v.push_back(D);
      v.push_back(F);
      v.push_back(H);
      sort(h.begin(), h.end());
      sort(v.begin(), v.end());
      long long int temp = (h[2] - h[1]) * (v[2] - v[1]);
      long long int total = - temp;
      total += (C - A) * (D - B);
      total += (G - E) * (H - F);
      return total;
   }
};
main(){
   Solution ob;
   cout << (ob.computeArea(-3, 0, 3, 4, 0, -1, 9, 2));
}

ইনপুট

-3
0
3
4
0
-1
9
2

আউটপুট

45

  1. C++ এ আয়তক্ষেত্র ক্ষেত্র II

  2. C++ এ সমান্তরালগ্রামের ক্ষেত্রফল বের করার প্রোগ্রাম

  3. C++ এ একটি সমান্তরালগ্রামের ভিতরে একটি ত্রিভুজের ক্ষেত্রফল

  4. C++ এ একটি বর্গক্ষেত্রের একটি পরিক্রমাকৃত বৃত্তের ক্ষেত্রফল