- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ Program to Check if a Given Set of Three Points Lie on a Single Line or Not
This is a C++ program to check if a given set of three points lie on a single line or not. Three points lie on a single line if the area of the triangle formed by this points is equal to zero.
The area of the triangle is −
0.5 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)).
Algorithms
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
Example
#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"; }
Output
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
Advertisements