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

C প্রোগ্রাম: পয়েন্টগুলো X-অক্ষ বা Y-অক্ষের সমান্তরাল কিনা চেক করা

n সংখ্যক পয়েন্ট দেওয়া থাকলে আমাদের চেক করতে হবে যে পয়েন্টটি গ্রাফ অনুযায়ী x-অক্ষ বা y-অক্ষের সমান্তরাল কিনা অথবা কোনো অক্ষের সমান্তরাল নয়। একটি গ্রাফ হলো একটি চিত্র যা দুটি ভেরিয়েবলের সম্পর্ক দেখানোর জন্য ব্যবহৃত হয় প্রতিটি অক্ষের沿ে পরিমাপ করা হয় ডান কোণে। সমান্তরাল হলো একই লাইন যেগুলো সব পয়েন্টে একই দূরত্ব রক্ষা করে, যেমন রেলওয়ে ট্র্যাক একে অপরের সমান্তরাল।

সুতরাং, আমাদের বের করতে হবে পয়েন্টগুলো x-অক্ষ বা y-অক্ষের সমান্তরাল কিনা মানে কোঅর্ডিনেট এবং অক্ষের দূরত্ব সব পয়েন্টে একই কিনা।

অক্ষ (Axis) কী?

গ্রাফ দুটি অক্ষ দিয়ে পরিমাপ করা হয়: x-অক্ষ এবং y-অক্ষ, উভয় অক্ষই ০ ভ্যালু থেকে শুরু হয় এবং তাদের নির্দিষ্ট ভেরিয়েবল ভ্যালু অনুযায়ী বিস্তৃত হয়। দুটি অক্ষ মিলে একটি ডান কোণ ত্রিভুজের মত ফিগার তৈরি করে।

এটি একটি সাধারণ ডায়াগ্রাম্যাটিক রিপ্রেজেন্টেশন দিয়ে ভালোভাবে বুঝি −

C প্রোগ্রাম: পয়েন্টগুলো X-অক্ষ বা Y-অক্ষের সমান্তরাল কিনা চেক করা

নিচে ব্যবহৃত পদ্ধতি −

  • প্রথমে গ্রাফের কোঅর্ডিনেটগুলো (x, y) কোঅর্ডিনেট আকারে নেওয়া।
  • তারপর চেক করা কোন অক্ষের সমান্তরাল।
  • যদি সব y কোঅর্ডিনেট একই হয়, তবে গ্রাফ x-অক্ষের সমান্তরাল।
  • অন্যথায় যদি x কোঅর্ডিনেটগুলো একই হয়, তবে গ্রাফ y-অক্ষের সমান্তরাল।
  • অন্যথায় গ্রাফ যেকোনো অক্ষের সমান্তরাল নয়।

অ্যালগরিদম

Start
function void parallel (int n, int a[][2]) এ
  ধাপ ১ → i, j ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ২ → bool x = true, y = true ডিক্লেয়ার
  ধাপ ৩ → লুপ: i = 0; i < n – 1; i++
    লুপ: j = 0; j < 2; j++
      If a[i][0] != a[i + 1][0] then,
        x = false সেট
      If a[i][1] != a[i + 1][1] then,
        y = false সেট
    End loop
  End loop
  ধাপ ৪ → If x then,
    Print "parallel to X Axis\n"
  ধাপ ৫ → Else if y
    Print "parallel to Y Axis\n"
  ধাপ ৬ → Else
    Print "parallel to X and Y Axis\n"
function int main() এ
  ধাপ ১ → অ্যারে "a[][2]" ডিক্লেয়ার
  ধাপ ২ → n = sizeof(a) / sizeof(a[0]) ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ৩ → parallel(n, a) ফাংশন কল

উদাহরণ

#include <stdio.h>
// লাইনটি প্যারালেল কিনা চেক করতে
void parallel(int n, int a[][2]) {
    int i, j;
    bool x = true, y = true;
    // X এবং Y অক্ষের সমান্তরাল কন্ডিশন চেক
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < 2; j++) {
            if (a[i][0] != a[i + 1][0])
                x = false;
            if (a[i][1] != a[i + 1][1])
                y = false;
        }
    }
    // আউটপুট দেখাতে
    if (x)
        printf("parallel to X Axis\n" );
    else if (y)
        printf("parallel to Y Axis\n" );
    else
        printf("parallel to X and Y Axis\n" );
}
int main() {
    int a[][2] = { { 2, 1 },
        { 3, 1 },
        { 4, 1 },
        { 0, 1 } };
    int n = sizeof(a) / sizeof(a[0]);
    parallel(n, a);
    return 0;
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −

parallel to Y Axis

  1. সি++-এ তিনটি বিন্দু সমরৈখিক (collinear) কিনা তা যাচাই করার প্রোগ্রাম

  2. সি++ প্রোগ্রাম: ৩-মাত্রিক সমতলে বিন্দুগুলো সমতলাকার কিনা যাচাই

  3. পাইথন প্রোগ্রাম - পয়েন্টগুলোর কনকেভ পলিগন গঠন করে কিনা তা যাচাই করুন

  4. পাইথন প্রোগ্রাম - পয়েন্টগুলোর কনভেক্স হাল গঠন করে কিনা তা যাচাই করুন