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

โปรแกรมตรวจสอบสามจุดเป็น collinear ใน C++


ให้ด้วยคะแนนที่มีค่าต่างกันสามคะแนนและภารกิจคือตรวจสอบว่าคะแนนนั้นใกล้เคียงกันหรือไม่

คะแนนจะเรียกว่า collinear ถ้าอยู่บนเส้นเดียวกัน และไม่ colinear ถ้าอยู่บนเส้นที่ต่างกัน ด้านล่างนี้คือตัวเลขของจุด collinear และ non-collinear

โปรแกรมตรวจสอบสามจุดเป็น collinear ใน 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