Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình kiểm tra xem ba điểm có thẳng hàng trong C ++ hay không


Được đưa ra với ba điểm có giá trị khác nhau và nhiệm vụ là kiểm tra xem các điểm có thẳng hàng hay không.

Các điểm được cho là thẳng hàng nếu chúng nằm trên cùng một đường thẳng và chúng không thẳng hàng nếu chúng nằm trên các đường thẳng khác nhau. Dưới đây là hình vẽ các điểm thẳng hàng và không thẳng hàng.

Chương trình kiểm tra xem ba điểm có thẳng hàng trong C ++ hay không

Đầu vào

x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5

Đầu ra

no points are not collinear

Đầu vào

x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5

Đầu ra

points are collinear

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập các điểm dưới dạng (x1, y1), (x2, y2), (x3, y3)

  • Áp dụng công thức diện tích tam giác x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)

  • kiểm tra các điều kiện như -

    • nếu diện tích tam giác bằng 0 thì các điểm in thẳng hàng

    • nếu diện tích tam giác không bằng 0 thì các điểm in không thẳng hàng

  • in kết quả cuối cùng

Thuật toán

Start
Step 1→ declare function to check if points are collinear or not
   void check_collinear(int x1, int y1, int x2, int y2, int x3, int y3)
      declare int a = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)
      IF (a == 0)
         Print "yes points are collinear"
      End
      Else
         Print "no points are not collinear"
Step 2→ In main()
   Declare int x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5
   Call check_collinear(x1, y1, x2, y2, x3, y3)
Stop

Ví dụ

#include <bits/stdc++.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
//check if points are collinear or not
void check_collinear(int x1, int y1, int x2, int y2, int x3, int y3){
   int a = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2);
   if (a == 0)
      cout << "yes points are collinear";
   else
      cout << "no points are not collinear";
}
int main(){
   int x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5;
   check_collinear(x1, y1, x2, y2, x3, y3);
   return 0;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

no points are not collinear