1. Trang chủ
  2. » Khoa Học Tự Nhiên

Phương pháp xác định diện tích phẳng bị phủ bởi các hình chữ nhật pptx

2 1,1K 4

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 36 KB

Nội dung

PHƯƠNG PHÁP XÁC ĐỊNH DIỆN TÍCH PHẲNG BỊ PHỦ BỞI CÁC HÌNH CHỮ NHẬTBà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á

Trang 1

PHƯƠNG PHÁP XÁC ĐỊNH DIỆN TÍCH PHẲNG BỊ PHỦ BỞI CÁC HÌNH CHỮ NHẬT

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:

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;

Trang 2

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

Tác giả:Võ Sỹ Ngọc

GV Trường THPT Thành Sen TP Hà Tĩnh

Đ/c Xã Thạch Bình - TP Hà Tĩnh - Hà Tĩnh

ĐT: 039.282528 DD: 0983.845796

School@net

Ngày đăng: 16/03/2014, 14:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w