ĐẠI HỌC ĐÀ NẴNG − TRƯỜNG ĐẠI HỌC BÁCH KHOA K H O A C Ô N G N G H Ệ T H Ô N G T I N 54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP Đà Nẵng Tél 84.511.3736.949 - Website: itf.dut.edu.vn/, E-mail:cntt@dut.udn.vn BÀI TẬP MÔN LẬP TRÌNH HÀM & LẬP TRÌNH LƠGIC • Thực theo nhóm sinh viên Lớp tổ chức cho nhóm bốc thăm chọn tốn Lập trình hàm bốc thăm chọn tốn Lập trình lơgic hai phần danh mục để triển khai lập trình, viết báo cáo kết (do có nhiều nhóm nên trùng đề tài, nhiên bắt buộc tất đề tài phải chọn hết) • Nội dung báo cáo ghi rõ họ tên SV+lớp (nhóm) tham gia nhóm tên đề tài, gồm kết quả/đặc tả phân tích toán, liệu vào/ra, thuật toán, độ phức tạp cấu trúc liệu tương ứng, chương trình sử dụng ngơn ngữ Scheme, SWI-Prolog có thích rõ ràng, kết chạy thử với trường hợp liệu đầu vào khác Chú ý giải thích bước thực chạy chương trình kết nhận tương ứng • Lớp giúp tơi kiểm tra thu tập trung, gửi cho lần danh sách thi ký tên ngày thi kết thúc môn học, gồm : Báo cáo in giấy A4 đóng CD-ROM (hoặc ZipFiles) ghi tồn nội dung thực hiện, mã nguồn, kết chạy thử nghiệm Chú ý bắt buộc SV phải ghi số thứ tự danh sách thi cuối kỳ vào báo cáo in giấy PHẦN ĐỀ TÀI LẬP TRÌNH HÀM VỚI SCHEME Cho số thực X1, Y1, X2, Y2, X3, Y3, X4, Y4 tương ứng toạ độ bốn điểm A, B, C, D, mặt phẳng toạ độ Đêcac xOy Viết hàm Scheme thực công việc sau : - Kiểm tra ba điểm có lập thành tam giác khơng ? - Nếu tam giác, xét xem : o Điểm cịn lại có nằm bên tam giác khơng ? o Tính khoảng cách từ điểm lại đến ba điểm lập thành tam giác Cho số thực X1, Y1, X2, Y2, X3, Y3, X4, Y4 tương ứng toạ độ bốn điểm A, B, C, D, mặt phẳng toạ độ Đêcac xOy Viết hàm Scheme thực công việc sau : - Bốn điểm cho có lập thành tứ giác khơng ? - Nếu tứ giác, xét xem : • Tứ giác tạo thành hình ? • Tính chu vi diện tích hình tứ giác Cho x ∈ ℜ thay đổi từ đến với bước tăng h = 0.01 n nguyên dương Viết hàm Scheme tìm nghiệm phương trình vi phân f(x) = cos x - , x 3π 5π , , biết nghiệm điểm hàm cos x, nghĩa 2 f(x n ) Dùng phương pháp lặp Newton : x n + = x n , với f’(x) đạo hàm f f '(x n ) Cho x ∈ ℜ thay đổi từ đến với bước tăng h = 0.01 Tính tổng : x2 x4 x6 1+ + × + × × + với độ xác ε cho trước Chẳng hạn ε = 10-5 Bài tập thi cuối kỳ mơn Lập trình hàm Lập trình lơgic Tính giá trị đa thức Legendre bậc n cho công thức truy hồi sau : Ln+2(x) = xLn+1(x) - (n + 1)2 L n (x) (2n + 1)(2n + 3) với n = 0, 1, 2, Trong : L0(x) = 1, L1(x) = x Trong mặt phẳng toạ độ, phương trình đường dốc đường thẳng có độ dốc m qua điểm P có toạ độ (x1, y1) : y - y1 = m(x - x1) Thực công việc sau : a) Từ danh sách gồm độ dốc toạ độ điểm hai đường thẳng, kiểm tra xem chúng có giao hay song song với ? b) Nếu hai đường thẳng song song với nhau, tính khoảng cách chúng c) Nếu hai đường thẳng giao nhau, kiểm tra chúng có vng góc với hay không ? Không sử dụng kiểu số phức có sẵn Scheme mà dùng kiểu đơi (pair-doublet) để biểu diễn số phức (a + bi) Hãy tính in kết dạng chuẩn a + bi Cho biết : Cộng: (a + bi) ± (c + di) = (a ± c) + (b ± d)i (a + bi) − (c + di) = (a − c) + (b − d)i Trừ : Nhân : (a + bi) × (c + di) = (ac − bd) + (ad ± bc)i Luỹ thừa : (a + bi)n = rn(cosnϕ + isinnϕ), : r = a2 + b2 , ϕ = arctg b a Không sử dụng kiểu số phức có sẵn Scheme mà dùng kiểu đôi (pair-doublet) để biểu diễn số phức (a + bi) Hãy tính in kết dạng chuẩn a + bi Cho biết : (a + bi) (ac + bd) (bc − ad) = + i , với điều kiện c2 + d2 ≠ 2 2 (c + di) (c + d ) (c + d ) Chia : Căn bậc hai : x= a + bi = x + yi , a + 2 : ⎛ a⎞ ⎛ b⎞ ⎜ ⎟ + ⎜ ⎟ , y= ⎝ 2⎠ ⎝ 2⎠ Nếu a > 0, tính x lúc đó, y = a − + 2 ⎛ a⎞ ⎛ b⎞ ⎜ ⎟ +⎜ ⎟ ⎝ 2⎠ ⎝ 2⎠ b b x , a < 0, tính y lúc đó, x = y 2 Cho trước hai danh sách số thực, tạo danh sách thứ ba cho phần tử số phức có phần thực nằm danh sách thứ phần ảo nằm danh sách thứ hai cách tương ứng Biện luận 10 Cho trước danh sách số phức, xếp phần tử danh sách cho phần thực chúng tạo thành dãy không giảm 3 Bài tập thi cuối kỳ môn Lập trình hàm Lập trình lơgic PHẦN ĐỀ TÀI LẬP TRÌNH LƠGIC VỚI SWI-PROLOG Trị chơi qn cờ (Cờ ta canh) Tám (8) quân cờ hình, gồm bảng kích thước 3x3 với quân cờ đánh số từ đến ô trống Một quân cờ đứng cạnh ô trống vào trống Mục tiêu ln ln tiến tới vị trí qn cờ hình bên phải (trạng thái đích) Trạng thái đầu Trạng thái đích 3 6 8 Trình bày thuật tốn viết chương trình Prolog để di chuyển quân cờ cho số bước di chuyển thấp (tối ưu) Dữ liệu đọc từ tệp (file) ma trận vng 3x3 Trị chơi viết số Hai người chơi với trò chơi sau : với số a có sẵn, đến lượt chơi, người viết số a+1 hay 2a với điều kiện số viết không vượt qua số nguyên dương N cho trước Với số bắt đầu 1, viết số N trước xem thắng Xem máy người sau Trình bày thuật tốn viết chương trình Prolog mơ tả trị chơi cho khả thắng máy cao Dữ liệu đọc từ bàn phím Trị chơi Minesweeper Windows Tìm hiểu trị chơi Minesweeper Windows Trình bày thuật tốn viết chương trình Prolog minh hoạ Bài tốn phân việc Có N chi tiết máy J1, J2, , Jn cần gia công máy A, B, C với thời gian hoàn thành tương ứng chi tiết TA, TB, TC Các chi tiết từ J1, J2, , Jn gia cơng theo thứ tự nhiên chi tiết Ji phải gia công theo thứ tự máy A đến máy B đến máy C Dữ liệu đọc từ tệp (file) có dạng sau : DULIEU.INP N // số chi tiết cần gia công J1A, J2A, , JnA // thời gian gia công chi tiết máy A J1B, J2B, , JnB // thời gian gia công chi tiết máy B J1C, J2C, , JnC // thời gian gia công chi tiết máy C Trình bày thuật tốn viết chương trình Prolog mơ tả cho tổng thời gian gia cơng hồn thành N chi tiết thấp (tối ưu) Kết đưa thứ tự công việc Bài tập thi cuối kỳ mơn Lập trình hàm Lập trình lơgic Xử lý tam giác Mối quan hệ thành phần tam giác (phẳng) sau : Nếu biết cạnh tam giác biết nửa chu vi tam giác Nếu biết cạnh nửa chu vi tam giác biết cạnh cịn lại tam giác Nếu biết diện tích cạnh tam giác biết chiều cao tương ứng với cạnh Nếu biết cạnh góc kẹp cạnh tam giác biết cạnh cịn lại tam giác Nếu biết cạnh góc kẹp cạnh tam giác biết diện tích tam giác Nếu biết cạnh nửa chu vi tam giác biết diện tích tam giác Nếu biết diện tích đường cao tam giác biết cạnh tương ứng với đường cao tam giác Trình bày thuật tốn viết chương trình Prolog minh hoạ Chẳng hạn giả sử biết cạnh góc kẹp cạnh đó, suy đường cao tương ứng với cạnh lại Bài toán người du lịch Một người khách du lịch muốn thăm n thành phố đánh số từ đến N quay lại thành phố đưa phát Mạng lưới giao thông n thành phố hai chiều cho ma trận A[i,j] A[i,j]=1 có đường từ thành phố i đến thành phố j, A[i,j]=0 trường hợp ngược lại Kết đưa chu trình đường (chu trình Hamilton) Trình bày thuật tốn viết chương trình Prolog minh hoạ lộ trình cho người khách hay thông báo không tồn lời giải Dữ liệu đọc từ tệp (file) có dạng sau : DULIEU.INP Dòng ghi số nguyên N (NAJE 6) H>BC Trình bày thuật tốn viết chương trình Prolog để chứng minh 10 bạn nhóm tham gia dự thi sản phẩm phần mềm