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

bộ đề thi HSG lớp 9 môn tin học cấp tỉnh một số năm gần đây

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 (722.16 KB, 21 trang )

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
HUYỆN LAI VUNG

KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2016 – 2017

ĐỀ CHÍNH THỨC

MÔN THI: TIN HỌC
Thời gian làm bài: 150 phút
Ngày thi: 15/01/2017

Họ và tên thí sinh:.......................................... Số báo danh:..........................
Chữ ký của giám thị 1:...................... Chữ ký của giám thị 2:............................
Tổng quan đề thi:
Bài
Tên tệp chương trình
Bài 1
BL1.PAS
Bài 2
BL2.PAS
Bài 3
BL3.PAS

Dữ liệu vào
Nhập từ bàn phím
BL2.INP
BL3.INP

Kết quả ra
Xuất ra màn hình


BL2.OUT
BL3.OUT

Hạn chế kỹ thuật: Thời gian thực hiện chương trình khơng q 5 giây.
BÀI 1 (7,0 điểm) ĐÁNH SỐ.
Để quản lý các cây xanh dọc theo con đường trung tâm thành phố, công ty
cây xanh đã tiến hành đánh số cho các cây. Tuy nhiên công ty đã không đánh số
liên tiếp từ một đến hết mà đánh số theo cách sau: cây đầu tiên tính từ đầu
đường được đánh số 1, hai cây tiếp theo được đánh số 2, ba cây tiếp theo được
đánh số 3, ... và cứ thế cho đến cây xanh cuối đường.
Yêu cầu: Hãy cho biết cây xanh thứ N tính từ đầu đường được đánh số bao
nhiêu?
Dữ liệu vào: Nhập từ bàn phím số nguyên dương N (1N109).
Kết quả ra: Xuất ra màn hình số được đánh trên cây xanh thứ N.
Ví dụ:
Nhập từ bàn phím
Nhap N = 12

Xuất ra màn hình
So tren cay la : 5

Giải thích: Các cây được đánh số lần lượt: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 ...
BÀI 2 (6,0 điểm) MẬT KHẨU.
Cu Tí thường xun tham gia thi lập trình trên mạng. Vì đạt được thành tích
cao nên Tí được gửi tặng một phần mềm diệt virus. Nhà sản xuất phần mềm
cung cấp cho Tí một mã số là một dãy gồm các bộ ba chữ số ngăn cách nhau bởi
dấu chấm và có chiều dài khơng q 255 (kể cả chữ số và dấu chấm). Để cài đặt
được phần mềm, Tí phải nhập vào mật khẩu của phần mềm. Mật khẩu là một số
nguyên dương M được tạo ra bằng cách tính tổng giá trị các bộ ba chữ số trong
dãy mã số, các bộ ba này được đọc từ phải sang trái.

Yêu cầu: Cho biết mã số của phần mềm, hãy tìm mật khẩu của phần mềm đó.


Dữ liệu vào: Cho từ tệp văn bản có tên BL2.INP gồm một dòng chứa xâu ký
tự S (độ dài xâu không quá 255 ký tự) là mã số của phần mềm.
Kết quả: Ghi ra tệp văn bản có tên BL2.OUT gồm một số ngun là mật
khẩu tìm được.
Ví dụ:
BL2.INP
218.042.693

BL2.OUT
1448

Giải thích: Mật khẩu 1448 là tổng các số 812 + 240 + 396.
BÀI 3 (7,0 điểm) TRÒ CHƠI VỚI BĂNG SỐ.
Trên một cuộn giấy dài, người ta lần lượt viết N số nguyên dương, giá trị mỗi
số không vượt quá 106.
Yêu cầu: Hãy cắt cuộn giấy thành nhiều đoạn nhất sao cho tổng các số được
viết trong các đoạn là bằng nhau.
Dữ liệu vào: Cho từ tệp văn bản có tên BL3.INP có dạng như sau:
- Dịng đầu tiên ghi số nguyên dương N (1≤N≤103).
- Dòng thứ hai ghi N số nguyên theo thứ tự là các số được viết trên cuộn giấy,
các số nguyên cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra tệp văn bản có tên BL3.OUT gồm một dòng ghi một số
nguyên là số đoạn nhiều nhất có thể chia được.
Ví dụ:
BL3.INP
8
10 2 6 2 5 2 1 2


BL3.OUT
3

Giải thích:
+ Đoạn 1: 10
+ Đoạn 2: 2 + 6 + 2 =10
+ Đoạn 3: 5 + 2 + 1 + 2 = 10
--- HẾT --Lưu ý: Thí sinh khơng được sử dụng tài liệu. Giám thị khơng giải thích gì thêm.


PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
HUYỆN LAI VUNG
Hướng dẫn chấm gồm 04 trang

HƯỚNG DẪN CHẤM ĐỀ CHÍNH THỨC
KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2016 – 2017
MÔN: TIN HỌC

I. HƯỚNG DẪN CHUNG:
1. Bài thi được chấm thủ công theo bộ TEST. Thời gian thực hiện chương
trình khơng q 5 giây. Bộ TEST chấm bài được lưu trong đĩa kèm theo.
2. Giám khảo chỉ chấm những bài khơng cịn lỗi và có thể sửa đường dẫn,
tên tệp dữ liệu vào, tên tệp dữ liệu ra để phù hợp với từng bộ TEST chấm bài.
3. Việc chi tiết hóa thang điểm (nếu có) trong hướng dẫn này hoặc xử lý
các trường hợp đặc biệt phải đảm bảo không làm sai lệch hướng dẫn chấm và
được thực hiện thống nhất trong tổ chấm.
II. HƯỚNG DẪN CHẤM VÀ THANG ĐIỂM:
BÀI 1 (7,0 điểm) ĐÁNH SỐ.

a. Thuật tốn:
Cách 1: Lần lượt chạy vịng lặp theo số được đánh trên cây và tính tổng cộng
dồn cho đến khi tổng lớn hơn hoặc bằng N.
Cách 2:
Giả sử cây cần tìm được đánh số là x. (x>0)
Ta có tổng số cây từ đầu đến cây cuối cùng được đánh số x là:
1+2+3+...+x = x(x+1)/2
Vì cây thứ N được đánh số là x nên ta phải có
x(x+1)/2  N  x2 + x -2N  0
1  1  8 N
1  1  8 N
(loại) hoặc x 
2
2
1  1  8 N
Kết luận: x là số tự nhiên nhỏ nhất sao cho x 
2

 x

b. Chương trình tham khảo (theo cách 1):
Program BL1;
Var S,N,x:Longint;
Begin
Write('Nhap N = ');
Readln(N);
x:=0;
S:=0;
Repeat
x:=x+1;

S:=S+x;
Until S>=N;


Writeln('So tren cay la : ',x);
Readln;
End.

c. Bộ TEST:
TEST
1
2
3
4
5
6
7

Dữ liệu nhập
N=
579
N=
32.961
N=
173.526
N=
8.095.217
N=
67.430.291
N = 524.891.327

N = 1.000.000.000

Kết quả
34
257
589
4024
11613
32400
44721

Điểm
1,0
1,0
1,0
1,0
1,0
1,0
1,0

BÀI 2 (6,0 điểm) MẬT KHẨU.
a. Thuật tốn:
Duyệt xâu đổi sang số và tính tổng.
Chú ý tùy theo cách duyệt có thể cần phải xóa khoảng trống ở đầu và cuối
xâu trước khi duyệt.
b. Chương trình tham khảo:
Program BL2;
Const fin ='BL2.INP';
fout='BL2.OUT';
Var S:String;

i,Sum,T:Longint;
f:Text;
Begin
Assign(f,fin);
Reset(f);
Read(f,S);
Close(f);
Sum:=0;
T:=0;
For i:=Length(S) downto 1 do
If S[i] in ['0'..'9'] then T:=T*10+(ord(S[i])-48)
Else
Begin
Sum:=Sum+T;
T:=0;
End;
Sum:=Sum+T;
Assign(f,fout);
ReWrite(f);
Write(f,Sum);
Close(f);
End.


c. Bộ TEST:

TES
T
1
2

3

4

5

6

Dữ liệu nhập
945.395.517.448.306
875.720.262.005.191.989.046.750.847.511
416.220.879.339.665.810.071.482.893.204
.744.013.804.876.593.166.731.071.573.30
9.480.629.372.168.026.887.041.346.356.9
49.243.683.333.990.568.589.628
536.907.107.894.210.662.929.902.510.405
.119.832.359.395.658.907.450.755.651.38
1.665.816.800.188.917.383.316.602.892.4
33.072.543.781.165.664.780.473.917.425.
873.551.278.532.319.495
289.722.600.645.749.758.561.584.341.169
.005.518.253.572.184.001.605.478.598.51
4.492.060.361.923.280.077.692.747.042.6
85.727.535.377.860.564.876.328.342.562.
952.507.564.391.623.224.159.035.441.998
.833
446.575.386.028.883.765.533.297.268.080
.794.835.604.008.103.785.181.552.223.96
5.866.319.186.812.575.793.764.164.146.1
41.913.071.498.290.595.372.171.035.540.

457.148.915.316.821.358.980.317.920.455
.792.609.693.484.881.136.489.643.470.75
7.904

Kết quả

Điểm

3304
4107
18642

1,0
1,0
1,0

20994

1,0

23908

1,0

29018

1,0

BÀI 3 (7,0 điểm) TRÒ CHƠI VỚI BĂNG SỐ.


a. Thuật tốn:
Tính tổng các phần tử của dãy, sau đó xét những giá trị là ước của tổng
này. Để ý rằng ta chỉ chia được tối đa thành N phần do đó ta chỉ xét từ N trở
xuống, không cần phải xét tất cả các ước của tổng.
b. Chương trình tham khảo:
Program BL3;
Const fin ='BL3.INP';
fout='BL3.OUT';
Var a:array[1..1000] of Longint;
N,K,i,S,tong:Longint;
f:Text;
Begin
Assign(f,fin);
Reset(f);
Readln(f,N);


For i:=1 to N do Read(f,a[i]);
Close(f);
S:=0;
For i:=1 to N do S:=S+a[i];
For K:=N downto 1 do
If S mod K=0 then
Begin
tong:=0;
For i:=1 to n do
Begin
tong:=tong+a[i];
If tong=S div K then tong:=0;
End;

If tong=0 then Break;
End;
Assign(f,fout);
ReWrite(f);
Write(f,K);
Close(f);
End.

c. Bộ TEST: Các dữ liệu nhập xem trong file BL3.INP
TEST
1
2
3
4
5
6
7

File Input
BL31.INP
BL32.INP
BL33.INP
BL34.INP
BL35.INP
BL36.INP
BL37.INP

BL3.OUT
7
2

4
2
7
1
1000
---HẾT---

Điểm
1,0
1,0
1,0
1,0
1,0
1,0
1,0


PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
HUYỆN LAI VUNG

KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2015 – 2016

ĐỀ CHÍNH THỨC

MÔN THI: TIN HỌC
Thời gian làm bài: 150 phút
Ngày thi: 17/01/2016

Họ và tên thí sinh: .......................................... Số báo danh: ..........................

Chữ ký của giám thị 1: ...................... Chữ ký của giám thị 2: ............................
NỘI DUNG ĐỀ THI
(Đề thi có 02 trang, gồm 3bài)
Hạn chế kỹ thuật: Thời gian thực hiện chương trình khơng q 5 giây
BÀI 1. (7 điểm) GIA CƠNG SẢN PHẦM
Một cơ sở sản xuất hàng thủ công mỹ nghệ vừa nhận được một đơn đặt hàng
gia công n sản phẩm. Với số lượng đặt hàng lớn như vậy, cơ sở đã huy động hết
tồn bộ cơng nhân bắt tay vào làm ngay. Tuy nhiên đây lại là một sản phẩm mới
nên ngày đầu tiên cơ sở chỉ làm ra được k sản phẩm. Sang ngày thứ hai, các
công nhân đã thành thạo hơn nên số sản phẩm làm ra được nhiều gấp đôi ngày
thứ nhất. Và cứ như vậy, năng suất của ngày hôm sau lại cao gấp đôi ngày hôm
trước.
Yêu cầu: Hãy cho biết cơ sở cần bao nhiêu ngày để hoàn thành hết n sản
phẩm?
Dữ liệu vào: Nhập từ bàn phím các số nguyên n, k (1≤n,k≤100000). Giả thiết
dữ liệu được nhập đúng, không cần kiểm tra.
Kết quả ra: Xuất ra màn hình số ngày hồn thành các sản phẩm theo đơn đặt
hàng.
Ví dụ :
Nhập từ bàn phím
Số sản phẩm đặt hàng = 11
Số sản phẩm sản xuất trong ngày đầu tiên = 2

Xuất ra màn hình
Số ngày hồn thành = 3

Giải thích:
- Ngày thứ nhất làm 2 sản phẩm (còn lại 9 sản phẩm).
- Ngày thứ hai làm 4 sản phẩm (tổng cộng là 6, cịn lại 5 sản phẩm).
- Ngày thứ ba có thể làm được 8 sản phẩm nhưng chỉ làm 5 sản phẩm còn lại.

BÀI 2. (6 điểm) DÃY KÝ TỰ SỐ
Bạn Nam rất u thích lập trình, nhất là khi gặp những bài tốn khó thì bạn ấy
càng cố gắng để giải cho xong. Có một lần, trong lúc suy nghĩ về một bài toán,
tay bạn ấy lại gõ ngẫu nhiên các phím trên bàn phím, đến khi nhìn lại thì trên
màn hình đã là một dãy ký tự. Kỳ lạ thay, mặc dù là gõ ngẫu nhiên khơng nhìn
bàn phím nhưng có những lúc bạn ấy chỉ tồn gõ vào các phím số.


Yêu cầu: Cho xâu ký tự S là dãy các ký tự mà bạn Nam đã gõ vào, hãy cho
biết bạn Nam đã gõ liên tiếp các phím số nhiều nhất là bao nhiêu lần?
Dữ liệu vào: Cho từ tệp văn bản có tên BL2.INP gồm một dịng chứa xâu ký
tự S (độ dài xâu không quá 250 ký tự).
Kết quả: Ghi ra tệp văn bản có tên BL2.OUT có dạng:
- Dòng đầu ghi số lần nhiều nhất mà bạn Nam gõ liên tiếp các phím số.
- Nếu có ký tự số được gõ vào thì dịng thứ hai ghi dãy các số mà bạn nam gõ
liên tiếp nhiều nhất đó. Nếu có nhiều dãy cùng có số lần gõ nhiều nhất như nhau
thì in ra dãy đầu tiên.
Ví dụ:
BL2.INP
azp572gkxt8906dqsh13dj

BL2.OUT
4
8906

BÀI 3. (7 điểm) CHẠY TIẾP SỨC
Trong kỳ thi hội khỏe phù đổng cấp huyện vừa qua có n vận động viên tham
gia chạy ngắn, các vận động viên được đánh số báo danh từ 1 đến n. Kết quả
thời gian chạy của vận động viên thứ i là ti (miligiây). Để chuẩn bị cho môn
chạy tiếp sức trong kỳ thi hội khỏe phù đổng cấp tỉnh, ban huấn luyện muốn

chọn ra 4 vận động viên chạy nhanh nhất trong số n vận động viên này.
Yêu cầu: Hãy cho biết số báo danh của 4 vận động viên được chọn. Biết rằng
khơng có hai vận động viên nào có cùng thành tích.
Dữ liệu vào: Cho từ tệp văn bản có tên BL3.INP có dạng như sau:
- Dịng đầu tiên ghi số nguyên n (4≤n≤1000)
- n dòng tiếp theo, dòng thứ i ghi số nguyên dương ti là thời gian chạy của vận
động viên thứ i ( ti ≤ 30000, i=1..n)
Kết quả: Ghi ra tệp văn bản có tên BL3.OUT gồm một dòng ghi 4 số nguyên
tương ứng là 4 số báo danh của 4 vận động viên được chọn (không cần ghi theo
thứ tự).
Các số trên cùng một dòng ghi cách nhau ít nhất một dấu cách.
Ví dụ:
BL3.INP
7
13000
9800
10200
11500
10060
12050
11200

BL3.OUT
2357

--- HẾT --Lưu ý: Thí sinh khơng được sử dụng tài liệu. Giám thị khơng giải thích gì thêm.


PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
HUYỆN LAI VUNG

Hướng dẫn chấm gồm 03 trang

HƯỚNG DẪN CHẤM VÀ THANG ĐIỂM
KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2015 – 2016
MÔN: TIN HỌC

BÀI 1. (7 điểm) GIA CƠNG SẢN PHẨM
a. Thuật tốn:
Dùng cấu trúc lặp tăng dần để đếm số ngày
b. Chương trình tham khảo:
Program BL1;
Var n,k,S,dem:Longint;
Begin
Write('So san pham dat hang = ');
Readln(n);
Write('So san pham san xuat trong ngay dau tien = ');
Readln(k);
S:=0;
dem:=0;
While SBegin
dem:=dem+1;
S:=S+k;
k:=k*2;
End;
Write('So ngay hoan thanh = ',dem);
Readln;
End.
c. Bộ TEST:

TEST
1
2
3
4
5
6
7

Dữ liệu nhập
n = 10
k = 20
n = 300
k = 299
n = 250
k = 250
n = 5000
k=1
n = 15700
k=5
n = 50000
k=2
n = 100000
k=3

Kết quả

Điểm

1


1,0

2

1,0

1

1,0

13

1,0

12

1,0

15

1,0

16

1,0


BÀI 2. (6 điểm) DÃY KÝ TỰ SỐ
a. Thuật toán:

Bài tốn thuộc dạng tìm từ dài nhất trong xâu
b. Chương trình tham khảo:
Program BL2;
Const fin = 'BL2.INP';
fout= 'BL2.OUT';
Var S:String;
i,max,dem,vitri:Integer;
f:Text;
Begin
Assign(f,fin);
Reset(f);
Read(f,S);
Close(f);
max:=0;
dem:=0;
For i:=1 to Length(S) do
If (S[i]>='0') and (S[i]<='9') then
Begin
dem:=dem+1;
If dem>max then
Begin
max:=dem;
vitri:=i;
End;
End
Else dem:=0;
Assign(f,fout);
ReWrite(f);
Writeln(f,max);
Write(f,Copy(S,vitri-max+1,max));

Close(f);
End.

c. Bộ TEST:
TEST

Dữ liệu nhập

Kết quả

sjdh25jsh00491sadjh2763smdajk

5
00491

skldjl;a s';asdl'askasjdfajsj

0

3

sjdh;';7634re57834dfg57346gfh738947fkjash
3987ueirtjkdf,./l834782342907jshjlhk

12
834782342907

4

nb3478jdf348jgfh9038fgj348975dkj0-347dfg

83475jkfjk89-\=-aksdjh347jh000000000jksh

9
000000000

07304657018963457627456

23
07304657018963457627456

hjhdf346576347895hjfgsdasdjklh8930247508
3740fghjdfhgjkdhfjk5389034750834750-812
ajkgjksdf12389374508723489057346587413
67jhjk32762637ghsdgfsd7826789623457862
3478gsdgfhjsdggduyrtpy76789165789165018
6jhkjlasdggfhjasdgy576157645gfsgdfhlsgadfl
3478gwdhjsdhsa

31
123893745087234890573465874
1367

1
2

5

6

Điểm


0,5
0,5
1,0
0,5
0,5
0,5
0,5
0,5
0,5
0,5
0,5


BÀI 3. (7 điểm) CHẠY TIẾP SỨC
a. Thuật toán:
Sắp xếp dãy t theo thứ tự tăng dần và chọn 4 phần tử đầu. Lưu ý khi sắp xếp lưu
lại số báo danh của vận động viên.
b. Chương trình tham khảo:

Program BL3;
Const fin = 'BL31.INP';
fout= 'BL31.OUT';
Var t,sbd:Array[1..1000] of Integer;
n,i,j,tam:Integer;
f:Text;
Begin
Assign(f,fin);
Reset(f);
Readln(f,n);

For i:=1 to n do Readln(f,t[i]);
Close(f);
For i:=1 to n do sbd[i]:=i;
For i:=1 to 4 do
For j:=i+1 to n do
If t[i]>t[j] then
Begin
tam:=t[i];
t[i]:=t[j];
t[j]:=tam;
tam:=sbd[i];
sbd[i]:=sbd[j];
sbd[j]:=tam;
End;
Assign(f,fout);
ReWrite(f);
For i:=1 to 4 do Write(f,sbd[i],' ');
Close(f);
End.
c. Bộ TEST: Các dữ liệu nhập xem trong file BL3.INP
TEST
1
2
3
4
5
6
7

File Input

BL31.INP
BL32.INP
BL33.INP
BL34.INP
BL35.INP
BL36.INP
BL37.INP

BL3.OUT
7 10 12 14
16 33 66 97
67 130 178 195
262 369 398 524
15 358 536 598
116 211 511 736
83 168 713 937

---Hết---

Điểm
1,0
1,0
1,0
1,0
1,0
1,0
1,0


UBND HUYỆN LAI VUNG

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO

KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2014 – 2015

ĐỀ CHÍNH THỨC

MƠN THI: TIN HỌC
Thời gian: 150 phút (khơng kể thời gian giao đề)
Ngày thi: 07/12/2014

(Đề thi gồm 03 trang)

Tổng quan đề thi:
Bài
Bài 1
Bài 2
Bài 3
Bài 4

Tên tệp chương trình
BL1.PAS
BL2.PAS
BL3.PAS
BL4.PAS

Dữ liệu vào
Nhập từ bàn phím
Nhập từ bàn phím
BL3.INP

BL4.INP

Kết quả ra
Xuất ra màn hình
Xuất ra màn hình
BL3.OUT
BL4.OUT

Hạn chế kỹ thuật: Thời gian thực hiện chương trình khơng q 5 giây
BÀI 1. (5,0 điểm) NHỮNG ĐĨA HOA HỒNG
Tơn sư trọng đạo là một truyền thống văn hố vơ cùng tốt đẹp của dân tộc ta.
Để tỏ lòng tri ân đến quý thầy cô nhân ngày nhà giáo Việt Nam, các bạn học sinh lớp
9A dự định sẽ mua những cành hoa hồng đẹp nhất để tặng cho tất cả thầy cơ trong
tồn trường. Theo tìm hiểu của bạn lớp trưởng thì nhà trường có n thầy cơ giáo, do đó
các bạn cần mua n cành hoa hồng.
Tại cửa hàng bán hoa, giá của mỗi cành hoa hồng là m đồng. Tuy nhiên, cửa
hàng có chính sách giảm giá nếu khách hàng mua từ a cành hoa hồng trở lên thì giá
bán sẽ giảm 25%.
Yêu cầu: Hãy tính tổng số tiền mà các bạn lớp 9A cần có để mua đủ số cành
hoa hồng như dự định.
Dữ liệu vào: Nhập từ bàn phím các giá trị n, m, a (n, m, a là các số nguyên,
1≤n≤100, 1000≤m≤10000, 5≤a≤50). Giả thiết dữ liệu được nhập đúng, không cần
kiểm tra.
Kết quả ra: Xuất ra màn hình số tiền cần có. Kết quả làm trịn đến phần
nguyên.
Ví dụ 1:
Nhập từ bàn phím
Số hoa cần mua = 15
Đơn giá một cành hoa hồng = 1000
Số hoa tối thiểu để được giảm giá = 20


Xuất ra màn hình
Số tiền cần có = 15000

Ví dụ 2:
Nhập từ bàn phím
Số hoa cần mua = 30
Đơn giá một cành hoa hồng = 1000
Số hoa tối thiểu để được giảm giá = 10

Xuất ra màn hình
Số tiền cần có = 22500

Giải thích: giá mỗi hoa là 1000 đồng, nhưng mua số lượng nhiều hơn 10 hoa
được giảm 25% nên giá mỗi hoa giảm còn 750 đồng
Trang 1/7


BÀI 2. (5,0 điểm) CHIA QUÀ
Trong ngày Tết Trung thu, nhà thiếu nhi đã tổ chức rước đèn trung thu cho các
em thiếu thi. Tất cả các em đều hào hứng tham gia các trò chơi của ban tổ chức. Để
động viên tinh thần các em, ban tổ chức sẽ chấm điểm ở các trò chơi để xếp hạng và
phát quà. Tuy nhiên vì là ngày vui, ban tổ chức muốn tất cả các em đều nhận được
quà, kể cả em xếp hạng cuối cùng.
Cách phát quà của ban tổ chức như sau: em xếp hạng cuối cùng sẽ được 1 gói
quà, em xếp hạng kế trên em cuối cùng được 4 gói quà,…Nói chung, em xếp hạng
cao sẽ có số gói quà nhiều hơn bạn xếp hạng liền sau mình 3 gói q. Biết rằng có n
em tham gia rước đèn trung thu và khi tổng kết điểm thì khơng có hai em nào có cùng
số điểm.
u cầu: Hãy cho biết ban tổ chức cần chuẩn bị bao nhiêu gói quà để phát

trong đêm Trung thu nếu số lượng em thiếu nhi tham gia đã được biết trước?
Dữ liệu vào: Nhập từ bàn phím số nguyên dương n là số em thiếu nhi tham gia
rước đèn trung thu (1≤n≤1000).
Kết quả ra: Xuất ra màn hình số gói q mà ban tổ chức cần chuẩn bị.
Ví dụ:
Nhập từ bàn phím
Số em thiếu nhi = 5

Xuất ra màn hình
Số gói q chuẩn bị = 35

Giải thích: Số quà từng em nhận được lần lượt là: 1, 4, 7, 10, 13
BÀI 3. (5,0 điểm) CHUỖI NGỌC
Dọc theo con đường tơ lụa, những con lạc đà cần mẫn chuyên chở tơ lụa,
hương liệu và ngọc ngà đá quý của Phương Đông. Đá quý được phân thành 26 loại
ký hiệu bằng chữ cái la tinh thường từ a đến z. Các lái buôn muốn bán được hàng với
giá càng cao càng tốt. Trong chuyến đi này một lái buôn mang theo bộ đá quý gồm n
viên (1 ≤ n ≤ 250). Ông xâu tất cả thành chuỗi và bày ra trên thảm trước một lãnh
chúa hùng mạnh. Vị lãnh chúa cân nhắc đánh giá chất lượng bộ đá quý để quyết định
có nên mua hay không. Theo quy tắc truyền thống của địa phương, giá trị của chuỗi
ngọc phụ thuộc vào sự xuất hiện các cặp ngọc (ai, b i), tức là phải có ngọc loại ai đi
trước loại bi (i = 1..k, 1 ≤ k ≤ 676). Nếu giá trị chuỗi ngọc đủ lớn, lãnh chúa sẽ mua
toàn bộ chuỗi ngọc.
Yêu cầu: Cho biết số viên ngọc n, xâu S thể hiện các loại ngọc trong chuỗi và
cách định giá trị chuỗi ngọc của địa phương. Hãy xác định giá trị của chuỗi ngọc.
Dữ liệu vào: Cho từ tệp văn bản có tên BL3.INP có dạng như sau:
- Dịng đầu tiên ghi hai số nguyên n và k.
- Dòng thứ hai chứa xâu S.
- Tiếp theo là k dòng, mỗi dòng chứa hai ký tự xác định cặp giá trị.
Kết quả: Ghi ra tệp văn bản có tên BL3.OUT gồm một số nguyên duy nhất là

giá trị của chuỗi ngọc.

Trang 2/7


Ví dụ:
BL3.INP
73
abacaba
ab
ac
bb

a

b a

c

a

b a

a

b a

c

a


b a

a

b a

c

a

b a

BL3.OUT
7

Giải thích:
- Dịng thứ ba là cách thứ nhất xác định cặp giá trị: ngọc loại a đứng trước ngọc
loại b. Với cách này thì có 4 cặp (xem hình bên).
- Dịng thứ tư là cách thứ hai xác định cặp giá trị: ngọc loại a đứng trước ngọc
loại c. Với cách này thì có 2 cặp.
- Dịng thứ năm là cách thứ ba xác định cặp giá trị: ngọc loại b đứng trước
ngọc loại b. Với cách này thì có 1 cặp.
BÀI 4. (5,0 điểm) TỔNG LỚN NHẤT
Tranh thủ trong giờ ra chơi, hai bạn Nam và Bình rủ nhau chơi trị tìm số. Hai
bạn lần lượt mỗi người viết một số nguyên lên bảng, Nam viết số thứ nhất, Bình viết
số thứ hai, rồi đến lượt Nam viết số thứ ba,… Cứ tiếp tục như vậy hai bạn viết được
một dãy gồm n số a 1, a2, …, an . Đến đây hai bạn chưa kịp chơi trị chơi của mình thì
đã đến giờ học. Thầy vào lớp, sẳn thấy dãy số trên bảng, thầy đã đặt ra câu đố: Tìm
một đoạn liên tiếp các số trong dãy số trên sao cho tổng giá trị các số trong đoạn đó là

lớn nhất. Vì dãy số có q nhiều số nên cả lớp nhìn hoa cả mắt mà vẫn chưa tìm ra
được đáp án. Bạn hãy lập trình giải giúp các bạn trong lớp nhé.
Dữ liệu vào: Cho từ tệp văn bản có tên BL4.INP có dạng như sau:
- Dịng đầu tiên ghi số nguyên n (1≤n≤1000)
- Dòng thứ hai ghi dãy n số nguyên a1, a 2, …, an (-1000 ≤ ai ≤ 1000, i=1..n)
Kết quả: Ghi ra tệp văn bản có tên BL4.OUT gồm một số nguyên duy nhất là
tổng lớn nhất của một đoạn liên tiếp các số trong dãy.
Ví dụ:
BL4.INP

BL4.OUT

10
2 -9 4 1 -3 5 8 -7 3 1

15

--- HẾT --Họ và tên thí sinh: .......................................... Số báo danh: ..............................
Chữ ký của giám thị 1: ...................... Chữ ký của giám thị 2: ............................
Lưu ý: Thí sinh khơng được sử dụng tài liệu. Giám thị khơng giải thích gì thêm.

Trang 3/7


PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
HUYỆN LAI VUNG

HƯỚNG DẪN CHẤM VÀ THANG ĐIỂM
KỲ THI CHỌN HỌC SINH GIỎI LỚP 9
NĂM HỌC 2014 – 2015

MÔN: TIN HỌC

BÀI 1. (5 điểm) NHỮNG ĐĨA HOA HỒNG
a. Thuật tốn:
Kiểm tra nếu số hoa cần mua nhỏ hơn số hoa tối thiểu để được giảm giá thì số tiền =
số hoa * đơn giá; ngược lại thì số tiền = số hoa * đơn giá * 0.75
b. Chương trình tham khảo:
Program BL1;
Var n,m,a:Longint;
Begin
Write('So hoa can mua =
Readln(n);
Write('Don gia mot canh
Readln(m);
Write('So hoa toi thieu
Readln(a);
If nWrite('So tien can co
Else
Write('So tien can co
Readln;
End.

');
hoa = ');
de duoc giam gia = ');

= ',n*m)
= ',n*m*0.75 :8:0);


c. Bộ TEST:
Dữ liệu nhập
TEST
1
n = 20
m = 5000
a = 30
2
n = 25
m = 1200
a = 50
3
n = 15
m = 1800
a=5
4
n = 27
m = 1200
a = 27
5
n = 100
m = 10000
a = 30

Kết quả
100000

Điểm
1,0


30000

1,0

20250

1,0

24300

1,0

750000

1,0

Trang 4/7


BÀI 2. (5 điểm) CHIA QUÀ
a. Thuật toán:
Đây là bài tốn tính tổng n phần tử đầu tiên của cấp số cộng có cơng sai d=3. Cũng
có thể áp dụng lệnh For để tính.
b. Chương trình tham khảo:
Program BL2;
Var n,i,a,S:Longint;
Begin
Write('So em thieu nhi = ');
Readln(n);
S:=1; a:=1;

For i:=2 to n do
Begin
a:=a+3;
S:=S+a;
End;
Write('So goi qua chuan bi = ',S);
Readln;
End.
c. Bộ TEST:
TEST
1
2
3
4
5

Dữ liệu nhập
10
245
679
853
1000

Kết quả
145
89915
691222
1090987
1499500


Điểm
1,0
1,0
1,0
1,0
1,0

BÀI 3. (5 điểm) CHUỖI NGỌC
a. Thuật toán:
Với mỗi cặp vị trí i và j (itrong số k cặp giá trị hay không. Để giảm thời gian kiểm tra, ta dùng một mảng hai chiều
A[‘a’..’z’, ‘a’..’z’] để đánh dấu các cặp giá trị.
b. Chương trình tham khảo:
Program BL3;
Const fin ='BL3.INP';
fout='BL3.OUT';
Var A:Array['a'..'z','a'..'z'] of Integer;
S:String;
c1,c2:Char;
n,k,i,j,d:Longint;
f:Text;
Begin
Assign(f,fin);
Reset(f);
Readln(f,n,k);
Readln(f,S);
Trang 5/7


For i:=1 to k do

Begin
Readln(f,c1,c2);
A[c1,c2]:=1;
End;
Close(f);
n:=Length(S);
d:=0;
For i:=1 to n-1 do
For j:=i+1 to n do d:=d + A[s[i],s[j]];
Assign(f,fout);
ReWrite(f);
Write(f,d);
Close(f);
End.
c. Bộ TEST: Các dữ liệu nhập xem trong file BL31.INP
TEST
1
2
3
4
5

File Input
BL31.INP
BL32.INP
BL33.INP
BL34.INP
BL35.INP

BL3.OUT

13
52
159
1730
13785

Điểm
1,0
1,0
1,0
1,0
1,0

BÀI 4. (5 điểm) TỔNG LỚN NHẤT
a. Thuật toán:
Mỗi đoạn con được xác định bởi vị trí phần tử bắt đầu đoạn và vị trí phần tử cuối
đoạn. Với mỗi đoạn con, ta tính tổng các phần tử của đoạn rồi so sánh chọn ra tổng lớn nhất.
Gọi Sk = a1 + a2 + … ak (k=1..n)
Khi đó ta có ai + ai+1 + … + aj = Sj – Si-1 (ở đây ta khởi tạo S0=0)
Theo cách này ta không cần lưu lại mảng a.
b. Chương trình tham khảo:
Program BL4;
Const fin ='BL4.INP';
fout='BL4.OUT';
Var S:Array[0..1000] of Longint;
n,x,i,j,max:Longint;
f:Text;
Begin
Assign(f,fin);
Reset(f);

Readln(f,n);
S[0]:=0;
For i:=1 to n do
Begin
Read(f,x);
S[i]:=S[i-1] + x;
End;
Close(f);
Trang 6/7


max:=S[1];
For i:=1 to n do
For j:=i to n do
If max < S[j]-S[i-1] then max:=S[j] - S[i-1];
Assign(f,fout);
ReWrite(f);
Write(f,max);
Close(f);
End.
c. Bộ TEST: Các dữ liệu nhập xem trong file
TEST
1
2
3
4
5

File Input
BL41.INP

BL42.INP
BL43.INP
BL44.INP
BL45.INP

BL4.OUT
9
909
2327
3523
7893

Điểm
1,0
1,0
1,0
1,0
1,0

---Hết---

Trang 7/7


Tác giả: Đinh Manh Đạt
Người ta định xây rào bảo vệ cho một khu rừng với mật độ cây khá thưa thớt, số liệu về các cây
trong rừng được kiểm kê lại gồm có số lượng cây (N), bán kính của mỗi cây (R 1 … R N ) và cặp toạ độ
(x i , y i ) tâm của cây với giả định rằng cây có dạng hình trụ thẳng đứng. Rào được xây dựng phải là
một hình chữ nhật có các cạnh song song với trục toạ độ Oxy đã quy ước, có chu vi bé nhất và cách
thân cây ít nhất là 5 mét. Ví dụ:


Bạn hãy lập trình tìm ra hàng rào tốt nhất cho khu rừng.
Dữ liệu: Số liệu về khu rừng được cho trong file HANGRAO.INP:
- Dòng đầu tiên ghi N (N ≤100).
- Dòng thứ i trong số N dòng tiếp theo ghi số liệu cây thứ i gồm có X i , Y i , và R i .
Chú ý: Dữ liệu đưa vào đều là số nguyên, các đơn vị đo chiều dài được tính bằng mét.
Kết quả: Đưa ra file HANGRAO.OUT toạ độ góc trên trái và dưới phải của hàng rào hình chữ nhật trên
hai dịng.
Ví dụ:

Số “đáng u”
Một số nguyên dương được gọi là “đáng yêu” nếu số đó chia hết cho số ước ngun dương
của nó. Ví dụ: Số 40 có 8 ước nguyên dương là: 1, 2, 4, 5, 8, 10, 20, 40. 40 lại chia hết cho 8.
Vậy số 40 là “đáng yêu”. Cho số nguyên dương N (0 < N < 30000), hãy cho biết số N có
“đáng u” hay khơng?

Bài 2. Thẻ cơng dân
Ở nước BYTE, mỗi công dân đến tuổi trưởng thành được cấp một thẻ
công dân. Mỗi thẻ công dân mang một số hiệu bao gồm một số có 7 chữ số và
một chữ cái, ví dụ như “6830907D”. Chữ cái này được xác định như sau:
1. Nhân mỗi chữ số của số đứng trước với một trọng số. Trọng số của chữ
số đầu tiên là 2, trọng số của chữ số thứ hai là 7, của chữ số thứ ba là 6, của chữ


số thứ tư là 5, của chữ số thứ năm là 4, của chữ số thứ sáu là 3, của chữ số thứ
bảy là 2.
2. Cộng tất cả các tích tìm được rồi đem chia cho 11 được một số dư.
3. Chữ cái được xác định dựa vào số dư tìm được theo quy tắc sau:
Số dư
0

1
2
3
4
5
6
7
8
9
10
Chữ cái
J
A
B
C
D
E
F
G
H
I
Z
Ví dụ: Với số “6830907” ta có: 2 x 6 + 7 x 8 + 6 x 3 + 5 x 0 + 4 x 9 + 3 x
0 + 2 x 7 = 12 + 56 + 18 + 0 + 36 + 0 + 14 = 136, đem chia 136 cho 11 được dư
là 4. Số dư 4 ứng với chữ cái D. Vậy thẻ cơng dân này có số hiệu là
“6830907D”.
Cho phần số của các thẻ cơng dân, hãy tìm và in ra phần chữ của các thẻ
tương ứng.
Input: Dữ liệu vào cho trong file văn bản “THECD.IN” bao gồm phần số của
các thẻ cơng dân, mỗi số có 7 chữ số (có thể có các chữ số 0 đứng bên trái), mỗi

số trên 1 dòng.
Output: Kết quả đưa ra file văn bản “THECD.OUT”. Mỗi dòng của file chứa
một chữ cái in hoa là phần chữ của các số hiệu thẻ công dân tương ứng với phần
số trong dữ liệu vào.
Ví dụ về file input và output:
THECD.IN
THECD.OUT
6830907
D
9753124
I
Sing2002
Tần suất lớn nhất


ĐỀ THI HỌC SINH GIỎI TIN LỚP 9

Thời gian 90 phút kể cả thời gian phát đề
Ngày thi: 28/10/2007
Câu 1 : (8 Điểm)
Viết trương trình nhập từ bàn phím một mảng một chiều gồm n phần tử (5nguyên dương.Đưa ra màn hình các dãy sau:
- Dãy 1 là mảng vừa nhập
- Dãy 2 là các phần tử liên tiếp nhiều nhất không giảm lấy từ mảng.
- Dãy 3 là dãy các phần tử không tăng nhiều nhất lấy từ mảng mà khơng thay đổi vị trí các
phần tử trong mảng.
Ví dụ : Nhập n=14 và các phần tử là:
31 3 6 7 9 18 22 10 21 24 27 13 7 4
Dãy 1 là: 31 3 6 7 9 18 22 10 21 24 27 13 7 4
Dãy 2 là: 3 6 7 9 18 22

Dãy 3 là: 31 22 21 13 7 4
Câu 2 : (8 điểm)
Nhập một số nguyên dương n (với 0đưa kết quả ra màn hình.
Ví dụ : Nhập n=7560 thì kết quả in ra là 7560= 2.2.2.3.3.3.5.7
Câu 3 : (4 điểm)
Viết trương trình nhập từ bàn phím 2 số tự nhiên n,m (với 5của hình chữ nhật. Đưa ra màn hình phương án cắt hình chữ nhật trên thành các hình vng
sao cho số hình vng là ít nhất có thể.
Ví dụ cho n=5, m=6 thì kết quả cắt thành 5 hình vng và trên màn hình được biểu diễn nhu
sau:
56
33222
Link: />


×