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

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


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

त्रिभुज का क्षेत्रफल है:

0.5 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))

एल्गोरिदम

Begin
    बिंदुओं को रैंडमली जनरेट करें।
    उपरोक्त फॉर्मूला का उपयोग करके क्षेत्रफल की गणना करें।
    यदि क्षेत्रफल > 0
        तो बिंदु सीधी रेखा पर नहीं हैं।
    अन्यथा यदि क्षेत्रफल < 0
        तो बिंदु सीधी रेखा पर नहीं हैं।
    अन्यथा
        बिंदु सीधी रेखा पर हैं।
End

उदाहरण

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

static int L = 1;
static int U = 20;

int main(int argc, char **argv) {
    int x3, y3, x1, x2, y1, y2;
    time_t seconds;
    time(&seconds);
    srand((unsigned int) seconds);
    
    // rand() का उपयोग करके बिंदुओं को रैंडमली जनरेट करें
    x1 = rand() % (U - L + 1) + L;
    y1 = rand() % (U - L + 1) + L;
    x2 = rand() % (U - L + 1) + L;
    y2 = rand() % (U - L + 1) + L;
    x3 = rand() % (U - L + 1) + L;
    y3 = rand() % (U - L + 1) + L;
    
    cout << "The points are: (" << x1 << ", " << y1 << "), (" << x2 << ", " << y2 << "), & (" << x3 << ", " << y3 << ")\n";
    
    // क्षेत्रफल की गणना करें
    float a = 0.5 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));
    
    if(a < 0)
        cout << "The points don't lie on the straight line";
    else if(a > 0)
        cout << "The points don't lie on the straight line";
    else
        cout << "The points lie on the straight line";
    
    return 0;
}

आउटपुट

The points are: (20, 9), (6, 13), & (13, 11)
The points lie on the straight line
The points are: (9, 15), (4, 15), & (11, 16)
The points don't lie on the straight line

कोलिनियरिटी (संरेखता) की जांच के लिए त्रिभुज क्षेत्रफल विधि का उपयोग किया जाता है। यदि तीन बिंदुओं (x1,y1), (x2,y2), (x3,y3) द्वारा बने त्रिभुज का क्षेत्रफल 0 है, तो वे संरेख हैं। फॉर्मूला 0.5 * |x1(y2-y3) + x2(y3-y1) + x3(y1-y2)| है। यह क्रॉस प्रोडक्ट विधि (x2-x1)*(y3-y1) == (x3-x1)*(y2-y1) के बराबर है।

  1. C++ में जांचें कि क्या तीन बिंदु संरेखीय हैं या नहीं C++ में जांचें कि क्या तीन बिंदु संरेखीय हैं या नहीं

    तीन अलग-अलग मान वाले बिंदु दिए गए हैं और कार्य यह जांचना है कि क्या बिंदु संरेखीय हैं या नहीं। बिंदुओं को संरेखीय कहा जाता है यदि वे एक ही रेखा पर स्थित हैं और वे असंरेखीय हैं यदि वे अलग-अलग रेखाओं पर हैं। नीचे संरेखीय और असंरेखीय बिंदुओं का चित्र दिया गया है। इनपुट x1 = 1, x2 = 2, x3 = 3, y1 =

  1. C++ में जांचें कि दिया गया ट्री ग्राफ रैखिक है या नहीं C++ में जांचें कि दिया गया ट्री ग्राफ रैखिक है या नहीं

    यहां हम देखेंगे कि ट्री ग्राफ रैखिक है या नहीं, इसकी जांच कैसे करें। एक रैखिक ट्री ग्राफ को एक ही पंक्ति में व्यक्त किया जा सकता है। मान लीजिए यह एक रैखिक ट्री ग्राफ का उदाहरण है।लेकिन यह रैखिक नहीं है -किसी ग्राफ की जांच करने के लिए कि वह रैखिक है या नहीं, हम दो शर्तों का पालन कर सकते हैं:यदि नोड्स

  1. - C++ प्रोग्राम: जांचें कि दिया गया बाइनरी ट्री AVL ट्री है या नहीं

    AVL ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है जहां बाएं और दाएं सबट्री की ऊंचाई का अंतर सभी नोड्स के लिए एक से अधिक नहीं हो सकता। यह एक C++ प्रोग्राम है जो जांचता है कि दिया गया बाइनरी ट्री AVL ट्री है या नहीं। एल्गोरिदम Begin function AVL() दिए गए ट्री के AVL होने पर सच लौटाता है अन्यथा गलत। &nb