TỔNG QUAN VỀ BÀI THI
| Phần I | Câu 1 Câu 2 | Thí sinh làm bài trên giấy thi | |||
| Phần II | Thí sinh lập trình trên máy vi tính | ||||
| Tên bài | Tên tệp chương trình | Tên tệp dữ liệu vào | Tên tệp kết quả | ||
| Câu 3 | Dãy con có tổng bằng S | COUNT.* | COUNT.INP | COUNT.OUT | |
| Câu 4 | Số lớn nhất | STRNUM.* | STRNUM.INP | STRNUM.OUT | |
| Phần III | Câu 5 | Thí sinh sử dụng Access tạo CSDL QUANLYTHI | |||
Chú ý: Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình được sử dụng tương ứng là Pascal hoặc C++
Phần I (5 điểm)
Câu 1 (3 điểm). Sử dụng phương pháp liệt kê dãy các thao tác hoặc vẽ sơ đồ khối để diễn tả thuật toán giải bài toán sau?
Cho số nguyên dương (với ). Số nguyên dương x gọi là ước số của khi và chỉ khi chia hết cho x.
Yêu cầu: Tính tổng các ước số nguyên dương của .
Ví dụ: Cho thì kết quả là 28 (Vì 12 có các ước số nguyên dương là 1, 2, 3, 4, 6, 12).
Câu 2 (2 điểm). Bài tập CSDL
Nhà trường cần quản lý các lớp ngoại khóa bao gồm các môn: Tin học, Cầu lông, Cắt may, Bơi, Nấu ăn. Mỗi học sinh có thể tham gia nhiều nhất là hai môn ngoại khóa và phải đóng học phí. Cán bộ văn phòng dùng Access để quản lý việc tham gia lớp ngoại khóa của học sinh có dạng bảng như sau:
Bảng NGOAI_KHOA
| Stt | Ho_Ten | Ngay_sinh | Lop | Mon_1 | Hoc_phi_1 | Mon_2 | Hoc_phi_2 |
| 1 | Nguyễn Minh Tuấn | 15/08/2000 | 12A1 | Tin học | 30000 | ||
| 2 | Hoàng Văn Sơn | 01/05/2001 | 11A5 | Cầu lông | 15000 | Văn nghệ | 20000 |
| 3 | Trần Tuấn Minh | 05/08/2002 | 10A8 | Cắt may | 20000 | Nấu ăn | 20000 |
| 4 | Nguyễn Thị Bình | 11/12/2000 | 12A2 | Bơi | 25000 | ||
| 5 | Nguyễn Thúy Mai | 18/08/2000 | 12A6 | Nấu ăn | 20000 | Tin học | 30000 |
- Với cấu trúc bảng dữ liệu trên em hãy lựa chọn kiểu dữ liệu phù hợp cho mỗi trường và lựa chọn trường làm trường khóa chính cho bảng trên?
- Với cấu trúc bảng như trên chưa hợp lý vì không tiết kiệm bộ nhớ, dữ liệu không nhất quán (do có thể gõ nhầm tên môn, học phí, … ). Em hãy đề xuất cấu trúc hợp lí cho cơ sở dữ liệu trên?
Phần II (9 điểm)
Câu 3 (5 điểm). Dãy con có tổng bằng S
Cho dãy số có phần tử nguyên (với ) và một số nguyên dương .
Một dãy con liên tiếp của dãy số a có dạng . Số phần tử của dãy con liên tiếp bằng ; Tổng các phần tử của dãy con liên tiếp bằng ;
Yêu cầu: Đếm số lượng dãy con liên tiếp của dãy có số phần tử lớn hơn và có tổng các phần tử bằng ?
Dữ liệu: Đọc vào từ tệp văn bản COUNT.INP có cấu trúc như sau:
+ Dòng đầu tiên chứa 2 số nguyên và
+ Dòng thứ 2 ghi phần tử của dãy số ;
Các số trên cùng dòng cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra tệp văn bản COUNT.OUT một số nguyên duy nhất là kết quả tìm được.
Ví dụ 1:
| COUNT.INP | COUNT.OUT |
| 9 10 2 2 3 3 1 2 1 4 3 | 3 |
Giải thích: Với dãy số nguyên và , có 3 dãy con liên tiếp có số phần tử lớn hơn 3 và tổng các phần tử bằng 10 là:
Ví dụ 2:
| COUNT.INP | COUNT.OUT |
| 8 3 1 1 0 -2 2 0 -3 4 | 2 |
Giải thích: Với dãy số nguyên và , có 2 dãy con liên tiếp có số phần tử lớn hơn 3 và tổng các phần tử bằng 3 là:
Giới hạn:
+ Có 12/25 Test có tương ứng đạt 2,4 điểm.
+ Có 20/25 Test có tương ứng đạt 4 điểm.
+ Có 25/25 Test có tương ứng đạt 5 điểm.
Câu 4 (4 điểm). Số lớn nhất
Trong khoa học tính toán, các kỹ sư lập trình thường sử dụng chuỗi ký tự để biểu diễn số nguyên lớn. Mặt khác, các ngôn ngữ lập trình bậc cao luôn có sẵn các hàm và thủ tục chuẩn để xử lý các xâu ký tự. Đặc biệt với các số nguyên có tới hàng nghìn chữ số, các kỹ sư có thể dùng mảng các ký tự để biểu diễn chúng. Tuy nhiên, các thao tác xử lý từng phần tử trong mảng sẽ phức tạp hơn. Kỹ sư lập trình IBM thử thách các bạn học sinh giỏi Tin học bằng bài toán sau:
“Cho một số nguyên lớn có chữ số và một số nguyên dương . Hãy tìm cách xoá đi chữ số của số nguyên lớn để các chữ số còn lại của và giữ nguyên thứ tự ban đầu tạo thành số lớn nhất?”
Dữ liệu: Đọc vào từ tệp văn bản STRNUM.INP có cấu trúc như sau:
+ Dòng đầu tiên chứa 2 số nguyên và
+ Dòng thứ 2 ghi chữ số của số nguyên ;
Kết quả: Ghi ra tệp văn bản STRNUM.OUT là số lớn nhất sau khi đã xoá chữ số.
Ví dụ 1:
| STRNUM.INP | STRNUM.OUT |
| 4 2 1924 | 94 |
Giải thích: Với xâu số x= ‘1924’ thì khi xóa 2 kí tự x[1] = ‘1’ và x[3] = ‘2’ thì các chữ số còn lại của x bằng ‘94’ là lớn nhất.
Ví dụ 2:
| STRNUM.INP | STRNUM.OUT |
| 12 3 743019601036 | 749601036 |
Giải thích: Với xâu số x= ‘743019601036’ thì khi xóa lần lượt 3 kí tự x[4] = ‘0’; x[5] = ‘1’; x[3] = ‘3’ thì các chữ số còn lại của x bằng ‘749601036’ là lớn nhất.
Giới hạn:
+ Có 18/24 Test có tương ứng đạt 3 điểm.
+ Có 24/24 Test có tương ứng đạt 4 điểm.
Phần III (6 điểm)
Câu 5 (6 điểm). Thí sinh sử dụng phần mềm Access để tạo CSDL QUANLYTHI
Dữ liệu trong CSDL QUANLYTHI được lưu trữ bởi 3 bảng có các thông tin sau:
* Bảng THI_SINH lưu trữ thông tin của các thí sinh dự thi. Mỗi thí sinh dự thi có một số báo danh duy nhất để phân biệt với các thí sinh khác.
| Tên trường | Mô tả | Kiểu dữ liệu | Ghi chú |
| Stt | Số thứ tự | AutoNumber | - Học sinh chọn kích thước trường phù hợp nhất với kích thước dữ liệu mà trường biểu diễn. - Trường khóa chính là trường SBD. |
| SBD | Số báo danh | Text | |
| HoDem | Họ và đệm | Text | |
| Ten | Tên | Text | |
| NgSinh | Ngày sinh | Date/Time | |
| GT | Giới tính | Yes/No | |
| DT | Dân tộc | Text |
* Bảng DIEM_THI lưu trữ điểm thi 3 môn Văn, Toán và Anh của các thí sinh dự thi
| Tên trường | Mô tả | Kiểu dữ liệu | Ghi chú |
| Stt | Số thứ tự | AutoNumber | - Học sinh chọn kích thước trường phù hợp nhất với kích thước dữ liệu mà trường biểu diễn. - Trường khóa chính là trường SBD. - Điểm thi được làm tròn 2 số phần thập phân. |
| SBD | Số báo danh | Text | |
| Diem_Toan | Điểm Toán | Number | |
| Diem_Van | Điểm Văn | Number | |
| Diem_Anh | Điểm Anh | Number |
Yêu cầu:
5.1 (1,5 điểm). Xác định và khai báo cấu trúc của bảng THI_SINH và bảng DIEM_THI, chỉ định khóa chính cho các bảng, đặt tên bảng, lưu cấu trúc bảng, tạo liên kết giữa các bảng.
5.2 (1 điểm). Tạo các biểu mẫu để nhập dữ liệu cho các bảng theo mẫu sau:

+ Biểu mẫu NHAP DS HOC SINH để nhập dữ liệu cho bảng THI_SINH;
+ Biểu mẫu NHAP DIEM để nhập dữ liệu cho bảng DIEM_THI
5.3 (1 điểm). Sử dụng biểu mẫu tạo ra ở mục 5.2 để nhập dữ liệu vào CSDL QUANLYTHI theo thông tin được cho dưới đây:
* Dữ liệu của bảng THI_SINH
| Stt | Số báo danh | Họ đệm | Tên | Ngày sinh | Giới tính | Dân tộc |
| 1 | 012001 | Nguyễn Bình | Dương | 01/04/2000 | ü | Kinh |
| 2 | 012002 | Đỗ Hà | Anh | 02/01/2000 | Tày | |
| 3 | 012003 | Trần Anh | Đức | 21/11/2000 | ü | Kinh |
| 4 | 012004 | NguyễnThu | Hà | 14/05/2000 | Kinh | |
| 5 | 012005 | Nguyễn Anh | Quân | 29/11/2000 | ü | Kinh |
* Dữ liệu của bảng DIEM_THI
| Stt | Số báo danh | Điểm Toán | Điểm Văn | Điểm Anh |
| 1 | 012001 | 10.00 | 9.25 | 8.50 |
| 2 | 012002 | 4.75 | 10.00 | 9.00 |
| 3 | 012003 | 9.25 | 5.50 | 9.75 |
| 4 | 012004 | 4.00 | 9.00 | 10.00 |
| 5 | 012005 | 6.50 | 5.75 | 4.75 |
5.4 (2,5 điểm). Thực hiện các thao tác sau:
+ Sắp xếp học sinh tăng dần theo Tên;
+ Tạo mẫu hỏi DIEM_10 để lọc ra danh sách học sinh có Điểm Toán hoặc Điểm Văn hoặc Điểm Anh bằng 10;

+ Tạo mẫu hỏi KET_QUA đưa ra danh sách học sinh với Tổng điểm = (Điểm Toán + Điểm Văn)*2 + Điểm Anh và sắp xếp giảm dần theo Tổng điểm;

+ Tạo mẫu hỏi DAN_TOC đưa ra danh sách học sinh là người dân tộc thiểu số;

+ Tạo báo cáo TRUNG_TUYEN đưa ra danh sách học sinh trúng tuyển, danh sách được sắp xếp giảm dần theo Tổng điểm. Học sinh trúng tuyển là học sinh có Tổng điểm từ 36.5 trở lên.

_ HẾT_
0 Comments