Tải bản đầy đủ (.doc) (4 trang)

đề thi HSG tỉnh Nam Định-tin học lớp 9

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 (139.66 KB, 4 trang )

S GIO DC O TO
NAM NH
THI CHN HC SINH GII LP 9 THCS
Nm hc 2006-2007
Mụn: TIN HC
Thi gian lm bi: 150 phỳt
(khụng k thi gian giao )
Đề thi gồm 02 trang
Họ tên thí sinh: . . . . . . . . . . . . . . . . . . . Chữ ký của giám thị 1: . . . . . . . . . .
Số báo danh: . . . . . . . . . . . . . . . . . . . . . Chữ ký của giám thị 2: . . . . . . . . . .
Lập chơng trình giải các bài toán sau:
Bài 1: Biểu diễn số (7 im)
Dãy số Fibonaci F
1
, F
2
, .., F
n
, .. đợc định nghĩa qui nạp nh sau:
F
1
= F
2
= 1;
F
n
= F
n-1
+ F
n-2
với n>2


Yêu cầu: Cho số tự nhiên S (S< 2
31
), phân tích số S thành tổng của các số
thuộc dãy Fibonaci và số lợng các số đợc dùng là ít nhất.
S = F
i1
+ F
i2
+ .. + F
ik
(1< i
1
< i
2
< .. < i
k
)
Dữ liệu vào từ tệp văn bản BDFIBO.INP: chứa duy nhất một số S.
Dữ liệu đa ra tệp văn bản BDFIBO.OUT: chứa hai dòng
Dòng 1: Chứa số K là số lợng các số đợc dùng ít nhất tìm đợc.
Dòng 2: Chứa K số theo thứ tự tăng dần thể hiện chỉ số các số trong
dãy Fibonaci tìm đợc (nếu có nhiều cách thì chỉ cần đa ra 1 cách)
Ví dụ về dữ liệu vào và dữ liệu ra
Bài 2: ảnh vệ tinh (7 im)
Để khảo sát một khu dân c ngời ta phân tích số liệu từ ảnh chụp do vệ
tinh gửi về. Bức ảnh chụp có kích thớc NxM, đợc chia thành N hàng và M
cột. Ta coi mỗi ngôi nhà có dạng hình chữ nhật. Ô (i,j) là ô thuộc dòng i cột j
trong bức ảnh có giá trị 1 hoặc 0 tơng ứng thuộc hoặc không thuộc vào một
Trang 1
BDFIBO.INP BDFIBO.OUT

10 2
3 6
CHNH THC
ngôi nhà. Các ô trong cùng một ngôi nhà đều có giá trị bằng 1. Biết rằng các
ngôi nhà không có phần trùng nhau có nghĩa l 2 ô thuộc vào 2 ngôi nhà
khác nhau không kề cạnh. Từ một bức ảnh cho trớc, em hãy cho biết diện
tích của ngôi nhà lớn nhất trong bức ảnh (mỗi ô là một đơn vị diện tích).
Dữ liệu vào từ tệp văn bản NHA.INP có cấu trúc
- Dòng 1 chứa 2 số N và M (N và M nguyên dơng và nhỏ hơn 100).
- Trong N dòng tiếp theo, mỗi dòng chứa M số 0 hoặc 1. Số thứ j
của dòng i thể hiện giá trị của ô (i,j).
Dữ liệu đa ra tệp văn bản NHA.OUT chứa một số duy nhất là diện tích
ngôi nhà lớn nhất tìm đợc.
Ví dụ về dữ liệu vào và dữ liệu ra
Bài 3: Dãy tăng dần (6 im)
Ta gọi dãy số X
1
, X
2
, . . . X
k
là dãy tăng dần nếu với mọi giá trị của i
(0<i<k ) đều thoả mãn X
i
X
i+1
.
Cho một dãy số tự nhiên. Hãy xoá khỏi dãy đã cho một số phần tử và
giữ nguyên thứ tự của các phần tử còn lại để đợc một dãy tăng dần có số
phần tử lớn nhất.

Dữ liệu vào từ tệp văn bản TANGDAN.INP có cấu trúc
- Dòng 1 chứa số N là số phần tử của dãy số ban đầu (0<N 20000).
- Dòng 2 chứa N số tự nhiên của dãy ban đầu theo đúng thứ tự (các số
đều nhỏ hơn 200).
Dữ liệu đa ra tệp văn bản TANGDAN.OUT chứa một số duy nhất là số
các phần tử đợc giữ lại mà đảm bảo dãy tăng dần có số phần tử lớn nhất.
Ví dụ về dữ liệu vào và dữ liệu ra
Trang 2
NHA.INP NHA.OUT
3 5
0 1 1 0 1
0 1 1 0 1
0 0 0 1 0
4
TANGDAN.INP TANGDAN.OUT
6
3 8 5 7 9 12
5
(chỉ bỏ số 8)
Chú ý: File chương trình của bài 1 đặt tên là BDFIBO.PAS.
của bài 2 đặt tên là NHA.PAS.
của bài 3 đặt tên là TANGDAN.PAS.
HÕt
Trang 3
S GIO DC O TO P N V HNG DN CHM
NAM NH THI CHN HC SINH GII
-------- Nm hc 2006-2007
Mụn : TIN HC Lp 9
Chấm bài bằng các test, chơng trình không chạy hoặc dữ liệu vào ra không phù
hợp sẽ không đợc điểm. Trờng hợp sai tên tệp chơng trình hoặc tệp dữ liệu vào ra thì sửa

lại cho đúng, chấm bình thờng, trừ 2 điểm mỗi bài.
Bài 1: Biểu diễn số 7 điểm
- Tạo K số Fibonaci và lu vào mảng F, số thứ K là số lớn nhất mà không lớn hơn S.
- Mảng X có N phần tử, chứa chỉ số của các số Fibonaci xuất hiện trong cách biểu diễn
theo thứ tự giảm dần.
i:=0;
While S>0 do
Begin i:=i+1; while F[k] > S do k:=k-1; X[i]:=k; S:=S-F[k]; End
- In giá trị của mảng X theo thứ tự ngợc lại.
Chỉ chú ý khi xử lý số lớn, số Fibo thứ 47 là vợt qua phạm vi longint
(dùng mảng số thực để lu là tốt nhất) và không dùng F[1]
Bài 2: ảnh vệ tinh 7 điểm
- Nhập dữ liệu vào mảng X. Phủ thêm các giá trị 0 ra bên ngoài.
- For i:=1 to N do
For j:=1 to M do
If X[i,j]=1 then
Begin d:=i; c:=j;
Whlie X[d,j]=1 do d:=d+1;
Whlie X[i,c]=1 do c:=c+1;
For a:=i to d do for b:=j to c do X[a,b]:=0;
If Max<(d-i)*(c-j) then Max:=(d-i)*(c-j);
End
Bài 3: Dãy tăng dần 6 điểm
Dùng phơng pháp quy hoạch động
-Nhập dữ liệu vào mảng X (kiểu byte)
- Dùng mảng F để tính theo quy hoạch (kiểu integer)
F[1]:=1;
For i:=2 to N do
Begin Max:=0;
For j:=1 to i-1 do

If X[j]<=X[i] Then If Max<F[j] then Max:=F[j];
F[i]:=Max+1;
End;
KQ:=1;
For i:=2 to N do If KQ<F[i] then KQ:=F[i];
CHNH THC

×