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

Đề thi môn kỹ thuật lập trình

3 709 5

Đ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 3
Dung lượng 65,5 KB

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

Nội dung

Câu 1: 8 điểm A học ngành Chăn nuôi Trồng trọt trồng được một vườn táo gồm N hàng, mỗi hàng có N cây táo.. A bèn dẫn B đi thăm vườn táo và đặt ra một bài toán như sau: - B được quyền chọ

Trang 1

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA: CÔNG NGHỆ THÔNG TIN

BỘ MÔN: TIN HỌC CƠ SỞ

Đề thi môn: Kỹ thuật lập trình

Mã môn học: PRTE240385

Học kỳ 1 năm học 2014-2015

Đề số 01 Đề thi có 2 trang.

Thời lượng: 80 phút

Được phép sử dụng tài liệu giấy.

Câu 1: (8 điểm)

A (học ngành Chăn nuôi Trồng trọt) trồng được một vườn táo gồm N hàng, mỗi hàng có N cây táo Mỗi cây có một số lượng quả khác nhau được minh họa như hình bên dưới (N=5) Một hôm có cậu bạn thân B (vốn đang theo học ngành Công nghệ Thông tin) về chơi A bèn dẫn B đi thăm vườn táo và đặt ra một bài toán như sau:

- B được quyền chọn một cây táo bất kỳ ở hàng đầu tiên cạnh lối vào làm điểm xuất phát Khi đến cây táo nào thì được quyền hái toàn bộ số táo có trên cây đó

- Mỗi hàng táo chỉ được phép chọn 1 cây Khi sang hàng tiếp theo thì chỉ được chọn 1 trong 3 cây gần với cây đang đứng nhất Trường hợp đã ra đến bìa vườn (bìa trên hoặc bìa dưới) thì chỉ còn lại 2 khả năng để đi tiếp

- B phải đi hái làm sao để khi ra khỏi vườn, tổng số táo thu được là NHIỀU NHẤT.

Yêu cầu:

Sử dụng ngôn ngữ lập trình C/C++ để viết chương trình thực hiện các công việc sau:

a) (2đ) Cho tập tin văn bản đầu vào có tên là INPUT.TXT lưu nội dung của một

ma trận vuông cấp N với cấu trúc như sau:

- Dòng đầu của tập tin lưu trữ 1 số nguyên dương N (0<N20), quy định cấp của ma trận

- Từ dòng thứ 2 trở đi mỗi dòng lưu N số nguyên không âm, là giá trị từng dòng của ma trận

Trang 2

Viết hàm mở và đọc dữ liệu từ tập tin INPUT.TXT trên, lưu vào biến N và ma trận vuông A cấp N

b) (3đ) Đề xuất và cài đặt một giải thuật theo phương pháp tham lam (Greedy)

để giúp B giải nhanh bài toán trên với kết quả tương đối tốt (có thể chưa phải

là tốt nhất) Ví dụ như hình dưới, các ô in đậm là đường đi, tổng số táo thu được là 8+4+4+2+6 = 24 quả

8 4 3 2 5

Khai báo hàm gợi ý như sau:

int thamlam(int A[][20], int N, int path[]);

Hàm trả về tổng số táo hái được; mảng path[] lưu các vị trí đi qua

c) (3đ) Cài đặt (các) hàm sử dụng phương pháp quay lui và vét cạn để xét tất cả

các đường đi có thể có nhằm giúp A tìm ra lời giải tối ưu cho bài toán (số táo thu được là nhiều nhất) VD như hình dưới, tổng số táo thu được là 31 quả

4 6 7 8 2

Khai báo hàm gợi ý như sau:

int vetcan(int A[][20], int N, int path[]);

Hàm trả về tổng số táo hái được nhiều nhất; mảng path[] lưu các vị trí đi qua

Câu 2: (2 điểm)

Hãy áp dụng phương pháp quy hoạch động để viết hàm tìm giá trị phần tử thứ n

trong dãy số Fibonacci sao cho hàm có độ phức tạp tính toán là O(n) Dãy số được

xây dựng theo quy tắc như sau:

- 2 phần tử đầu tiên của dãy có giá trị bằng 1;

- Từ phần tử thứ 3 trở đi, giá trị của nó bằng tổng giá trị của 2 phần tử liền

kề trước nó

VD: 10 phần tử đầu của dãy là 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,…

Ghi chú: CBCT không giải thích đề thi

Trang 3

TP HCM, ngày…… tháng …… năm 2015

Trưởng bộ môn

Ngày đăng: 04/04/2018, 09:26

TỪ KHÓA LIÊN QUAN

w