Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम ऊपर से नीचे आदिम का उपयोग करने के लिए परीक्षण करने के लिए कि क्या दो लाइनें प्रतिच्छेद करती हैं

यहाँ एक C++ प्रोग्राम है जो ऊपर दिए गए आदिम से ऊपर का उपयोग करने के लिए परीक्षण करता है कि क्या दो लाइनें प्रतिच्छेद करती हैं। इसका उपयोग यह परीक्षण करने के लिए किया जा सकता है कि कोई रेखा किसी रेखाखंड को काटती है या नहीं। यह तभी होता है जब खंड का एक समापन बिंदु रेखा के बाईं ओर होता है और दूसरा दाईं ओर होता है।

एल्गोरिदम

Begin
   For generating equation of the first line, generate random numbers for coefficient of x and y by using rand at every time of compilation.
   For generating equation of the second line, generate random numbers for coefficient of x and y by using rand at every time of compilation.
   Find the segment of line 1 as Y1.
   if (Y1 < 0)
      Find the segment of line 2
   if (Y2 >= 0)
      print they are intersecting.
   else if (Y2 < 0)
      print they are not intersecting.
   else if (Y1 >0)
      Find the segment of line 2
   if (Y2 <= 0)
      print they are intersecting.
   else if (Y2 >0)
      print they are not intersecting.
End.

उदाहरण कोड

#include<time.h>
#include<stdlib.h>
#include<iostream>
#include<math.h>

using namespace std;
const int L = 2;
const int H= 20;
int main(int argc, char **argv) {
   time_t s;
   time(&s);
   srand((unsigned int) s);

   int x1, x2, y1, y2;
   x1 = rand() % (H - L+ 1) + L;
   x2 = rand() % (H - L+ 1) + L;
   y1 = rand() % (H- L+ 1) + L;
   y2 = rand() % (H - L + 1) + L;

   cout << "The Equation of the 1st line is : (" << (y2 - y1) << ")x+(" << (x1 - x2) << ")y+(" << (x2 * y1 - x1 * y2) << ") = 0\n";

   int p1, p2, q1, q2;
   p1 = rand() % (H- L+ 1) + L;
   p2 = rand() % (H- L + 1) + L;
   q1 = rand() % (H - L + 1) + L;
   q2 = rand() % (H - L + 1) + L;

   cout << "The Equation of the 2nd line is : (" << (q2 - q1) << ")x+(" << (p1 - p2) << ")y+(" << (p2 * q1 - p1 * q2) << ") = 0\n";

   int Y1 = (y2 - y1) * p1 + (x1 - x2) * q1 + (x2 * y1 - x1 * y2); //Y1 segment
   if (Y1 < 0) {
      int Y2 = (y2 - y1) * p2 + (x1 - x2) * q2 + (x2 * y1 - x1 * y2); //Y2 segment
   if (Y2 >= 0)
      cout << "Lines are intersecting";
   else if (Y2 < 0)
      cout << "Lines are not intersecting";
   } else if (Y1 >0) {
      int Y2 = (y2 - y1) * p2 + (x1 - x2) * q2 + (x2 * y1 - x1 * y2);
      if (Y2 <= 0)
         cout << "Lines are intersecting";
      else if (Y2 >0)
         cout << "Lines are not intersecting";
   } else
      cout << "The point lies on the line";
   return 0;
}

आउटपुट

The Equation of the 1st line is : (-3)x+(2)y+(1) = 0
The Equation of the 2nd line is : (-5)x+(-5)y+(130) = 0
Lines are intersecting


The Equation of the 1st line is : (-1)x+(7)y+(-15) = 0
The Equation of the 2nd line is : (-4)x+(4)y+(-8) = 0
Lines are not intersecting

  1. C++ में दो बाइनरी ट्री मर्ज करने का प्रोग्राम

    मान लीजिए कि हमारे पास दो बाइनरी पेड़ हैं और विचार करें कि जब हम उनमें से एक को दूसरे को कवर करने के लिए रखते हैं, तो दो पेड़ों के कुछ नोड्स ओवरलैप हो जाते हैं जबकि अन्य ओवरलैपिंग होते हैं। हमें उन्हें एक नए बाइनरी ट्री में मिलाना होगा। मर्ज नियम इस तरह है कि यदि दो नोड्स ओवरलैपिंग कर रहे हैं, तो नो

  1. C++ में दो बाइनरी स्ट्रिंग्स जोड़ने का प्रोग्राम

    बाइनरी नंबर के साथ दो स्ट्रिंग्स को देखते हुए, हमें उन दो बाइनरी स्ट्रिंग्स को जोड़कर प्राप्त परिणाम को खोजना होगा और परिणाम को बाइनरी स्ट्रिंग के रूप में वापस करना होगा। बाइनरी नंबर वे नंबर होते हैं जिन्हें या तो 0 या 1 के रूप में व्यक्त किया जाता है। 2 बाइनरी नंबर जोड़ते समय बाइनरी जोड़ नियम होता

  1. सी++ में दो लाइनों के चौराहे के बिंदु के लिए कार्यक्रम

    रेखा AB के संगत बिंदु A और B दिए गए हैं और रेखा PQ के संगत बिंदु P और Q दिए गए हैं; कार्य इन दो पंक्तियों के बीच प्रतिच्छेदन बिंदु को खोजना है। नोट - X और Y निर्देशांकों पर 2D समतल में अंक दिए गए हैं। यहाँ A(a1, a2), B(b1, b2) और C(c1, c2), D(d1, d2) निर्देशांक हैं जो दो अलग-अलग रेखाएँ बना रहे ह