यह एक सी ++ प्रोग्राम है जो यह जांचने के लिए है कि तीन बिंदुओं का दिया गया सेट एक लाइन पर है या नहीं। यदि इन बिंदुओं से बने त्रिभुज का क्षेत्रफल शून्य के बराबर हो तो तीन बिंदु एक रेखा पर होते हैं।
त्रिभुज का क्षेत्रफल है -
0.5 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)).
एल्गोरिदम
Begin Generate the points randomly. Calculate the area by using above formula. If area > 0 Then the points don't lie on the straight line. else if area < 0 Then the points don't lie on the straight line. else The points lie on the straight line. 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); //Generate the points randomly using 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"; //calculate area 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"; }
आउटपुट
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