Lập trình Scratch

Đề thi HSG Tin 12 Tỉnh Bắc Giang – Năm 2017-2018

Đề thi HSG Tin 12 Tỉnh Bắc Giang – Năm 2017-2018

TỔNG QUAN  VỀ BÀI THI

Phần ICâ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àiTê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 3Dãy con có tổng bằng SCOUNT.*COUNT.INPCOUNT.OUT
Câu 4Số lớn nhấtSTRNUM.*STRNUM.INPSTRNUM.OUT
Phần IIICâu 5Thí 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

SttHo_TenNgay_sinhLopMon_1Hoc_phi_1Mon_2Hoc_phi_2
1Nguyễn Minh Tuấn15/08/200012A1Tin học30000
2Hoàng Văn Sơn01/05/200111A5Cầu lông15000Văn nghệ20000
3Trần Tuấn Minh05/08/200210A8Cắt may20000Nấu ăn20000
4Nguyễn Thị Bình11/12/200012A2Bơi25000
5Nguyễn Thúy Mai18/08/200012A6Nấu ăn20000Tin học30000
  1. 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?
  2. 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.INPCOUNT.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.INPCOUNT.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.INPSTRNUM.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.INPSTRNUM.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ườngMô tảKiểu dữ liệuGhi chú
SttSố 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.

SBDSố báo danhText
HoDemHọ và đệmText
TenTênText
NgSinhNgày sinhDate/Time
GTGiới tínhYes/No
DTDân tộcText

* 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ườngMô tảKiểu dữ liệuGhi chú
SttSố 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.

SBDSố báo danhText
Diem_ToanĐiểm ToánNumber
Diem_VanĐiểm VănNumber
Diem_AnhĐiểm AnhNumber

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

SttSố báo danhHọ đệmTênNgày sinhGiới tínhDân tộc
1012001Nguyễn BìnhDương01/04/2000üKinh
2012002Đỗ HàAnh02/01/2000Tày
3012003Trần AnhĐức21/11/2000üKinh
4012004NguyễnThu14/05/2000Kinh
5012005Nguyễn AnhQuân29/11/2000üKinh

* Dữ liệu của bảng DIEM_THI

SttSố báo danhĐiểm ToánĐiểm VănĐiểm Anh
101200110.009.258.50
20120024.7510.009.00
30120039.255.509.75
40120044.009.0010.00
50120056.505.754.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_

 

Đỗ Thủy

Tôi là Đỗ Thủy đam mê sáng tạo viết Blog hàng ngày là những công việc mà tôi đang làm nó thực sự là những gì tôi yêu thích hãy theo dõi tôi để có những kiến thức bổ ích về xã hội ,cộng đồng và học tập.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button