Tính diện tích tam giác.
Khi học môn Lập trình cơ sở, các bạn sẽ gặp bài toán như sau: Hãy tính diện tích tam giác ABC với A, B, C là 3 điểm trong mặt phẳng Oxy.
Đa số các bạn chọn phương pháp tính diện tích theo công thức Heron.
Thuật toán tính như sau:
Tính độ dài 3 cạnh a, b,c.
Với a= sqrt((xB - xC)2 + (yB - yC)2)
Tương tự cho các cạnh khác.
Tính p= (a+b+c)/2;
Khi đó S= sqrt(p*(p-a)*(p-b)*(p-c))
typedef struct diem { int x, y;};
float dt(diem A, diem B, diem C)
{
float a= kc(B, C);
float b= kc(A, C);
float c= kc(A, B);
float p= (a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
Khi sử dụng phương pháp tính này, các bạn có thể gặp sai số.
Ta bổ sung thêm trường hợp sau:
Cho thêm một điểm D, hãy kiểm tra điểm D có thuộc tam giác ABC không.
Một cách giải bài toán này là dựa vào diện tích tam giác. Nếu D thuộc tam giác thì tổng diện tích 3 tam giác con ABD + ACD + BCD = diện tích tam giác ABC. Nếu tổng 3 diện tích trên lớn hơn điện tích ABC thì D nằm ngoài.
Vấn đề là sai số có thể ảnh hưởng đến kết quả tính toán.
» Tin mới nhất:
» Các tin khác: