Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C ++ เพื่อตรวจสอบว่าชุดของ Three Points ที่กำหนดอยู่ในบรรทัดเดียวหรือไม่


นี่คือโปรแกรม C ++ เพื่อตรวจสอบว่าชุดของจุดสามจุดอยู่ในบรรทัดเดียวหรือไม่ สามจุดอยู่บนเส้นเดียวถ้าพื้นที่ของสามเหลี่ยมที่เกิดจากจุดนี้มีค่าเท่ากับศูนย์

พื้นที่ของสามเหลี่ยมคือ −

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