Pascal là ngôn ngữ lập trình cơ bản được đưa vào giảng dạy trong chương trình phổ thông cho bộ môn tin học. Với những em có khả năng toán tin giỏi thì chắc hẳn bài tập Pascal sẽ không làm khó các em được tuy nhiên với những em còn lại thì đây sẽ là một môn khá khó khăn đấy. Theo dõi bài tập pascal hình tứ giác và cách giải dưới đây để tham khảo thêm một loại bải tập trong Pascal nhé.
Giải bài tập Pascal hình tứ giác
Chúng ta có đề bài như sau:
Chúng ta có thể nhận thấy rằng bài tứ giác này phụ thuộc vào toán.
- Phần kiểm tra lồi lõm của tứ giác: các bạn cần viết phương trình đường thằng của AB, BC, CD, DA rồi xem thử 2 điểm kia có cùng phía hay không.
- Phần diện tích: công thức chung để tính cho đa giác không tự cắt (thứ tự các đỉnh đc cho theo chiều kim đồng hồ, hoặc ngược chiều) là:
0.5 * |x1*y2 + x2*y3 + x3*y4 + x4*y1 - x2*y1 - x3*y2 - x4*y3 - x1*y4|
Phần code cho bài tập Pascal hình tứ giác
var x, y : array[1..5] of double;
procedure read_input;
var i : integer;
begin
for i := 1 to 4 do
readln(x[i], y[i]);
x[5] := x[1]; y[5] := y[1];
end;
function area : double;
var i : integer;
begin
area := 0;
for i := 1 to 4 do
area := area + x[i] * y[i + 1] - x[i + 1] * y[i];
area := 0.5 * abs(area);
end;
function ccw(x1, y1, x2, y2, x3, y3 : double) : double;
begin
ccw := (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1);
end;
function is_convex : integer;
var i : integer;
t0 : double;
begin
t0 := ccw(x[1], y[1], x[2], y[2], x[3], y[3]);
for i := 2 to 3 do
if (t0 * ccw(x[i], y[i], x[i + 1], y[i + 1], x[i + 2], y[i + 2]) <=>
exit(0);
exit(1);
end;
Trên đây là hướng dẫn cách giải cũng như code cho bài tập Pascal hình tứ giác. Hy vọng với bài viết trên các bạn có thể hiểu và áp dụng để giải quyết các bài tập Pascal tương tự. Ngoài ra các bạn có thể tham khảo thêm các bài tập Pascal có lời giải đã được chia sẻ trên Taimienphi.vn nhé.
=>