কম্পিউটার

C++ এ একটি ম্যাট্রিক্সে একক আন্দোলন খুঁজুন


এই সমস্যায়, আমাদের চারটি মান দেওয়া হয়েছে x1, y1, x2, y2 যা বোঝায় দুটি বিন্দু (x1, y1) এবং (x2, y2)। আমাদের কাজ হল একটি ম্যাট্রিক্সে একক আন্দোলন খুঁজে বের করা। আমাদের সেই দিকটি খুঁজে বের করতে হবে যা ব্যবহার করে আমরা একটি বিন্দু (x1, y1) থেকে (x2, y2) যেতে পারি। একক হওয়ার জন্য প্রয়োজনীয় দিক অনুসারে যে কোনও সংখ্যক চালনা হতে পারে এবং আমাদের ফর্মে দিকটি ফিরিয়ে দিতে হবে - "বাম", "ডান", "উপরে", "নিচে"। অন্যথায় ফিরুন -1, "সম্ভব নয়" বোঝায়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

x1 = 2, y1 = 1, x2 = 5, y1 = 1

আউটপুট

Right

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

সমস্যার একটি সহজ সমাধান হল উৎস থেকে গন্তব্যে পৌঁছানোর জন্য দুটি স্থানাঙ্ক x1:x2 বা y1:y2 এর যে কোনো একটি একই হওয়া প্রয়োজন। মানগুলির জন্য, এখানে কেসগুলি রয়েছে −

Case 1: x1 = x2 & y1 > y2 -> Direction : Left
Case 1: x1 = x2 & y2 > y1 -> Direction : Right
Case 1: y1 = y2 & x1 > x2 -> Direction : Up
Case 1: y1 = y2 & x2 > x1 -> Direction : Down

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
void findSingleMovement(int x1, int y1, int x2, int y2) {
   if (x1 == x2 && y1 < y2)
      cout<<"Right";
   else if (x1 == x2 && y1 > y2)
      cout<<"Left";
   else if (y1 == y2 && x1 < x2)
      cout<<"Down";
   else if (y1 == y2 && x1 > x2)
      cout<<"Up";
   else
      cout<<"Not Possible";
}
int main() {
   int x1, x2, y1, y2;
   x1 = 2; y1 = 1;
   x2 = 5; y2 = 1;
   cout<<"The direction of movement is ";
   findSingleMovement(x1, y1, x2, y2);
   return 0;
}

আউটপুট

The direction of movement is Down

  1. C++ এ একক মূল্যবান উপবৃক্ষের সংখ্যা খুঁজুন

  2. একটি গ্রাফ ম্যাট্রিক্সের বিপরীত অনুসন্ধান করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রাফ ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম

  4. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম