Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 세 점이 동일선상에 있는지 확인하는 프로그램


3개의 서로 다른 가치 포인트가 주어지며 작업은 포인트가 동일선상에 있는지 여부를 확인하는 것입니다.

점이 같은 선에 있으면 동일 선상에 있고 다른 선에 있으면 동일 선상에 있지 않습니다. 다음은 동일선상 및 비공선점의 그림입니다.

C++에서 세 점이 동일선상에 있는지 확인하는 프로그램

입력

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

출력

no points are not collinear

입력

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

출력

points are collinear

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • (x1, y1), (x2, y2), (x3, y3)로 포인트를 입력

  • 삼각형의 넓이 공식을 적용하십시오 x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)

  • 다음과 같은 조건을 확인하십시오 -

    • 삼각형의 면적이 0인 경우 인쇄 포인트가 동일선상에 있는 것보다

    • 삼각형의 면적이 0이 아닌 경우 인쇄 포인트가 동일선상에 있지 않은 경우

  • 최종 결과 인쇄

알고리즘

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

#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;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

no points are not collinear