1. Trang chủ
  2. » Công Nghệ Thông Tin

Phương pháp giải hình học trong tin học

27 1,2K 5

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 3,1 MB

Nội dung

... DẠNG BÀI TOÁN HÌNH HỌC THƯỜNG GẶP Dạng Mối quan hệ điểm, đoạn thẳng, đa giác Phương pháp: Đây số dạng toán hình học đơn giản Việc giải toán dạng chủ yếu sử dụng kiến thức hình học (đã trình bày... diện tích phủ hình chữ nhật Phương pháp: Giả sử có n hình chữ nhật Để tính diện tích phủ n hình chữ nhật ta làm sau: Bước Sử dụng a,b mảng lưu hoành độ tung độ đỉnh hình chữ nhật (mỗi hình chữ nhật... trình: Ví dụ Hình chữ nhật bao Cho N hình chữ nhật mặt phẳng mà cạnh song song với trục toạ độ Biết hình chữ nhật i bao hình chữ nhật j đỉnh hình chữ nhật j nằm hình chữ nhật i nằm cạnh hình chữ

PHƯƠNG PHÁP GIẢI TOÁN HÌNH HỌC BẰNG NGÔN NGỮ LẬP TRÌNH PASCAL Tin học và nhà trường Qua quá trình tham gia giảng dạy và bồi dưỡng học sinh giỏi chúng tôi thấy nhiều bài toán đòi hỏi học sinh phải tìm ra mô hình toán học cụ thể từ yêu cầu phức tạp của bài toán. Thực tế cho thấy những học sinh có khả năng vận dụng kiến thức toán học vào quá trình phân tích đề bài sẽ nhanh chóng phát hiện được mô hình toán học của bài toán và đưa ra lời giải hợp lý. Việc hướng cho học sinh phát hiện ra những mối liên hệ của bài toán cần giải quyết với các kiến thức toán thông dụng qua quá trình tìm hiểu nội dung bài toán là không dễ dàng gì. Với mong muốn phần nào giúp học sinh cũng như giáo viên trong việc tìm ra lời giải cho một số dạng bài toán thường gặp trong chương trình THPT cần giải quyết lập trình đó là các bài toán hình học, chúng tôi xin giới thiệu phương pháp giải toán hình học bằng ngôn ngữ lập trình Pascal mà chúng tôi đã áp dụng trong quá trình giảng dạy. I. KHÁI NIỆM HÌNH HỌC VÀ CÁC ĐỐI TƯỢNG HÌNH HỌC CƠ BẢN 1. Khái niệm hình học. Đa số các thuật toán đều tập trung vào văn bản và các con số, chúng được thiết kế và xử lý sẵn trong phần lớn các môi trường lập trình. Đối với các bài toán hình học thì tình huống khác hẳn, ngay cả các phép toán sơ cấp trên điểm và đoạn thẳng cũng có thể là một thách thức về tính toán. Các bài toán hình học thì dễ hình dung một cách trực quan nhưng chính điều đó lại có thể là một trở ngại. Nhiều bài toán có thể giải quyết ngay lập tức bằng cách nhìn vào một mảnh giấy nhưng lại đòi hỏi những chương trình không đơn giản. Ví dụ: Bài toán kiểm tra một điểm có nằm trong đa giác hay không? 2. Đối tượng hình học cơ bản. Trong các bài toán tin học thuộc loại hình học có 3 đối tượng cơ bản là: Điểm, đoạn thẳng và đa giác. - Điểm: Được xác định là cặp (x,y) trong hệ toạ độ đề các. - Đoạn thẳng: Là cặp điểm được nối với nhau bằng một phần của đường thẳng. - Đa giác: Là dãy các điểm mà 2 điểm liên tiếp nối với nhau bởi đoạn thẳng và điểm đầu nối với điểm cuối tạo thành đường gấp khúc khép kín. 3. Dữ liệu lưu trữ các đối tượng hình học cơ bản II. MỘT SỐ PHÉP TOÁN CƠ BẢN 1. Vị trí tương đối của điểm so với đường thẳng, tia và đoạn thẳng Bài toán 1: Cho điểm . Yêu cầu: a) Kiểm tra M có thuộc đường thẳng đi qua 2 điểm A, B hay không? b) Kiểm tra M có thuộc đoạn thẳng AB hay không c) Kiểm tra M có thuộc tia AB hay không Phương pháp: Đặt - Điểm M thuộc đường thẳng AB khi - Điểm M thuộc đoạn thẳng AB khi: - Chương trình: 2. Giao của các đoạn thẳng, đường thẳng và tia Bài toán 2. Cho 2 đường thẳng có phương trình điểm (nếu có) của 2 đường thẳng trên. . Tìm giao Phương pháp: + Nếu D=Dx=Dy=0 thì kết luận 2 đường thẳng trùng nhau + Nếu D=0 và ((Dx ≠0) hoặc (Dy ≠ 0)) thì kết luận 2 đường thẳng song song + Nếu D ≠ 0 thì kết luận 2 đường thẳng cắt nhau tại điểm có (Dx/D, Dy/D) Chương trình: Bài toán 3. Cho 2 đoạn thẳng AB và CD với . Tìm giao điểm (nếu có) của 2 đoạn thẳng Phương pháp: Bước 1. Tìm giao điểm M của 2 đường thẳng AB và CD Bước 2. Kiểm tra M có thuộc đồng thời cả 2 đoạn AB và CD hay không. Nếu có đó là giao điểm cần tìm, ngược lại kết luận không có. Chương trình: Bài toán 4. Cho tia AM chứa với CD. điểm B (khác A) và đoạn thẳng CD . Tìm giao điểm (nếu có) của tia AM với đoạn thẳng - Phương pháp: Bước 1. Tìm giao điểm N của 2 đường thẳng AB và CD Bước 2. Kiểm tra N có thuộc tia AM và đoạn thẳng CD hay không. Nếu có đó là giao điểm cần tìm, ngược lại kết luận không có. Chương trình: 3. Vị trí của điểm so với đa giác Bài toán 5. Cho đa giác gồm N đỉnh M với miền trong đa giác. và điểm M. Xác định vị trí tương đối của Phương pháp: Bước 1. Kiểm tra M có thuộc cạnh nào của đa giác hay không, nếu có thì kết luận M thuộc miền trong đa giác và kết thúc Bước 2. Kẻ MN song song với trục hoành (điểm N có hoành độ lớn hơn max hoành độ của đa giác) Bước 3. Xác định d là số giao điểm của MN với các cạnh của đa giác. Những trường hợp sau được coi như là tăng thêm 1 giao điểm: + Đỉnh d[i] không thuộc đoạn thẳng MN, đỉnh d[i+1] nằm trên đoạn thẳng MN, 2 đỉnh d[i] và d[i+2] khác phía so với đường thẳng MN. + Đỉnh d[i-1], d[i+2] ngoài đoạn thẳng MN, hai đỉnh d[i] và d[i+1] thuộc đoạn MN, d[i-1] và d[i+1] khác phía so với đường thẳng MN + Đỉnh d[i] và d[i+1] không thuộc MN và cạnh (d[i],d[i+1]) cắt đoạn thẳng MN PHẦN II. MỘT SỐ DẠNG BÀI TOÁN HÌNH HỌC THƯỜNG GẶP Dạng 1. Mối quan hệ giữa điểm, đoạn thẳng, đa giác. Phương pháp: Đây là một trong số dạng bài toán hình học đơn giản nhất. Việc giải bài toán dạng này chủ yếu sử dụng các kiến thức hình học cơ bản (đã trình bày đầy đủ trong phần trên) VD1 Ba điểm thẳng hàng Cho N điểm, hãy kiểm tra xem có bao nhiêu bộ 3 điểm thẳng hàng. Input: Cho trong tệp văn bản DL.INP - Dòng thứ 1 ghi số N - N dòng tiếp theo, mỗi dòng ghi toạ độ của một điểm. Output: Ghi vào tệp KQ.OUT chứa một số duy nhất là số bộ 3 điểm thẳng hàng. (Giới hạn: 10) và (bao[k,j]>0). Sử dụng mảng KQ để lưu các hình chữ nhật k thoả mãn - Hình chữ nhật nhỏ nhất bao tất cả các hình chữ nhật đã cho là hình chữ nhật có toạ độ góc dưới phải là (xmin,ymin) và toạ độ góc trên trái là (xmax,ymax) - Phương pháp tìm diện tích phủ đã trình bày ở dạng 3 [...]... thuộc hình chữ nhật B đều nằm trong hoặc thuộc hình chữ nhật A Trong mặt phẳng Oxy cho n hình chữ nhật có các cạch song song với các trục toạ độ Yêu cầu: 1 Tìm số hình chữ nhật bao nhau nhiều nhất (số lượng hình phải >1) 2 Trong số các tập hình chữ nhật bao nhau, tìm tập các hình chữ nhật bao nhau có tổng diện các diện tích của các hình chữ nhật trong tập là lớn nhất 3 Tìm hiệu diện tích của hình chữ... đa giác mà mọi điểm của nó nằm trong đa giác kia nên KQ[vt[i]] =i-1 - Chương trình: Ví dụ 3 Hình chữ nhật bao nhau Cho N hình chữ nhật trên mặt phẳng mà các cạnh song song với các trục toạ độ Biết hình chữ nhật i bao hình chữ nhật j nếu cả 4 đỉnh của hình chữ nhật j đều nằm trong hình chữ nhật i hoặc nằm trên cạnh của hình chữ nhật i Một dãy các hình chữ nhật được gọi là hình chữ nhật bao nhau chiều... tích của phần hình S không nằm trong hình chữ nhật nào trong N hình đã cho - Ý tưởng: - Xác định hình chữ nhật H nhỏ nhất bao tất cả các hình chữ nhật ban đầu: Gọi minx,maxx lần lượt là hoành độ nhỏ nhất và lớn nhất trong các hoành độ các đỉnh hình chữ nhật đã cho; miny, maxy lần lượt là tung độ nhỏ nhất và lớn nhất trong các tung độ các đỉnh hình chữ nhật đã cho Khi đó hình H có toạ độ đỉnh dưới trái... HCN.Out - Dòng đầu: Cho biết tập các hình chữ nhật bao nhau nhiều nhất theo dạng k l m n với ý nghĩa -Hình chữ nhật thứ k thuộc hình chữ nhật thứ l, hình chữ nhật thứ l thuộc hình chữ nhật thứ m, hình chữ nhật thứ m thuộc hình chữ nhật n nếu không có thì ghi từ "khong" - Dòng thứ 2: Cho biết tập các hình chữ nhật bao nhau có tổng các diện tích của các hình chữ nhật trong tập hợp là lớn nhất theo qui... Tính diện tích hình H là (maxx-minx)(maxy-miny) - Tính diện tích s phủ bởi các hình chữ nhật (đã nêu rõ ở phương pháp chung) - Phần diện tích cần tìm là: s1:=abs((maxx-minx)*(maxy-miny))-s - Chương trình: Ví dụ 3 Diện tích phủ bởi các hình tròn Trên mặt phẳng cho N hình tròn Tính diện tích phần mặt phẳng bị phủ bởi các hình tròn trên Dữ liệu: Cho trong file INP.BL3 dòng đầu là số lượng hình tròn, từ... các hình chữ nhật sau khi sắp xếp Ý tưởng: - Lưu toạ độ các đỉnh đa giác vào mảng a - Tính diện tích hình chữ nhật theo công thức: - Sắp xếp mảng a tăng dần theo diện tích Ý tưởng: Dạng 3 Xác định diện tích phủ bởi các hình chữ nhật Phương pháp: Giả sử có n hình chữ nhật Để tính diện tích phủ bởi n hình chữ nhật ta làm như sau: Bước 1 Sử dụng a,b lần lượt là các mảng lưu hoành độ và tung độ các đỉnh hình. .. số biểu diễn hiệu diện tích hình chữ nhật nhỏ nhất bao tất cả hình chữ nhật đã cho với diện tích của phần mặt phẳng bị phủ bởi các hình chữ nhật đã cho - Ý tưởng: - Lưu tọa độ các đỉnh hình chữ nhật vào 4 mảng x1,y1,x2,y2 - Dùng mảng bao(n,n) để đánh dấu các hình chữ nhật bao nhau: Với bao[i,j]=1 có nghĩa hình chữ nhật i bao hình chữ nhật j, bao[i,j]=0 thì ngược lại - Dãy hình chữ nhật thứ i, k, j gọi... 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 - Lưu toạ độ ban đâu các hình chữ nhật vào mảng a - 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 (x i+1,yi+1) và toạ độ đỉnh dưới bên phải là (xi,yi) với 1 ≤i ≤n-1 Nếu hình chữ nhật này thuộc một trong. .. x, y của tâm và bán kính của từng hình tròn (các số trên cùng một dòng ghi cách nhau ít nhất 1 dấu cách) Kết quả: Xuất ra màn hình - Ý tưởng: - Tìm hình chữ nhật nhỏ nhất có các cạnh song song với các trục toạ độ và chứa toàn bộ N hình tròn - Chia hình chữ nhật này thành lưới các ô vuông có cạnh 0.1 đơn vị, với mỗi ô thuộc hình chữ nhật kiểm tra xem ô này có thuộc vào hình tròn nào đó hay không, nếu... nhật (mỗi hình chữ nhật chỉ cần lưu toạ độ 2 đỉnh đối diện qua tâm hình chữ nhật) Bước 2 Sắp xếp mảng a,b theo thứ tự tăng dần Bước 3 Lần lượt kiểm tra các hình chữ nhật có toạ độ đỉnh trên bên phải (x i+1,yi+1) và toạ độ đỉnh dưới bên phải là (x i,yi) với 1 ≤i ≤n-1 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

Ngày đăng: 30/09/2015, 15:12

TỪ KHÓA LIÊN QUAN

w