PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
TP. TAM KỲ
KỲ KIỂM TRA CHỌN HỌC SINH GIỎI LỚP 8
Năm học 2013-2014
Môn : TIN HỌC
Thời gian : 60 phút (không kể thời gian giao đề
Bài 1 (5 điểm- Tần số )
Xét một dãy số a
1
, a
2
, a
3
, a
N
. Gọi x là giá trị của một phần tử a
i
nào đó của dãy.
Ta nói tần số của a
i
là số k nếu giá trị x được xuất hiện k lần trong dãy. Ví dụ : Cho
dãy 1, 4, 3, 4, 2, 5, 4 thì tần số của a
2
là 3 vì giá trị 4 của a
2
xuất hiện 3 lần trong
dãy (tương tự, ta cũng có thể nói tần số của a
4
và a
7
là 3). Số M được gọi là tần số lớn
nhất của dãy nếu với mọi i ( i =1,2 ,N), thì tần số của a
i
luôn nhỏ hơn hoặc bằng M.
Yêu cầu : Nhập vào từ bàn phím số nguyên dương N (0< N ≤ 100) và N số nguyên a
i
(0≤ a
i
≤ 100, i=1,2, N). Đưa ra màn hình tần số lớn nhất của dãy a
1
, a
2
, , a
N
Input Output
10
1 4 3 2 4 5 2 2 5 2
4
Bài 2 (5 điểm- Tìm ẩn số của một tổng)
Xét đẳng thức cho bởi:
q
p
xxxx
=
+
+
−
++++
)3(
1
)3(
1
11.8
1
8.5
1
5.2
1
(1)
( với p và q là các số nguyên dương)
Yêu cầu : Nhập vào từ bàn phím 2 số nguyên p, q (0 < p, q ≤ 1000) . In ra màn hình
số nguyên x thỏa mãn đẳng thức (1) ( giả thiết là hai số p, q nhập vào thích hợp để
phương trình (1) luôn tồn tại nghiệm)
Input Output
101 610 302
===Hết===
Ghi chú : Các file của bài làm phải được ghi tương ứng là BL1.PAS, BL2.PAS
ĐỀ CHÍNH THỨC
HƯỚNG DẪN CHẤM
====
Bài 1 (5 đ) Test 10 bộ mỗi bộ 0,5 điểm. Thời gian test mỗi bộ không quá 5giây. Quá thời
gian quy định không cho điểm
Test Input Output
1 5
1 2 3 4 5
1
2 10
1 4 3 2 4 5 2 2 5 2
4
3 12
1 2 3 1 2 1 1 1 2 4 -2 -2
5
4 15
4 7 19 9 7 9 7 4 19 19 7 8 7 8 9
5
5 8
1 1 1 1 1 1 1 1
8
6 6
1 2 3 3 4 5 6
2
7 11
7 0 0 7 7 1 1 1 1 1 1
6
8 12
1 2 1 2 1 2 1 2 1 2 1 2
6
9 15
9 9 9 4 4 4 4 3 3 3 3 3 3 3 1
7
10 3
1 2 1
2
Bài 2 (5đ) Test 10 bộ, mỗi bộ 0,5 điểm. Thời gian test mỗi bộ không quá 5giây. Quá thời
gian quy định không cho điểm
Test Input Output
1 3 22 8
2 5 40 5
3 1 8 5
4 1 7 11
5 5 34 14
6 11 70 32
7 15 94 44
8 21 130 62
9 73 442 218
10 101 610 302
=====
LỜI GIẢI THAM KHẢO
Bài 1:
uses crt;
var a,L:array[1 10000]of integer;
N,i,imax,max: integer;
Procedure Nhap;
begin
write('N=');readln(N);
for i:=1 to N do
begin
write('a[',i,']=');readln(a[i])
end;
end;
Procedure Xuly;
Begin
fillchar(L,sizeof(L),0);
for i:=1 to N do
begin
L[a[i]]:=L[a[i]]+1;
if L[a[i]]>max then
begin
max:=L[a[i]];
imax:=i;
end;
end;
write(max);
readln;
end;
Begin
nhap;
xuly;
end.
Bài 2:
uses crt;
var p,q,i:integer;
S,epsi:real;
Begin
S:=0; i:=2 ; epsi:=0.0000000001;
write('P,Q='); readln(p,q);
repeat
S:=S+1/(i*(i+3));
if (abs(S-p/q)<=epsi) then
writeln(i);
inc(i,3);
until (s>=p/q) or (i>= 30000);
readln;
end.