Vị trí tương đối giữa điểm và tam giác
Đề bài: Viết chương trình sử dụng ngôn ngữ C/C++ nhập vào tọa độ các đỉnh của tam giác ABC và của điểm M. Xác định điểm M nằm trong, nằm trên cạnh hay nằm ngoài tam giác ABC.
Yêu cầu kiến thức:
- Xác định đúng kiểu dữ liệu của các biến
- Nắm được cách tính diện tích tam giác khi biết tọa độ 3 điểm
Chúng ta có được công thức tính diện tích tam giác ABC như sau:
Khi đó ta có:
Hay ta thể viết lại công thức theo cách tính như sau:
Code tham khảo dưới được lưu với phần mở rộng là “.cpp”:
// Ho ten: Hoang Van Tuan
// Website: timoday.edu.vn
// De bai:
/* Bai 5: Vi ri tuong doi cua diem va tam giac */
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
// Khai bao ham
float tinhDienTich(float xA, float yA, float xB, float yB, float xC, float yC); // Ham tinh DT khi biet toa do 3 diem
//===chuong trinh chinh===
int main()
{
// Khai bao bien
float xA, yA, xB, yB,xC, yC, xM, yM;
float d, dtMAB, dtMAC, dtMBC, dtABC;
// Nhap du lieu
printf("Nhap vao tung do diem A: "); cin>>xA;
printf("Nhap vao hoanh do diem A: "); cin>>yA;
printf("Nhap vao tung do diem B: "); cin>>xB;
printf("Nhap vao hoanh do diem B: "); cin>>yB;
printf("Nhap vao tung do diem C: "); cin>>xC;
printf("Nhap vao hoanh do diem C: "); cin>>yC;
printf("Nhap vao tung do diem M: "); cin>>xM;
printf("Nhap vao hoanh do diem M: "); cin>>yM;
// Bien luan vi tri tuong doi
dtMAB = tinhDienTich(xM, yM, xA, yA, xB, yB);
dtMAC = tinhDienTich(xM, yM, xA, yA, xC, yC);
dtMBC = tinhDienTich(xM, yM, xB, yB, xC, yC);
dtABC = tinhDienTich(xA, yA, xB, yB, xC, yC);
d = dtMAB+dtMAC+dtMBC-dtABC;
if(d>0)
{
printf("M nam ngoai tam giac ABC");
}
else if(dtMAB==0 || dtMAC==0 || dtMBC==0)
{
printf("M nam tren canh cua tam giac ABC");
}
else
{
printf("M nam trong tam giac ABC");
}
cout<<endl;
return 0;
}
//===dinh nghia ham===
float tinhDienTich(float xA, float yA, float xB, float yB, float xC, float yC)
{
return 0.5*fabs(xA*yB-xB*yA+xB*yC-xC*yB+xC*yA-xA*yC);
}
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây