TIN TỨC CẬP NHẬT
Một bài về hình phẳng
Trang 1 trong tổng số 1 trang
Một bài về hình phẳng
Nguồn: [You must be registered and logged in to see this link.]
Bài toán: Trong mặt phẳng toạ độ trực chuẩn, cho N hình chữ nhật có các cạnh song song với trục toạ độ. Mỗi HCN được xác định bởi toạ độ đỉnh dưới bên trái và đỉnh trên bên phải của nó. Hãy tính diện tích phần mặt phẳng bị phủ bởi các HCN trên.
Dữ liệu: Cho trong file HCN.inp gồm N+1 dòng.
- Dòng 1. Chứa số N
- Dòng i+1 : Ghi 4 số nguyên x1,y1,x2,y2 lần lượt là toạ độ đỉnh dưới bên trái và đỉnh trên bên phải của HCN i.
Các số ghi trên một dòng cách nhau ít nhất một dấu cách.
Kết quả: Đưa ra màn hình diện tích phần mặt phẳng bị phủ bởi hình chữ nhật trên.
Ý tưởng:
- Lập mảng X[1..2n], Y[1..2n] lần lượt chứa hoành độ, tung độ các hình chữ nhật
- Sắp xếp mảng X,Y tăng dần
- Lần lượt kiểm tra các hình chữ nhật có toạ độ đỉnh trên bên phải (xi+1,yi+1) và toạ độ đỉnh dưới bên phải là (xi,yi) với . Nếu hình chữ nhật này thuộc một trong các hình chữ nhật ban đầu thì cộng thêm vào phần diện tích đang cần tìm diện tích của hình chữ nhật con này.
Chương trình tham khảo:
Bài toán: Trong mặt phẳng toạ độ trực chuẩn, cho N hình chữ nhật có các cạnh song song với trục toạ độ. Mỗi HCN được xác định bởi toạ độ đỉnh dưới bên trái và đỉnh trên bên phải của nó. Hãy tính diện tích phần mặt phẳng bị phủ bởi các HCN trên.
Dữ liệu: Cho trong file HCN.inp gồm N+1 dòng.
- Dòng 1. Chứa số N
- Dòng i+1 : Ghi 4 số nguyên x1,y1,x2,y2 lần lượt là toạ độ đỉnh dưới bên trái và đỉnh trên bên phải của HCN i.
Các số ghi trên một dòng cách nhau ít nhất một dấu cách.
Kết quả: Đưa ra màn hình diện tích phần mặt phẳng bị phủ bởi hình chữ nhật trên.
Ý tưởng:
- Lập mảng X[1..2n], Y[1..2n] lần lượt chứa hoành độ, tung độ các hình chữ nhật
- Sắp xếp mảng X,Y tăng dần
- Lần lượt kiểm tra các hình chữ nhật có toạ độ đỉnh trên bên phải (xi+1,yi+1) và toạ độ đỉnh dưới bên phải là (xi,yi) với . Nếu hình chữ nhật này thuộc một trong các hình chữ nhật ban đầu thì cộng thêm vào phần diện tích đang cần tìm diện tích của hình chữ nhật con này.
Chương trình tham khảo:
- Code:
Const Maxn=1000;
Type Toa_do = recordx1,y1,x2,y2:integer;end;
mang=array[1..2*maxn] of integer;
var N,s:integer;
a:array[1..maxn] of toa_do;
X,Y:mang;
{=======Doc du lieu=====}
Procedure doc_dl;
var f:text; i:integer;
begin
assign(f,'HCN.inp');
reset(f);
readln(f,n);
for i:=1 to n do
readln(f,a[i].x1,a[i].y1,a[i].x2,a[i].y2);
close(f);
end;
{===Sap xep mang tang dan===}
Procedure Sapxep(Var T:Mang);
Var i,j,TG,m:integer;
Begin
m:=2*n;
for i:=1 to m-1 do
for j:=i+1 to m do
if T[i]>T[j] then
begin
TG:=T[i];
T[i]:=T[j];
T[j]:=TG;
end;
end;
{====Kiem tra HCN moi thuoc HCN da cho====}
function Kiemtra_thuoc(i,j:integer):boolean;
var k:integer;
begin
Kiemtra_thuoc:=true;
for k:=1 to N do
if (a[k].x1<=x[i-1]) and (X[i]<=a[k].x2)
and (a[k].y1<=y[j-1]) and(Y[j]<=a[k].y2) then exit;
Kiemtra_thuoc:=false;
end;
{========================================}
Procedure Xuly;
var i,j:integer;
Begin
for i:=1 to N do
begin
X[i*2-1]:=a[i].x1;
X[i*2]:=a[i].x2;
Y[i*2-1]:=a[i].y1;
Y[i*2]:=a[i].y2;
end;
Sapxep(X); Sapxep(Y);
for i:=2 to 2*N do
for j:=2 to 2*N do
if Kiemtra_thuoc(i,j) then S:=s+(X[i]-X[i-1])*(Y[j]-Y[j-1]);
end;
{====================================}
Begin
doc_dl;
s:=0;
Xuly;
Write('Dien tich la:', S);
readln;
End.
Similar topics
» Thuật toán tìm phần giao và phần hợp của một số đối tượng trong hình học phẳng
» Hình ảnh về các loại tàu chiến tàng hình trên thế giới
» Phong Vân 2 nè ! Hình ảnh siêu vip HOT HOT HOT !
» Một số bài toán về hình vuông
» Xác định tâm của một hình đa giác bất kì
» Hình ảnh về các loại tàu chiến tàng hình trên thế giới
» Phong Vân 2 nè ! Hình ảnh siêu vip HOT HOT HOT !
» Một số bài toán về hình vuông
» Xác định tâm của một hình đa giác bất kì
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết