ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 12 THPT NĂM HỌC 2011-2012 MÔN TIN HỌC - SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NAM
SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NAM KỲ THI CHỌN HỌC SINH GIỎI LỚP 12 THPT NĂM HỌC 2011 - 2012 Môn: TIN HỌC ĐỀ CHÍNH THỨC Thời gian: 180 phút (không kể thời gian giao đề) (Đề thi có 4 trang, gồm 3 bài) BÀI 1: (7,0 điểm). Để quản lí việc cho thuê phòng nghỉ của một khách sạn, người ta dùng 4 bảng sau: Bảng TBL_LoaiPhong (thông tin về loại phòng mà khách cần thuê) TT Field Name Data Type Size Description 1 LoaiPhong Text 1 Loại phòng 2 DienGiai Text 50 Diễn giải 3 DonGia Number Long Integer Giá phòng Bảng TBL_DangKy (thông tin về việc đăng ký thuê phòng của khách hàng) TT Field Name Data Type Size Description 1 MaDK Text 5 Mã đăng ký 2 SoPhong Text 3 Số phòng 3 LoaiPhong Text 1 Loại phòng 4 NgayVao Date/Time Short Date Ngày thuê 5 NgayRa Date/Time Short Date Ngày trả Bảng TBL_KhachHang (thông tin chi tiết về khách hàng thuê phòng) TT Field Name Data Type Size Description 1 MaDK Text 5 Mã đăng ký 2 DoiTuongKH Text 1 Đối tượng khách hàng 3 TenKH Text 20 Tên khách hàng 4 GioiTinh Text 5 Giới tính 5 Ngaysinh Date/Time Short Date Ngày sinh (m/d/yyyy) 7 DiaChi Text 50 Địa chỉ của khách 8 DienThoai Text 11 Điện thoại Bảng TBL_DoiTuongKH (thông tin về đối tượng khách hàng thuê phòng) TT Field Name Data Type Size Description 1 DoiTuongKH Text 1 Đối tượng khách hàng 2 DienGiai Text 50 Diễn giải Câu a: Tạo một tệp CSDL có tên QLTHUEPHONG.MDB, thiết kế 4 bảng có tên và cấu trúc như trên, xác định khoá chính trong các bảng, từ đó thiết lập mối quan hệ giữa các bảng trên. Câu b: Nhập dữ liệu cho 4 bảng trên theo các thông tin sau: 1, Nhập dữ liệu bảng TBL_LoaiPhong LoaiPhong DienGiai DonGia A Máy lạnh, nước nóng, tivi, tủ lạnh, điện thoại 350000 B Máy lạnh, nước nóng, điện thoại 300000 Trang 1 / 4 2, Nhập dữ liệu bảng TBL_DoiTuongKH DoituongKH DienGiai 1 Khách vãng lai 2 Khách quen 3 Khách có thẻ bảo hiểm 3, Nhập dữ liệu bảng TBL_DangKy và bảng TBL_KhachHang MaDK SoPhong LoaiPhong NgayVao NgayRa DoiTuongKH TenKH GioiTinh NgaySinh DiaChi DienThoai 001 101 A 2/1/2011 2/15/2011 3 Trần Văn Bình Nam 12/2/1984 Hà Nam 0916113537 002 105 B 4/30/2011 5/25/2011 1 Lương Thị Dung Nữ 5/4/1981 Hải Phòng 003 204 A 1/12/2012 2/3/2012 2 Nguyễn Thị Yến Nữ 3/18/1969 Hà Nội 0989416222 004 303 A 2/20/2012 2/25/2012 2 Phạm Văn Minh Nam 9/7/1975 Hà Nam 005 502 B 5/1/2011 5/11/2011 1 Trần Thị Thảo Nữ 8/21/1989 Hưng Yên 006 407 B 12/12/2011 2/6/2012 3 Nguyễn Văn Ba Nam 5/1/1979 Bắc Ninh 007 505 A 5/8/2009 1/4/2010 2 Phan Thị Yến Nữ 5/25/1973 Hà Nam 008 301 B 2/23/2010 1/1/2011 1 Cao Thu Hà Nữ 12/19/1990 Hà Nội 009 504 B 6/7/2010 9/25/2010 1 Trần Thị Thủy Nữ 3/6/1983 Hà Nam 010 402 B 1/5/2009 7/6/2010 3 Trần Thị Hằng Nữ 5/12/1985 Bắc Giang Câu c: Tạo Query có tên Qry_KhachHang. Mẫu hỏi hiển thị danh sách khách hàng thuê phòng vào các ngày 30/4, 1/5 (tính theo ngày vào) là Nữ khách hàng ở phòng loại B và có độ tuổi lớn hơn hoặc bằng 20. Phải sắp xếp theo thứ tự tăng dần về TenKH (tên khách hàng), gồm các cột: LoaiPhong, SoPhong, TenKH, NgaySinh, GioiTinh, NgayVao. Câu d: Tạo Query có tên Qry_ThanhToan. Mẫu hỏi hiển thị danh sách khách hàng thuê phòng được sắp xếp theo thứ tự tăng dần về SoPhong (số phòng), gồm các cột: MaDK, SoPhong, LoaiPhong, DoiTuongKH, TenKH, NgayVao, NgayRa, SoNgayO (số ngày khách ở), DonGia, ThanhTien (tiền khách phải trả), GiamGia (giảm giá thuê phòng), ThucThu (thực thu của khách sạn). Trong đó: 1, SoNgayO = NgayRa – NgayVao Trang 2 / 4 2, Thành tiền (ThanhTien): Nếu số ngày ở 7: ThanhTien = DonGia x SoNgayO Nếu 7 < số ngày ở 20: ThanhTien = DonGia x SoNgayO x 0.97 (Giảm 3%) Nếu số ngày ở > 20: ThanhTien = DonGia x SoNgayO x 0.95 (Giảm 5%) 3, Giảm giá (GiamGia): Nếu là khách vãng lai: GiamGia = 0 Nếu là khách quen: GiamGia = 5% x ThanhTien Nếu là khách có thẻ bảo hiểm: GiamGia = 7% x ThanhTien 4, ThucThu = ThanhTien - GiamGia Câu e: Hãy tạo Subform có tên Frm_LoaiPhong và trình bày theo mẫu sau: Hãy lập trình giải quyết các bài toán sau đây bằng ngôn ngữ Pascal : BÀI 2 : (7,0 ĐIỂM). TỔNG SỐ TÊN FILE CHƯƠNG TRÌNH TONGSO.PAS Một dãy số được viết lần lượt theo thứ tự như sau: 1 số 1, 2 số 2, 3 số 3, 4 số 4, và 5 số 5, ( 1 , 2 , 2 , 3 , 3 , 3, 4 , 4, 4 , 4 , 5 , 5 , 5 , 5 , 5 , . ) Tổng các số nguyên từ số nguyên thứ 1 đến số nguyên thứ 3 là : 1 + 2 + 2 = 5. Trang 3 / 4 ≤ ≤ Hãy tính tổng các số nguyên trong dãy số trên kể từ số nguyên thứ A trong dãy đến số nguyên thứ B trong dãy. Yêu cầu: * Dữ liệu vào: đọc từ file văn bản : TONGSO.INP Chỉ có 1 dòng ghi 2 số nguyên A và B ( Error: Reference source not found) * Kết quả ghi ở file : TONGSO.OUT Chỉ có một dòng duy nhất ghi giá trị tổng các số trong dãy tính từ số nguyên thứ A đến số nguyên thứ B. Ghi chú: (Các số trên cùng một dòng trong file cách nhau ít nhất bởi một dấu cách trắng) Ví dụ : TONGSO.INP TONGSO.OUT TONGSO.INP TONGSO.OUT TONGSO.INP TONGSO.OUT 1 3 5 3 7 15 50 50 10 BÀI 3 : (6,0 ĐIỂM). SỐ MAY MẮN TÊN FILE CHƯƠNG TRÌNH MAYMAN.PAS Chữ số 4 và chữ số 7 là các chữ số may mắn, còn các chữ số khác là không may mắn. Một số nguyên chỉ chứa các chữ số may mắn 4 và 7 (biểu diễn ở hệ thập phân) gọi là số may mắn. Dãy các số nguyên may mắn sắp theo thứ tự : 4 ; 7 ; 44 ; 47 ;74 ;77; 444 ; . Chúng ta cần tìm số nguyên may mắn thứ K trong dãy số nguyên may mắn trên. Yêu cầu : * Dữ liệu vào : đọc từ file văn bản : MAYMAN.INP Chỉ một dòng duy nhất chứa 1 số nguyên K () * Kết quả ghi : ở file văn bản : MAYMAN.OUT Chỉ một dòng duy nhất chứa 1 số là số nguyên may mắn thứ K. Ví dụ : MAYMAN.INP MAYMAN.OUT MAYMAN.INP MAYMAN.OUT MAYMAN.INP MAYMAN.OUT 1 4 2 7 3 44 ________________________ Họ và tên thí sinh : ………………………………………… Số báo danh: ………………. Chữ kí giám thị 1 : ………………………………………………………………………… Chữ kí giám thị 2 : ………………………………………………………………………… Trang 4 / 4 9 1 K 10≤ ≤ ĐÁP ÁN,HƯỚNG DẪN VÀ BIỂU ĐIỂM CHẤM THI HỌC SINH GIỎI LỚP 12 THPT MÔN TIN HỌC ĐỀ CHÍNH THỨC NĂM 2012 BÀI 1/ (7,0 điểm) Relationships Câu Nội dung Điểm Câu a (2 điểm) + Tạo đúng bảng TBL_LoaiPhong và TBL_DoiTuongKH (tên trường và kiểu dữ liệu) + Tạo đúng bảng TBL_DangKy (tên trường và kiểu dữ liệu) + Tạo đúng bảng TBL_KhachHang (tên trường và kiểu dữ liệu) + Tạo đúng khoá chính cho các bảng (Khóa chính trong bảngTBL_LoaiPhong: LoaiPhong ; TBL_DangKy: MaDK ; TBL_KhachHang: MaDK ; TBL_DoiTuongKH: DoiTuongKH) + Tạo đúng mối quan hệ giữa các bảng (như mô hình trên) TBL_LoaiPhong (1) và TBL_DangKy () TBL_DangKy (1) và TBL_KhachHang (1) TBL_KhachHang () và TBL_DoiTuongKH (1) (Giải thích: một LoaiPhong có nhiều Khách đăng ký (1 - ); một Khách có một MaDK (1 - 1); một loại DoiTuongKH có nhiều Khách (1 – )). 0,25đ 0,25đ 0,25đ 0,5đ 0,25đ 0,25đ 0,25đ Câu b (0,25điểm) + Nhập đúng dữ liệu cho các bảng theo đúng thông tin mẫu. 0,25đ Câu c (1,5điểm) + Tạo được Qr_KhachHang đầy đủ các cột và sắp xếp tăng dần theo Tên khách hàng + Xác định được Khách thuê phòng vào các ngày 30/4, 1/5 (Day([NgayVao])= 30 and Month([NgayVao])=4) or (Day([NgayVao])= 1 and Month([NgayVao])=5) + Xác định được Khách hàng là Nữ và ở phòng loại B + Xác định được độ tuổi >=20 (Year(Date())-Year([NgaySinh])>=20) 0,25đ 0,5đ 0,5đ 0,25đ Câu d (1,75điểm) + Tạo được Qr_ThanhToan đầy đủ các cột và sắp xếp tăng dần theo số Phòng + Xác định đúng SoNgayO (Số ngày ở của khách) (SoNgayO = NgayRa – NgayVao) + Xác định đúng ThanhTien (Thành tiền) IIf([SoNgayO]<=7,[DonGia]*[SoNgayO],IIf(([SoNgayO]>7)And ([SoNgayO]<=20),[DonGia]*[SoNgayO]*0.97, IIf([SoNgayO]>20,[DonGia]*[SoNgayO]*0.95))) 0,25đ 0,25đ 0,5đ Trang 5 / 4 ∞ ∞ ∞ ∞ + Xác định được GiamGia (Giảm giá phòng trọ) IIf([TBL_KhachHang]![DoiTuongKH]="3",0.07*[ThanhTien], IIf([TBL_KhachHang]![DoiTuongKH]="2",0.05*[ThanhTien],0)) + Xác định ThucThu (thực thu của khách sạn) ([ThanhTien]-[GiamGia]) 0,5đ 0,25đ Câu e (1,5điểm) + Tạo được và đủ nội dung Form có tên Frm_LoaiPhong. + Tạo được liên kết SubForm đúng + Tạo Form đúng mẫu, đúng kết quả ở cột: SoNgayO, ThanhTien và đẹp 0,5đ 0,25đ 0,75đ Các bài lập trình trên ngôn ngữ pascal đều chấm thông qua các test BÀI 2/ (7,0 điểm) Bài chia ra 10 TEST mỗi TEST : 0,7 Điểm. BÀI 3/ (6,0 điểm) Bài chia ra 10 TEST mỗi TEST : 0,6 Điểm. ------------- H TẾ ------------- Trang 6 / 4 . MAYMAN.OUT Chỉ m t dòng duy nhất chứa 1 số là số nguyên may m n thứ K. Ví dụ : MAYMAN.INP MAYMAN.OUT MAYMAN.INP MAYMAN.OUT MAYMAN.INP MAYMAN.OUT 1 4 2 7. CHƯƠNG TRÌNH MAYMAN.PAS Chữ số 4 và chữ số 7 là các chữ số may m n, còn các chữ số khác là không may m n. M t số nguyên chỉ chứa các chữ số may m n 4 và 7