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

C++ प्रोग्राम: जांचें कि क्या केवल दो समानांतर रेखाएं सभी निर्देशांक बिंदुओं को समाहित कर सकती हैं


इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो जांचता है कि क्या केवल दो समानांतर रेखाएं दिए गए सभी निर्देशांक बिंदुओं को धारण कर सकती हैं।

इसके लिए हमें एक एरे दिया जाएगा, जैसे कि निर्देशांक (i, arr[i]) होंगे। मान लीजिए हमें एक एरे दिया गया है,

arr = {2, 6, 8, 12, 14}

तो हम इन बिंदुओं को दो समानांतर रेखाओं पर रख सकते हैं, पहली रेखा में (1,2), (3,8) और (5,14) हैं। दूसरी रेखा में बाकी निर्देशांक यानी (2,6) और (4,12) हैं।

इस समस्या को दिए गए रेखाओं द्वारा बनाए गए ढलानों की तुलना करके हल किया जा सकता है। जैसा कि हम जानते हैं, (a1,b1) और (a2,b2) द्वारा बनी रेखा की ढलान (b2-b1)/(a2-a1) होती है।

इसी तरह हम दिए गए एरे से तीन बिंदु ले सकते हैं और उनकी ढलानों की तुलना कर सकते हैं। चूंकि हमारे पास केवल दो रेखाएं हैं, तीन बिंदुओं में से दो को एक ही रेखा पर होना होगा।

इसे करने के लिए, हम तीन बिंदु लेंगे और उनके द्वारा बनाए गए अंतःखंड की गणना करेंगे। यदि हमें अंतःखंड के ठीक दो अलग-अलग मान मिलते हैं, तो एरे के बिंदुओं को दो समानांतर रेखाओं पर दर्शाया जा सकता है, अन्यथा नहीं।

प्रोग्राम 1 लौटाता है यदि शर्त संभव है, अन्यथा 0।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

// यह जांचने के लिए कि क्या हमें अंतःखंड के ठीक दो मान मिलते हैं
bool is_intercept(double slope, int arr[], int num) {
    set<double> Lines;
    for (int i = 0; i < num; i++)
        Lines.insert(arr[i] - slope * (i));
    return Lines.size() == 2;
}

// दिए गए बिंदुओं की ढलान की जांच करने के लिए
bool is_parallel(int arr[], int num) {
    bool slope1 = is_intercept(arr[1] - arr[0], arr, num);
    bool slope2 = is_intercept(arr[2] - arr[1], arr, num);
    bool slope3 = is_intercept((arr[2] - arr[0]) / 2, arr, num);
    return (slope1 || slope2 || slope3);
}

int main() {
    int arr[] = {2, 6, 8, 12, 14};
    int num = sizeof(arr)/sizeof(arr[0]);
    cout << (int)is_parallel(arr, num);
    return 0;
}

आउटपुट

1

  1. C++ में दो रेखाओं के प्रतिच्छेदन बिंदु के लिए प्रोग्राम C++ में दो रेखाओं के प्रतिच्छेदन बिंदु के लिए प्रोग्राम

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

  1. - C++ प्रोग्राम: द्विघात समीकरण के सभी मूल खोजें

    परिचयएक द्विघात समीकरण ax² + bx + c के रूप में होता है। द्विघात समीकरण के मूल निम्न सूत्र द्वारा दिए जाते हैं - तीन मामले हैं - b² < 4*a*c - मूल वास्तविक नहीं हैं यानी वे कॉम्प्लेक्स हैं b² = 4*a*c - मूल वास्तविक हैं और दोनों मूल समान हैं 4*a*c - मूल वास्तविक हैं और दोनों मूल अलग हैं उदाहरण#incl

  1. - C++ प्रोग्राम: जांचें कि संख्या अभाज्य (Prime) है या नहीं

    परिचयएक अभाज्य संख्या एक पूर्ण संख्या है जो एक से बड़ी होती है और एक अभाज्य संख्या के केवल दो गुणनखंड होने चाहिए: एक और स्वयं। कुछ पहली अभाज्य संख्याएं हैं - 2, 3, 5, 7, 11, 13, 17 उदाहरण#include <iostream> using namespace std; int main() { int n = 17, i, flag = 0; for (i = 2; i <=