Đề thi HSG 12, môn Tin học (bảng B), tỉnh Đồng Nai, năm 2016 - 2017
Chấm thử:
- Bài BIENQC: http://coder.chuyenluongthevinh.edu.vn/Problem/Details/5672
- Bài GIANGDEN: http://coder.chuyenluongthevinh.edu.vn/Problem/Details/5673
- Bài QUAYSO: http://coder.chuyenluongthevinh.edu.vn/Problem/Details/5772
Hướng dẫn giải: https://hsgtindongnai.blogspot.com/2017/12/huong-dan-giai-e-thi-hsg-12-mon-tin-hoc.html
---
SỞ GIÁO DỤC VÀ ĐÀO TẠO
ĐỒNG NAI
|
KỲ THI CHỌN HỌC SINH GIỎI LỚP 12
NĂM HỌC 2016-2017
|
ĐỀ THI CHÍNH THỨC
|
Môn: Tin học.
Thời gian làm bài: 150
phút.
(Đề
thi này gồm 04 trang)
|
TỔNG QUAN ĐỀ THI
Phần thi
|
ACCESS
|
PASCAL
|
||
Tên file nộp
|
KYTHIQG.ACCDB
|
BIENQC.PAS
|
GIANGDEN.PAS
|
QUAYSO.PAS
|
Tên file nhập
|
BIENQC.INP
|
GIANGDEN.INP
|
QUAYSO.INP
|
|
Tên file xuất
|
BIENQC.OUT
|
GIANGDEN.OUT
|
QUAYSO.OUT
|
|
Điểm
|
8
|
4
|
4
|
4
|
Lưu ý thí sinh: Toàn
bộ bài làm thí sinh lưu trong thư mục Số báo danh trên ổ đĩa do giám thị quy định.
Không tạo thêm thư mục con trong thư mục Số báo danh. Lưu các file bài làm theo
yêu cầu như trên.
PHẦN 1. QUẢN LÝ CƠ
SỞ DỮ LIỆU ACCESS (8 điểm) Thí sinh sử dụng phần mềm Microsoft Access tạo cơ sở dữ
liệu lưu với tên KYTHIQG.ACCDB.
A.
Tạo bảng (Table) (2,0đ)
1. Tạo cấu trúc các bảng như sau, các field
được gạch chân và in đậm là
khóa chính của bảng:
tblCum
– bảng Cụm thi
|
tblTruongTHPT – bảng Trường THPT
|
|||||
Field Name
|
Data Type
|
Field Size
|
Field Name
|
Data Type
|
Field Size
|
|
MaCum
|
Text
|
2
|
MaTruong
|
Text
|
5
|
|
TenCum
|
Text
|
20
|
TenTruong
|
Text
|
40
|
|
DiaChi
|
Text
|
100
|
||||
tblThiSinh
– bảng Thí sinh
|
MaCum
|
Text
|
2
|
|||
Field Name
|
Data Type
|
Field Size
|
||||
MaTS
|
Text
|
8
|
||||
HoTen
|
Text
|
50
|
tblKetQuaThi – bảng Kết quả thi
|
|||
NgaySinh
|
Date/Time
|
Field Name
|
Data Type
|
Field Size
|
||
GioiTinh
|
Yes/No
|
Yes:Nam; No: Nữ
|
MaTS
|
Text
|
8
|
|
MaTruong
|
Text
|
5
|
Toan
|
Number
|
Single
|
|
DTB12
|
Number
|
Single
|
Van
|
Number
|
Single
|
|
UuTien
|
Number
|
Single
|
NN
|
Number
|
Single
|
|
KK
|
Number
|
Single
|
KHTN
|
Number
|
Single
|
|
TuChon
|
Text
|
4
|
KHXH
|
Number
|
Single
|
2. Thiết lập liên kết giữa các bảng như sau:
3. Nhập dữ liệu mẫu như sau:
B. Tạo mẫu hỏi (Query) (2,0đ)
1. Tạo query qryXetTN
bao gồm các thông tin sau: MaTS, DTB12, UuTien, KK, Toan, Van, NN, DiemTuChon,
DemXetTN, KetQua. Trong đó:
·
DiemTuChon
là điểm của bài thi tự chọn (KHTN hoặc KHXH);
·
.
Gợi ý: dùng hàm Nz để xử lý trường hợp bài thi không có điểm (vắng thi). Hàm Nz(n) trả về 0 nếu n rỗng, ngược lại thì trả về giá trị của n. Yêu cầu DiemXetTN được làm tròn đến 02 chữ số thập phân.
Gợi ý: dùng hàm Nz để xử lý trường hợp bài thi không có điểm (vắng thi). Hàm Nz(n) trả về 0 nếu n rỗng, ngược lại thì trả về giá trị của n. Yêu cầu DiemXetTN được làm tròn đến 02 chữ số thập phân.
·
KetQua:
“Đạt” nếu DiemXetTN từ 5,0 trở lên và tất cả 4 bài thi đều đạt trên 1,0 điểm mỗi
bài, ngược lại thì “Hỏng”.
2. Tạo query qryThongKe
cho biết số lượng thí sinh dự thi, số lượng đạt và tỷ lệ đạt tốt nghiệp theo từng
trường, thông tin gồm: MaTruong, TenTruong, SoTSDuThi, SoTSDat, TyLeDat. Yêu cầu
TyLeDat được định dạng % lấy 02 chữ số thập phân.
C. Thiết kế biểu mẫu (Form) (2,0đ)
Tạo
biểu mẫu frmNhapTS có dạng như sau. Lưu
ý: các field Cụm, Giới tính và Tự chọn là các ComboBox.
D. Thiết kế báo cáo (Report) (2,0đ)
Thiết kế báo cáo rptDanhSachTS có dạng như sau:
… tiếp tục cho những trường khác; … tiếp tục
cho những cụm thi khác
PHẦN
2. LẬP TRÌNH PASCAL (12 điểm) Thí sinh làm bài trên máy tính bằng phần
mềm Free Pascal, lập trình giải các bài
toán sau:
Bài 1. (4 điểm) Biển quảng cáo BIENQC
Để tiết kiệm điện, một biển quảng cáo sử dụng
đèn NEON hoạt động theo nguyên tắc sau: bật sáng trong t1 giây, sau
đó tắt trong t2 giây, rồi lại sáng trong t1 giây, sau đó
tắt trong t2 giây, … Biển quảng cáo được bật lúc 18 giờ và tắt lúc 6
giờ sáng. Khi được bật, biển quảng cáo bắt đầu chu kỳ sáng trước, rồi đến chu kỳ
tắt, … Yêu cầu: Hãy xác định tại thời
điểm h giờ m phút s giây biển quảng
cáo ở trạng thái nào?
Dữ liệu vào:
Cho trong tệp văn bản BIENQC.INP ghi năm số nguyên t1, t2,
h, m, s (0≤t1,t2≤100;
0≤h≤23; 0≤m,s≤59), giữa hai số cách nhau một khoảng trắng.
Kết quả:
Xuất ra tệp văn bản BIENQC.OUT trạng thái của biển quảng cáo, ghi S nếu biển quảng
cáo ở trạng thái bật sáng và ghi T nếu ở trạng thái tắt.
Ví dụ:
|
BIENQC.INP
|
BIENQC.OUT
|
Giải thích: chu kỳ sáng là 10 giây, chu kỳ tắt là 15
giây, tại thời điểm 18 giờ 0 phút 9 giây biển quảng cáo ở trạng thái bật
sáng.
|
10 15 18 0 9
|
S
|
Bài
2. (4 điểm) Giăng dây đèn GIANGDEN
Nhân dịp mùa Noel, Tèo có sẵn m mét dây đèn
LED đầy màu sắc và muốn sử dụng nó để trang trí dọc theo con đường ở phía bên
dãy nhà của mình. Tèo muốn dây đèn được giăng ngang qua nhiều căn nhà nhất có
thể. Dây đèn của Tèo là một sợi dây dài liên tục và Tèo không muốn ngắt ra
thành nhiều sợi nhỏ. Phía bên dãy nhà của Tèo có n căn nhà và chiều ngang của từng
căn nhà thì không giống nhau.
Yêu cầu: Hãy giúp Tèo xác định xem dây đèn
có thể giăng qua tối đa bao nhiêu căn nhà?
Dữ liệu vào: Ghi trong tệp văn bản
GIANGDEN.INP gồm hai dòng:
- Dòng đầu tiên ghi hai số nguyên
dương m và n là số mét dây đèn của Tèo (0<m≤106) và số căn nhà
bên phía dãy nhà của Tèo (0<n≤106);
- Dòng thứ hai ghi n số nguyên
dương a1, a2, …, an là kích thước theo chiều
ngang của từng căn nhà (0<ai≤1000; 1≤i≤n).
Kết quả: Xuất ra tệp GIANGDEN.OUT số lượng
tối đa căn nhà có dây đèn giăng qua.
Ví dụ:
|
GIANGDEN.INP
|
GIANGDEN.OUT
|
Giải thích: Tèo có 15 mét dây đèn và dãy bên
nhà Tèo có 6 căn nhà. Tối đa có 3 căn nhà được giăng dây đèn là căn nhà thứ
3, 4 và 5 vì tổng chiều ngang của 3 căn nhà này là 6+4+4=14 mét.
|
15 6
5 7 6 4 4 8
|
3
|
Bài
3. (4 điểm) Trò chơi quay số ngẫu nhiên QUAYSO
Nhân kỷ niệm ngày thành lập Đoàn 26/3, đoàn
trường THPT Nguyễn Tất Thành tổ chức một trò chơi nhỏ mang tên “Trò chơi quay số ngẫu nhiên”. Quy tắc của
trò chơi như sau:
·
Có
n người chơi đứng thành vòng tròn xếp theo thứ tự từ 1 đến n theo chiều kim đồng
hồ.
·
Ở
lượt chơi thứ nhất, người điều khiển trò chơi sẽ đọc ngẫu nhiên một số m1
rồi bắt đầu đếm từ người có số thứ tự 1 cho đến người có số thứ tự m1
và loại người thứ m1 này ra khỏi cuộc chơi. Khi đó trên vòng tròn sẽ
còn lại n-1 người chơi.
·
Ở
lượt chơi thứ hai, người điều khiển trò chơi lại đọc ngẫu nhiên một số m2
rồi bắt đầu đếm từ người đứng kế tiếp với người vừa rời khỏi cuộc chơi cho đến khi
đếm đến số m2 và loại người thứ m2 ra khỏi cuộc chơi. Trên
vòng tròn sẽ còn lại n-2 người chơi.
·
Cứ
tiếp tục như vậy cho đến khi trên vòng tròn chỉ còn lại một người chơi thì người
đó là người chiến thắng.
·
Lưu
ý: khi số người còn lại trên vòng tròn nhỏ hơn số ngẫu nhiên của người dẫn
chương trình thì quy tắc đếm là xoay vòng cho đến khi đếm đủ số, nghĩa là một
người chơi có thể được đếm qua nhiều lần.”
Yêu cầu: Hãy xác định xem ai là người chiến
thắng trong trò chơi.
Dữ liệu vào: Cho trong tệp văn bản QUAYSO.INP
gồm hai dòng:
- Dòng đầu tiên ghi một số nguyên
dương n (2 £ n £ 106) là số người tham
gia trò chơi;
- Dòng thứ hai ghi n-1 số: m1,
m2, … mn-1 (giữa hai số cách nhau một khoảng trắng) là các
số ngẫu nhiên của người điều khiển chương trình (1≤mi≤106;
1≤i≤n-1).
Kết quả: Xuất
ra tệp văn bản QUAYSO.OUT số thứ tự của người chiến thắng trong trò chơi.
Ví dụ:
|
QUAYSO.INP
|
QUAYSO.OUT
|
Giải thích: có 5 người chơi và các số ngẫu
nhiên lần lượt là 3, 1, 2, 3. Người chiến thắng là người có số thứ tự 5.
|
5
3 1 2 3
|
5
|
---- HẾT ----
(giám thị coi thi không giải
thích gì thêm)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.