Tải bản đầy đủ (.pdf) (3 trang)

De HSG lop 9 2005 2006 tin học nam dinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (571.25 KB, 3 trang )

SỞ GIÁO DỤC – ĐÀO TẠO
NAM ĐỊNH

ĐỀ THI CHỌN HỌC SINH GIỎI NĂM HỌC 2005-2006
Môn: TIN HỌC Lớp 9

ĐỀ CHÍNH THỨC

Thời gian làm bài: 150 phút (không kể thời gian giao đề)

Lập chương trình giải các bài toán sau
Bài 1. Phân tích số
Cho số nguyên dương N (1< N  32767). Hãy tìm tất cả các bộ 3 số
nguyên dương I, J, K sao cho I  J  K và I2 + J2 + K2 = N.
Input: Dữ liệu vào cho trong file văn bản có tên PHANTICH.IN bao gồm một số
tự nhiên N duy nhất.
Output: Kết quả đưa ra file PHANTICH.OUT. Nếu có thể phân tích được thì
mỗi dòng của file này (trừ dòng cuối cùng) chứa 3 số I, J, K ứng với một cách
phân tích, hai số liên tiếp cách nhau bằng các dấu cách. Dòng cuối cùng có duy
nhất một số là số cách phân tích đã tìm được (bằng 0 nếu không phân tích được).
Ví dụ về file input và output:
PHANTICH.IN
PHANTICH.OUT
170
1 5 12
5 8 9
2
Bài 2. Rừng cây
Để nghiên cứu một loại gỗ quý trong một khu rừng, người ta đã khảo sát
và ghi lại số liệu về các cây thuộc loại này. Số liệu ghi lại bao gồm đường kính
gốc cây D và chiều cao H (tính bằng cm). Căn cứ các số liệu đã ghi chép, hãy cho


biết đường kính gốc lớn nhất, chiều cao lớn nhất, đường kính trung bình và chiều
cao trung bình của các cây được khảo sát.
Input: Dữ liệu vào cho trong file văn bản RUNGCAY.IN. Dòng đầu tiên của file
có số tự nhiên N là số cây được nghiên cứu. Tiếp theo là N dòng, mỗi dòng chứa
số liệu về một cây và bao gồm 2 số theo thứ tự là đường kính gốc và chiều cao
của cây. Hai số liên tiếp trên một dòng cách nhau bằng các dấu cách. Tất cả các
số trong file này đều không vượt quá 10000.
Output: Kết quả đưa ra file văn bản có tên RUNGCAY.OUT. File này gồm 1
dòng duy nhất có chứa 4 số theo thứ tự là: đường kính gốc lớn nhất, chiều cao
lớn nhất, đường kính trung bình và chiều cao trung bình của các cây. 2 số cuối là
các số thực với 2 chữ số sau dấu chấm thập phân, 2 số đầu là các số nguyên. Hai
số liên tiếp trên một dòng cách nhau bằng các dấu cách.
Ví dụ về file input và output:
Đề bài này có 2 trang

Trang 1


RUNGCAY.IN
RUNGCAY.OUT
3
40 600 30.00 500.00
30 600
20 400
40 500
Bài 3. Dãy biến động nhẹ
Dãy biến động nhẹ là dãy số trong đó 2 phần tử liên tiếp a và b chênh lệch
nhau không quá 5 đơn vị (|b – a|  5).
Cho một dãy số tự nhiên. Hãy xóa khỏi dãy đã cho một số phần tử và giữ
nguyên thứ tự các phần tử còn lại để được một dãy biến động nhẹ có tổng tất cả

các phần tử lớn nhất.
Input: Dữ liệu vào cho trong file văn bản DAYCON.IN. Dòng đầu tiên của file
có số tự nhiên N cho biết số phần tử của dãy số ban đầu với N  10000. N dòng
tiếp theo mỗi dòng chứa 1 số tự nhiên của dãy ban đầu theo đúng thứ tự, mỗi số
của dãy không lớn hơn 100.
Output: Kết quả đưa ra file văn bản có tên DAYCON.OUT. File này chứa một
số duy nhất là tổng lớn nhất tìm được.
Ví dụ về file input và output: (trong ví dụ này xóa các phần tử thứ 3, 5, 6, 8)
DAYCON.IN
DAYCON.OUT
9
32
3
8
2
3
1
2
8
3
10
Chú ý: File chương trình của bài 1 đặt tên là PHANTICH.PAS, của bài 2 đặt tên
là RUNGCAY.PAS, của bài 3 đặt tên là DAYSO.PAS.

Đề bài này có 2 trang

Trang 2


SỞ GIÁO DỤC – ĐÀO TẠO

NAM ĐỊNH
--------

ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM
ĐỀ THI CHỌN HỌC SINH GIỎI
Năm học 2005-2006
Môn : TIN HỌC
Lớp 9

Bài 1: 6 điểm
Giải thuật: Duyệt với I từ 1 đến TRUNC(SQRT(N DIV 3)), J từ 1 đến TRUNC(SQRT((N
– I*I) DIV 2)). Kiểm tra xem SQRT(N – I*I – J*J) có phải là số nguyên hay không.
Hàm TRUNC có thể được thay thế bằng ROUND hoặc tổ hợp của các hàm khác, tuy
nhiên sẽ không tốt bằng và kể cả khi kết quả đúng vẫn được đánh giá với điểm thấp hơn 0,25.
Phạm vi của các biến đều lấy trong kiểu Integer.
Bài 2: 6 điểm
Bài toán này khá đơn giản, cần chú ý 2 vấn đề:
- Không cần ghi lại các đường kính gốc và chiều cao của cây vào mảng.
- Các biến giữ tổng các đường kính gốc và tổng các chiều cao phải có kiểu Real hoặc
Longint để không bị tràn số.
Bài 3: 8 điểm
Giải thuật: Sử dụng phương pháp quy hoạch động.
- Hàm mục tiêu f(i)=tổng các phần tử của dãy biến động nhẹ kết thúc tại phần tử thứ i.
- Cách tính f(i):
o f(1) = A[1]
o Với i>1: f(i) = max{f(j) / j- Tìm f(i) lớn nhất: có thể thực hiện ngay trong quá trình tính bảng f(i) hoặc tìm sau khi
đã tính xong bảng f(i).
Chú ý: Các phần tử của bảng A thuộc kiểu Byte hoặc Shortint. Các giá trị của (bảng) f
thuộc kiểu Longint hoặc Real. Chọn kiểu Longint được đánh giá cao hơn chọn kiểu Real.

Dữ liệu vào và ra để kiểm tra chương trình: các file trên đĩa mềm kèm theo chương trình mẫu.