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.. 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
Trang 1Đề bài này có 2 trang Trang 1
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 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:
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:
ĐỀ CHÍNH THỨC
Trang 2Đề bài này có 2 trang Trang 2
3
30 600
20 400
40 500
40 600 30.00 500.00
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)
9
3
8
2
3
1
2
8
3
10
32
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
Trang 3SỞ GIÁO DỤC – ĐÀO TẠO ĐÁP ÁN VÀ HƯỚNG DẪN CHẤM
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<i và |A[i] - A[j]| 5} + A[i]
- 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