1. Trang chủ
  2. » Giáo Dục - Đào Tạo

D i h c d a n n g t r n g d

6 6 0

Đ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 6
Dung lượng 328,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lớp tổ chức cho các nhóm bốc thăm chọn một bài toán Lập trình hàm và bốc thăm chọn một bài toán Lập trình lôgic trong hai phần danh mục dưới đây để triển khai lập trình, viết báo cáo k

Trang 1

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

1

BÀI TẬP MÔN LẬP TRÌNH HÀM & LẬP TRÌNH LÔGIC

Thực hiện theo nhóm 3 sinh viên Lớp tổ chức cho các nhóm bốc thăm chọn một bài toán

Lập trình hàm và bốc thăm chọn một bài toán Lập trình lôgic trong hai phần danh mục dưới

đây để triển khai lập trình, viết báo cáo kết quả (do có thể có nhiều nhóm nên có thể trùng

đề tài, tuy nhiên bắt buộc tất cả các đề tài đều phải được chọn hết)

Nội dung báo cáo ghi rõ họ tên các SV+lớp (nhóm) tham gia trong nhóm và tên đề tài, gồm kết quả/đặc tả phân tích bài toán, dữ liệu vào/ra, thuật toán, độ phức tạp và cấu trúc dữ liệu tương ứng, chương trình sử dụng ngôn ngữ Scheme, SWI-Prolog có chú thích rõ ràng, kết quả chạy thử với các trường hợp dữ liệu đầu vào khác nhau Chú ý giải thích các bước thực hiện chạy chương trình và kết quả nhận được tương ứng như thế nào

Lớp giúp tôi kiểm tra và thu bài tập trung, gửi cho tôi một lần cùng danh sách thi đã ký tên

trong ngày thi kết thúc môn học, gồm : Báo cáo in giấy A4 đóng quyển và CD-ROM (hoặc

ZipFiles) ghi toàn bộ nội dung thực hiện, mã nguồn, kết quả chạy thử nghiệm Chú ý bắt buộc

mỗi SV phải ghi số thứ tự trong 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

1 Cho 8 số thực X 1 , Y 1 , X 2 , Y 2 , X 3 , Y 3 , X 4 , Y 4 tương ứng lần lượt là toạ độ của bốn điểm A, B, C,

D, trong mặt phẳng toạ độ Đêcac xOy Viết hàm Scheme thực hiện các công việc sau :

- Kiểm tra ba điểm nào đó bất kỳ có lập thành một tam giác không ?

- Nếu đó là một tam giác, hãy xét xem :

o Điểm còn lại có nằm bên trong tam giác này không ?

o Tính khoảng cách từ điểm còn lại đến ba điểm đã lập thành một tam giác

2 Cho 8 số thực X 1 , Y 1 , X 2 , Y 2 , X 3 , Y 3 , X 4 , Y 4 tương ứng lần lượt là toạ độ của bốn điểm A, B, C,

D, trong mặt phẳng toạ độ Đêcac xOy Viết hàm Scheme thực hiện các công việc sau :

- Bốn điểm đã cho có lập thành một tứ giác không ?

- Nếu là một tứ giác, hãy xét xem :

• Tứ giác tạo thành hình gì ?

• Tính chu vi và diện tích của hình tứ giác

3 Cho x ∈ ℜ thay đổi từ 0 đến 1 với bước tăng là h = 0.01 và 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 - 1

x , biết rằng nghiệm ở giữa các điểm 0 của hàm cos x, nghĩa là 3 , 5

,

Dùng phương pháp lặp Newton :

n

n

f(x )

x = x -

f '(x ), với f’(x) là đạo hàm của f

với độ chính xác ε cho trước Chẳng hạn ε = 10-5

Trang 2

5 Tính giá trị của đa thức Legendre bậc n được cho bởi công thức truy hồi như sau :

2

(n + 1)

L (x)

Trong đó : L0(x) = 1, L1(x) = x

6 Trong mặt phẳng toạ độ, phương trình đường dốc của một đường thẳng có độ dốc m và đi qua điểm P có toạ độ (x 1 , y 1 ) là : y - y 1 = m(x - x 1) Thực hiện các công việc sau :

a) Từ danh sách gồm độ dốc và toạ độ điểm của hai đường thẳng, hãy kiểm tra xem chúng

có giao nhau hay song song với nhau ?

b) Nếu hai đường thẳng song song với nhau, hãy tính khoảng cách giữa chúng

c) Nếu hai đường thẳng giao nhau, kiểm tra chúng có vuông góc với nhau hay không ?

7 Không sử dụng kiểu số phức có sẵn của Scheme mà dùng kiểu bộ đôi (pair-doublet) để biểu

diễn số phức (a + bi) Hãy tính và in ra kết quả dưới dạng chuẩn a + bi Cho biết :

Cộng: (a + bi) ± (c + di) = (a ± c) + (b ± d)i

Trừ : (a + bi) − (c + di) = (a − c) + (b − d)i

Nhân : (a + bi) × (c + di) = (ac − bd) + (ad ± bc)i

Luỹ thừa : (a + bi)n = rn(cosnϕ + isinnϕ), trong đó : r = a + b2 2, ϕ = arctgb

a

8 Không sử dụng kiểu số phức có sẵn của Scheme mà dùng kiểu bộ đôi (pair-doublet) để biểu

diễn số phức (a + bi) Hãy tính và in ra kết quả dưới dạng chuẩn a + bi Cho biết :

(a + bi) (ac + bd) (bc ad)

(c + di) (c + d ) (c + d ) , với điều kiện c2 + d2 ≠ 0

Căn bậc hai : a + bi = x + yi , trong đó :

Nếu a > 0, tính x và lúc đó, y = bx

2 , nếu a < 0, tính y và lúc đó, x = by

2

9 Cho trước hai danh sách các số thực, hãy tạo ra một danh sách thứ ba sao cho mỗi phần tử là một số phức có phần thực nằm ở danh sách thứ nhất và phần ảo nằm ở danh sách thứ hai một cách tương ứng lần lượt Biện luận

10 Cho trước một danh sách các số phức, hãy sắp xếp các phần tử của danh sách sao cho

phần thực của chúng tạo thành dãy không giảm

Trang 3

PHẦN ĐỀ TÀI LẬP TRÌNH LÔGIC VỚI SWI-PROLOG

1 Trò chơi 8 quân cờ (Cờ ta canh)

Tám (8) quân cờ được chỉ ra trong hình, gồm một bảng kích thước 3x3 với 8 quân cờ được đánh số từ 1 đến 8 và một ô trống Một quân cờ đứng cạnh ô trống có thể đi vào ô trống Mục tiêu là luôn luôn tiến tới vị trí các quân cờ như ở trong hình bên phải (trạng thái đích)

Trạng thái đầu Trạng thái đích

Trình bày thuật toán và viết chương trình Prolog để di chuyển các quân cờ sao cho số bước

di chuyển là thấp nhất (tối ưu) Dữ liệu được đọc từ tệp (file) là một ma trận vuông 3x3

2 Trò chơi viết số

Hai người chơi với nhau trò chơi như sau : với 1 số a đang có sẵn, đến lượt mình chơi, người

đó sẽ viết số a+1 hay 2a với điều kiện số mới viết này không vượt qua số nguyên dương N cho trước Với số bắt đầu là 1, ai viết được số N trước thì xem như thắng

Xem như máy là người đi sau

Trình bày thuật toán và viết chương trình Prolog mô tả trò chơi sao cho khả năng thắng của máy cao Dữ liệu được đọc từ bàn phím

3 Trò chơi Minesweeper của Windows

Tìm hiểu trò chơi Minesweeper của Windows Trình bày thuật toán và viết chương trình Prolog minh hoạ

4 Bài toán phân việc

Có N chi tiết máy J1, J2, , Jn cần gia công lần lượt trên 3 máy A, B, Cvới thời gian hoàn thành tương ứng của một chi tiết là TA, TB, TC Các chi tiết từ J1, J2, , Jn có thể gia công theo thứ tự bất kỳ tuy nhiên một chi tiết Ji phải được gia công lần lượt theo thứ tự trên máy A đến máy B rồi đến máy C

Dữ liệu được đọc từ tệp (file) có dạng như sau :

DULIEU.INP

J1A, J2A, , JnA // thời gian gia công các chi tiết trên máy A

J1B, J2B, , JnB // thời gian gia công các chi tiết trên máy B

J1C, J2C, , JnC // thời gian gia công các chi tiết trên máy C

Trình bày thuật toán và viết chương trình Prolog mô tả sao cho tổng thời gian gia công hoàn thành N chi tiết là thấp nhất (tối ưu) Kết quả đưa ra là thứ tự các công việc

1 2 3

7 4 6

5 8

1 2 3

4 5 6

7 8

Trang 4

5 Xử lý tam giác

Mối quan hệ giữa các thành phần trong một tam giác (phẳng) như sau :

1 Nếu biết 3 cạnh của tam giác thì có thể biết nửa chu vi của tam giác đó

2 Nếu biết 2 cạnh và nửa chu vi của một tam giác thì biết được cạnh còn lại của tam giác

3 Nếu biết diện tích và một cạnh của một tam giác thì có thể biết được chiều cao tương ứng

với cạnh đó

4 Nếu biết 2 cạnh và 1 góc kẹp giữa 2 cạnh đó của một tam giác thì có thể biết được

cạnh còn lại của tam giác đó

5 Nếu biết 2 cạnh và 1 góc kẹp giữa 2 cạnh đó của một tam giác thì có thể biết được

diện tích của tam giác đó

6 Nếu biết 3 cạnh và nửa chu vi của một tam giác thì biết được diện tích của tam giác đó

7 Nếu biết diện tích và đường cao của một tam giác thì biết được cạnh tương ứng với

đường cao của tam giác đó

Trình bày thuật toán và viết chương trình Prolog minh hoạ Chẳng hạn giả sử biết được 2 cạnh và góc kẹp giữa 2 cạnh đó, có thể suy ra được đường cao tương ứng với cạnh còn lại

6 Bài toán người du lịch

Một người khách du lịch muốn đi thăm n thành phố được đánh số từ 1 đến N và quay lại

thành phố đưa phát Mạng lưới giao thông giữa n thành phố này là hai chiều và được cho bởi ma trận A[i,j] trong đó A[i,j]=1 nếu có đường đi từ thành phố i đến thành phố j, A[i,j]=0 trong trường hợp ngược lại

Kết quả đưa ra là chu trình đường đi (chu trình Hamilton)

Trình bày thuật toán và 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 tại lời giải Dữ liệu được đọc từ tệp (file) có dạng như sau :

DULIEU.INP

Dòng 1 ghi số nguyên N (N<=20)

Dòng i+1 (1<=i<=N) ghi n số nguyên không âm (0 hoặc 1)

Các số ghi trên một dòng cách nhau ít nhất một dấu cách

7 Bài toán hệ thống dây diện

Một công ty cần thay toàn bộ hệ thống dây điện cho N phòng làm việc Cho biết sơ đồ mạng lưới điện hiện có của N căn phòng được biểu diễn bằng ma trận A[i,j], trong đó A[i,j] chính là

độ dài của dây điện nối giữa 2 phòng i và j Quy ước A[i,j]=A[j,i], A[i,j]=0 nếu không có (không thể) có dây nối giữa phòng i và j

Dữ liệu được đọc từ tệp (file) có N+1 dòng dạng như sau :

DULIEU.INP

Dòng 1 ghi số nguyên N

Dòng i+1 (1<=i<=N) ghi N số nguyên A[i,1] A[i,2] A[i,N]

Các số ghi trên một dòng cách nhau ít nhất một dấu cách

Trình bày thuật toán và viết chương trình Prolog minh hoạ kết quả cách nối dây điện sao cho

cả N phòng đều có điện, tổng độ dài của dây dẫn cần sử dụng là nhỏ nhất

Trang 5

8 Trò chơi đoán số

Một người chơi nghĩ ra 1 số (giả sử gọi là S) gồm bốn chữ số (không nhất thiết khác nhau) trong sáu chữ số từ 1 đến 6 Để tìm số đó, máy lần lượt đưa ra các số dự đoán (gọi là M), mỗi số gồm 4 chữ số không nhất thiết khác nhau Với mỗi lần dự đoán, máy nhận được 2 câu trả lời của người chơi cho 2 câu hỏi sau :

- Có bao nhiêu chữ số trong M là chữ số trong S nhưng vị trí đưa ra của mỗi chữ số đó sai ?

- Có bao nhiêu chữ số trong M là chữ số trong S, đồng thời vị trí đưa ra của mỗi chữ số đều đúng ?

Ví dụ số cần tìm là 5436

1234

Đúng số - Đúng vị trí : 1

Đúng số - Sai vị trí : 1

2156

Đúng số - Đúng vị trí : 1

Đúng số - Sai vị trí : 1

1416

Đúng số - Đúng vị trí : 2

Đúng số - Sai vị trí : 0

5436

Đúng số - Đúng vị trí : 4

Đúng số - Sai vị trí : 0

Chọn đúng số

Trình bày thuật toán và viết chương trình Prolog minh hoạ kết quả đưa ra các số máy dự đoán và nói mỗi số đó nhận 2 câu trả lời từ bàn phím của người chơi cho đến khi được số đúng như dự kiến (sao cho không quá 6 lần dự đoán)

9 Bài toán Chia quà

Trong ngày sinh nhật, Cục và Cọ nhận được N đồ chơi (N<=40) Trên đồ chơi thứ i có giá tiền là Xi Hai anh em Cục và Cọ quyết định mỗi người phải có trách nhiệm bảo quản một phần

số quà và phân chia sao cho chênh lệch tổng giá trị tiền đồ chơi mà mỗi người phải bảo quản là

ít nhất

Trình bày thuật toán và viết chương trình Prolog giúp Cục và Cọ phân chia trách nhiệm

Dữ liệu đọc từ tệp văn bản (Text File) có dạng :

Dòng 1 : ghi số nguyên dương N

Dòng 2 : Ghi N số nguyên dương tương ứng với giá trị N đồ vật

Trang 6

10 Bài toán Dự thi sản phẩm phần mềm

Trong một lớp học, có một nhóm gồm 10 học sinh có tên lần lượt là A, B, C, D, E ,F , G, H,

I, J Giữa các học sinh đó có mối quan hệ được gọi là quan hệ ảnh hưởng Ví dụ nếu viết AB>C thì có ngĩa là 2 học sinh A và B đồng thời thuyết phục học sinh C tham gia một hoạt động nào

đó Giả sử ban đầu có 4 học sinh E, F, H, I tham gia dự thi sản phẩm phần mềm do trường tổ chức và cũng biết được rằng :

1) ACH>B

3) ABCI>BDI

5) CGI>AJE

6) H>BC

Trình bày thuật toán và viết chương trình Prolog để chứng minh rằng cả 10 bạn trong nhóm trên đều tham gia dự thi sản phẩm phần mềm

Ngày đăng: 26/01/2022, 17:23

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w