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

Mau slie de tin pascal

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

ĐỀ THI HỌC SINH GIỎI TỈNH
MÔN: TIN HỌC 9

ĐỀ SỐ 1

Thời gian: 150 phút

Bài 1: (7 điểm) Đồng hồ
Trên mặt đồng hồ, kim ngắn đang chỉ vào số 1. Có hai thao tác trên đồng hồ gồm:
Thao tác vặn kim đồng hồ qua chiều thuận n số được ký hiệu là: +n và thao tác vặn kim
theo chiều ngược lại n số được ký hiệu là: –n. Hãy tìm giá trị số mà kim ngắn chỉ định
sau khi thực hiện một thao tác.
Ví dụ:

+3 nghĩa là vặn kim ngắn từ số 1 đến số 4 theo chiều thuận.
–4 nghĩa là vặn kim ngắn từ số 1 đến số 9 theo chiều ngược.

Dữ liệu vào: Cho file DONGHO.INP với một dòng duy nhất ghi thao tác vặn.
Kết quả: Ghi ra file DONGHO.OUT một số nguyên là giá trị kim ngắn chỉ định.

DONGHO.INP

DONGHO.OUT

+3

4

DONGHO.INP

DONGHO.OUT



-4

9

hoặc

Ràng buộc dữ liệu: n < 1000000.

TaiLieu.VN

Page 1


Bài 2: (7 điểm) Tìm số
Cho một dãy n số nguyên a1, a2, ..., an. Hãy tìm giá trị lớn nhì trong dãy.
Ví dụ:

Cho dãy số gồm 3 phần tử: 1, 2, -3
Giá trị lớn nhì là: 1

Dữ liệu vào: Cho file TIMSO.INP gồm:
- Dòng đầu tiên chứa số n là số lượng các phần tử của dãy a.
- n dòng tiếp theo, dòng thứ i chứa một số nguyên ai.
Kết quả: Ghi ra file TIMSO.OUT một số nguyên là giá trị lớn nhì. Trong trường
hợp không tìm thấy thì ghi ra file là: No solution

TIMSO.INP

TIMSO.OUT


3

1

1
2
-3

Ràng buộc dữ liệu: n < 10000; -32000 < ai < 32000.

Bài 3: (6 điểm) Chia kẹo
Cho n túi kẹo, túi thứ i có ai viên. Hãy chia các túi này thành hai phần sao cho số
viên kẹo chênh lệch giữa hai phần là nhỏ nhất.
Ví dụ:
20.
TaiLieu.VN

Cho 7 túi có số viên kẹo trong từng túi lần lượt là: 30, 25, 40, 20, 26, 30,

Page 2


Sau khi chia thành 2 phần để có số viên kẹo chênh lệch giữa 2 phần nhỏ
nhất ta được kết quả:
Phần thứ nhất: 30 + 25 + 40 = 95
Phần thứ hai: 20 + 26 + 30 + 20 = 96
Vậy số viên chênh lệch nhỏ nhất là: 96 – 95 = 1
Dữ liệu vào: Cho file CHIAKEO.INP gồm:
- Dòng đầu tiên chứa số n là số lượng các túi kẹo.

- n dòng tiếp theo, dòng thứ i chứa số viên của túi kẹo thứ i.
Kết quả: Ghi ra file CHIAKEO.OUT một số nguyên là số viên chênh lệch nhỏ
nhất.

CHIAKEO.INP

CHIAKEO.OUT

7

1

30
25
40
20
26
30
20

Ràng buộc dữ liệu: n < 100000; 0 < ai < 50000.

TaiLieu.VN

Page 3


ĐỀ THI HỌC SINH GIỎI TỈNH

ĐỀ SỐ 2


MÔN: TIN HỌC 9
Thời gian: 150 phút

BÀI 1: (5 điểm)
Viết chương trình nhập số nguyên dương N, và dãy số thực A gồm có
N số. Kiểm tra xem dãy vừa nhập đã được sắp xếp thành dãy tăng, hoặc
giảm hoặc không tăng, không giảm? Thông báo kết quả trên màn hình.
Ví dụ 1:
Dữ liệu vào:
Dữ liệu ra:

N =8, A = 1.2 3.5 4.0 5.3 6.0 7.7 8.1 9.0
Day so da duoc sap xep thanh day tang.

Ví dụ 2:
Dữ liệu vào:
Dữ liệu ra:

N= 7, A = 9.0 8.5 7.3 6.0 5.5 4.7 3.0
Day so da duoc sap xep thanh day giam.

BÀI 2: (5 điểm)
Viết chương trình nhập các số nguyên dương N, K và dãy số thực A
gồm có N số. Xét xem trong dãy số A có K số dương đứng cạnh nhau hay
không?
Ví dụ 1:
Dữ liệu vào:
N=8
TaiLieu.VN


Page 4


A = 2 -2 5 7 3 0 2 -1
K=4
Dữ liệu ra: Trong day khong co 4 so duong dung canh nhau
Ví dụ 2:
Dữ liệu vào:
N=9
A = 1 -2 3 7 9 1 2 -1 -7
K=5
Dữ liệu ra: Trong day co 5 so duong dung canh nhau
BÀI 3 : (5 điểm)
Mảng là kiểu dữ liệu có cấu trúc của ngôn ngữ lập trình Pascal, gồm
một số hữu hạn các phần tử có cùng kiểu, có cùng một tên chung. Số
phần tử của mảng được xác định khi mảng được định nghĩa, kiểu của các
phần tử gọi là kiểu cơ bản của mảng. Ta có mảng một chiều, mảng hai
chiều, ...
Để khai báo một mảng hai chiều (còn gọi ma trận) có n hàng, m cột,
ta viết như sau :
CONST

n = .... ; m = ..... ;

TYPE

Tên_mảng = ARRAY[1..n,1..m] OF Kiểu_phần_tử;

VAR Tên_biến_mảng : Tên_mảng;


TaiLieu.VN

Page 5


Xem ví dụ sau :
CONST

n=3;

m=4;

TYPE Ma_tran = ARRAY[1..n,1..m] Of Integer;
VAR

X : Ma_tran;

Lúc đó biến X theo khai báo ở trên là một mảng (ma trận) gồm 3
hàng, 4 cột. Như vậy mảng này có tất cả 3*4 = 12 phần tử, mỗi phần tử là
một số nguyên. Phần tử hàng i, cột j của mảng X được viết X[i,j]. Để
nhập/xuất dữ liệu cho các phần tử của mảng X ta viết như sau :
Nhập dữ liệu : For i := 1 to n do
For j := 1 to m do
Begin
Write(‘Nhap gia tri X[‘,i,’,’,j,’] = ’);
Read(X[i,j]);
End;
Xuất dữ liệu :


For i := 1 to n do

Begin
For j := 1 to m do Write(X[i,j]);
Witeln;
End;
Ma trận vuông là ma trận có số hàng bằng số cột. Ma trận vuông
cấp N là ma trận có số hàng bằng số cột đều bằng N.

TaiLieu.VN

Page 6


Hãy viết chương trình điền các phần tử của ma trận vuông cấp N (0<
N ≤ 200) gồm các số –1, 0, 1 sao cho tổng các số của mọi hình vuông
cấp 2 đều bằng 0 và tổng các số của ma trận cấp N là lớn nhất.
BÀI 4 : (5 điểm)
Palindrome là xâu ký tự mà nếu đọc nó từ trái sang phải cũng như từ
phải sang trái ta được cùng một xâu. Một xâu ký tự bất kỳ luôn có thể
biểu diễn như là một dãy các palindrome nếu như ta coi xâu chỉ gồm một
ký tự luôn là palindrome.
Ví dụ: Xâu ‘bobseesanna’ có thể biểu diễn dưới dạng dãy các
palindrome theo nhiều cách, chẳng hạn
‘bobseesanna’ = ‘bob’ + ‘sees’ + ‘anna’
‘bobseesanna’ = ‘bob’ + ‘s’ + ‘ee’ + ’s’ + ‘anna’
‘bobseesanna’ = ‘b’ +’o’ + ‘b’ + ‘sees’ + ‘a’ + ‘n’ + ‘n’ + ‘a’
Yêu cầu: Cho xâu ký tự s, cần tìm cách biểu diễn xâu s dưới dạng
một dãy gồm một số ít nhất các palindrome.
Ví dụ: Cho s = ‘bobseesanna’, do ta có ‘bobseesanna’ = ‘bob’ +

‘sees’ + ‘anna’ và không thể biểu diễn ‘bobseesanna’ bởi ít hơn là 3
palindrome nên biểu diễn này chính là biểu diễn cần tìm.
Dữ liệu: Vào từ file văn bản PALINDR.INP gồm một dòng chứa xâu ký
tự s gồm không quá 255 ký tự.

TaiLieu.VN

Page 7


Kết quả: Đưa ra màn hình đồng thời ghi vào file văn bản
PALINDR.OUT:
- Dòng đầu tiên ghi k là số lượng ít nhất các palindrome trong biểu
diễn tìm được;
- Dòng thứ i trong số k dòng tiếp theo ghi palindrome pi (i = 1, 2, ...,
k) sao cho :
s = p1p2...pk.
Ví dụ
PALINDR.I
NP

PALINDR.O
UT

bobseesann 3
a
bob

PALINDR.IN PALINDR.O
P

UT
aabbaaaabb 2

sees

aa
bbaaaabb

anna

Ghi chú :
- Các tập tin bài làm phải đặt theo qui định BL1.PAS, BL2.PAS,
BL3.PAS, BL4.PAS;
- Đề thi có 03 trang;
- Giám thị không giải thích gì thêm.

TaiLieu.VN

Page 8


ĐỀ THI HỌC SINH GIỎI TỈNH
MÔN: TIN HỌC 9

ĐỀ SỐ 3

Thời gian: 120 phút

Bài 1: (6điểm). PHẦN TỬ YÊN NGỰA
Cho mảng hai chiều có kích thước MxN số nguyên. Phần tử A[I,j] được gọi là phần tử

yên ngựa nếu nó là phần tử nhỏ nhất trong hàng I đồng thời là phần tử lớn nhất trong cột
j.
Em hãy lập chương trình tìm phân tử yên ngựa của mảng A.
Dữ liệu vào: Cho file PTYN.INP gồm
- Dòng đầu tiên gồm hai số M,N ( 0 ≤ M; N



100)

- M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A.
(các giá trị cách nhau ít nhất 1 khoảng cách).
Dữ liệu ra: Ghi file PTYN.OUT vị trí của các phân tử yên ngựa (nếu có) hoặc dòng
thông báo “Không có phần tử yên ngựa”.
Ví dụ:
PTYN.INP

PTYN.OUT

33

(2,2)

15

3

9

55


4

6

76

1

2

Hoặc
TaiLieu.VN

Page 9


PTYN.INP

PTYN.OUT

33

Khong co phantu yen ngua

15

10 5

55


4

6

76

1

2

Bài 2: (7 điểm). TỔNG CÁC SỐ FIBONACI
Dãy Fibonaci là dãy gồm các số: 1; 1; 2; 3; 5; 8; … được xác định bởi công thức sau:
F1=1; F2=1; Fi=Fi-1+Fi-2 với i>2
Em hãy biểu diễn một số tự nhiên tành tổng ít nhất các số Fibonaci khác nhau.
Dữ liệu vào: Cho file FIBO.INP chứa số N (N ≤ 2000000000)
Dữ liệu ra: ghi vào file FIBO.OUT biễu diễn số N thành tổng ít nhất các số Fibonaci
khác nhau.

Ví dụ.
FIBO.INP
129

FIBO.OUT
129=89+34+5+1

Hoặc
FIBO.INP
8


FIBO.OUT
8=8

Bài 3. (7 điểm) CHỌN PHẦNTHƯỞNG
TaiLieu.VN

Page 10


Trong kỳ thi học sinh giỏi môn tin học, em là người đạt giải đặc biệt. Ban tổ chức cho
pép em chọn các phần thưởng cho mình. Các phần thưởng xếp thành một dãy dược đánh
dấu từ số 1 đấn số N (0 ≤ N ≤ 10000), phần thưởng thứ I có giáo trị là ai (1 ≤ ai ≤ 100). Em
được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng
liên tiếp nhau trong dãy.
Viết chương trình để máy tính hướng dẫn em chọn các phần thưởng sao cho tổng giá trị
các phần thưởng nhận được là lớn nhất.
Dữ liệu vào: cho file PTHUONG.INP gồm các dòng:
- Dòng đầu tiên là số phần thưởng N
- N dòng tiếp theo là giá trị của các phần thương.
Dữ liệu ra: ghi vào file PTHUONG.OUT gồm các dòng:
- Dòng đầu tiên ghi tổng giá trị lớn nhất của phần thưởng đã chọn.
- Dòng tiếp theo ghi vị trí của các phần thưởng đã chọn theo thứ tự tăng dần.
Ví dụ:
PTHUONG.INP PTHUONG.OUT
5

23

6


1245

9
1
3
5
Hoặc

PTHUONG.INP PTHUONG.OUT
TaiLieu.VN

Page 11


7

32

6

12467

9
1
3
5
10
4

TaiLieu.VN


Page 12


ĐỀ THI HỌC SINH GIỎI TỈNH

ĐỀ SỐ 4

MÔN: TIN HỌC 9
Thời gian: 150 phút

Lập trình để giải các bài toán sau đây bằng ngôn ngữ Pascal
Bài 1: (5 điểm)
a. Nhập một dãy số nguyên có n phần tử (0< n ≤ 100)
b. Sắp xếp dãy vừa nhập theo thứ tự tăng dần, in ra màn hình dãy đã sắp thứ tự
c. Tìm trên dãy đã sắp xếp có phần tử x hay không, với x được nhập từ bàn phím.
Bài 2: (7 điểm)
Cho đa thức bậc n: A = anxn + an-1xn-1 +…+ a1x + a0
Trong đó an, an-1,…a1,a0 là các hệ số nguyên có giá trị tuyệt đối không quá 100.
Biết rằng phương trình A = 0 nếu có nghiệm nguyên thì nghiệm nguyên đó chỉ có thể là
ước số của hệ số a0.
Yêu cầu: Hãy tìm tất cả các nghiệm nguyên (nếu có) của phương trình A = 0.
Dữ liệu vào từ file ‘INTROOT.INP’:
 Dòng đầu là số nguyên n (2≤n≤100)
 Dòng thứ 2 ghi n+1 số nguyên tương ứng là các hệ số a n, an-1,…a1,a0 của đa thức (các
số cách nhau ít nhất một khoảng trắng).
Kết quả ghi vào file ‘INTROOT.OUT’ mỗi dòng ghi 1 nghiệm tìm được (nếu không có
kết quả thì ghi ‘khong co’).
Ví dụ:
TaiLieu.VN


Page 13


INTROOT.INP INTROOT.OUT
4

-1

1 -1 0 -2 -4

2

(Giải thích: trong ví dụ trên thì phương trình x4-x3-2x-4=0 có 2 nghiệm nguyên là -1 và
2)
Hướng dẫn thêm: để tính biều thức A một cách hiệu quả nhất, người ta phân tích A thành
dạng như sau:
A = (…((anx + an-1)x + an-2)x + …)x +a1)x + a0

Bài 3: (8 điểm)
Kỳ thi học sinh giỏi năm học 2008-2009 của tỉnh Bà Rịa-Vũng Tàu có 8 đội tuyển dự thi
đến từ các huyện (TX, TP), số thứ tự các huyện được đánh số lần lượt từ 1 đến 8 là Vũng
Tàu, Bà Rịa, Tân Thành, Châu Đức, Xuyên Mộc, Đất Đỏ, Long Điền, Côn Đảo. Mỗi thí
sinh dự thi có một số báo danh duy nhất (là một số nguyên dương), mỗi đội tuyển của
huyện tối đa 90 thí sinh. Sau khi thi xong Sở Giáo dục- Đào tạo tổ chức cho các thí sinh
giao lưu với nhau, Ban tổ chức sắp xếp các thí sinh đứng thành một vòng tròn, để tạo
điều kiện cho các thí sinh trong tỉnh được giao lưu với nhau Ban tổ chức yêu cầu các thí
sinh cùng huyện không đứng gần nhau, các thí sinh thuộc 2 huyện có số thứ tự liền kề
cũng không được đứng gần nhau.
Yêu cầu: Hãy giúp Ban tổ chức chỉ ra một cách xếp thỏa mãn yêu cầu trên

Dữ liệu vào: file ‘pupil.inp’
Gồm có 8 dòng, dòng thứ i chứa các số báo danh của các thí sinh huyện thứ i, các số báo
danh cách nhau ít nhất một dấu cách.
Dữ liệu ra: file ‘pupil.out’
(Mô tả cách xếp n thí sinh theo yêu cầu trên một vòng tròn, ta có thể mô tả trên một
đường thẳng, trong đó thí sinh đầu và thí sinh cuối đứng gần nhau trên vòng tròn)
TaiLieu.VN

Page 14


Gồm n dòng (n là tổng số thí sinh), mỗi dòng là số báo danh của thí sinh. Trong trường
hợp không có cách nào thỏa mãn yêu cầu thì ghi là -1
Ví dụ
Pupil.inp

Pupil.out

123

1

456

22

789

16


10 11 12

7

13 14 15

17

16 17 18

23

19 20 21

2

22 23

18
8
3
9
10
4
11
5
12
6
13


TaiLieu.VN

Page 15


19
14
20
15
21

ĐỀ THI HỌC SINH GIỎI TỈNH

ĐỀ SỐ 5

MÔN: TIN HỌC 9
Thời gian: 120 phút

Bài 1. (3 điểm)
Viết chương trình nhập từ bàn phím hai số nguyên dương, mỗi số gồm ba chữ số và in chi
tiết kết quả phép nhân ra màn hình như ví dụ sau:
456
x
789
-----4104
3648
3192
TaiLieu.VN

Page 16



----------359784

Bài 2. (4 điểm)
Viết chương trình nhập vào từ bàn phím một số nguyên dương N (1<=N<=32766) và in
ra màn hình số lượng các ước số nguyên dương của N.
Ví dụ: - Nhập từ bàn phím: N=10
- In ra màn hình: So luong cac uoc so nguyen duong cua 10 la: 4

Bài 3. (4 điểm)
Viết chương trình tính giá trị của đa thức P(x)= a 0xn + a1xn-1 + a2xn-2 + ……+an-1x + an tại
x, trong đó n là số tự nhiên; a0, a1, ...an là các hệ số nguyên; x là số bất kỳ nhập từ bàn
phím
Ví dụ: Đa thức P(x) = x2 + 2x + 3 có giá trị bằng 2 tại x=-1

Bài 4. (4 điểm)
Viết chương trình nhập vào từ bàn phím một số nguyên dương n (n≤1000), sau đó tính và
in lên màn hình giá trị của T (kết quả lấy đến 6 chữ số thập phân):
T=

1 + 2 + .... + n

(có n dấu căn bậc hai)

Bài 5. (5 điểm)
Viết chương trình nhập từ bàn phím số nguyên dương n và dãy A gồm n số nguyên dương
A1, A2, ..., An (n≤255, Ai≤1000 với 1≤i≤n), sau đó tìm ước số chung lớn nhất của tất cả
các phần tử trong dãy A.
Ví dụ:

TaiLieu.VN

Page 17


-Nhập từ bàn phím:
5
12 6 9 21 18
- In ra màn hình: Uoc so chung lon nhat cua day la 3
ĐỀ THI HỌC SINH GIỎI TỈNH
MÔN: TIN HỌC 9

ĐỀ SỐ 6

Thời gian: 150 phút

Lập trình để giải các bài toán sau đây bằng ngôn ngữ Pascal :
Bài 1: (6 điểm) Xác định phần tử thứ n
Dãy số a0, a1, …, an xác định bằng quy nạp như sau :
a0 = 1
ai = i.ai-1

nếu i chẵn

ai = i+ai-1

nếu i lẻ

Yêu cầu : Xác định giá trị an.
Dữ liệu vào : file ‘Position.inp’ chứa duy nhất số nguyên n (1

Dữ liệu ra : file ‘Position.out’ chứa giá trị của an tìm được.
Ví dụ :
Position.inp

Position.out

10

16490

Bài 2: (8 điểm) Dãy con có tổng là S
Cho một dãy số nguyên có n phần tử a1, a2,…,an và số nguyên S.
TaiLieu.VN

Page 18


Yêu cầu: Hãy tìm một dãy con của dãy trên có tổng bằng S.
Dữ liệu vào từ file ‘Subarray.inp’:
 Dòng đầu là số nguyên dương n và số S (n≤20; S≤2*109).
 Dòng thứ hai là các phần tử của dãy (mỗi phần tử có phạm vi từ -108 đến 108).
Kết quả ghi vào file ‘Subarray.out’ dãy con tìm được. Nếu không có dãy con thỏa mãn thì
ghi ‘$’.
Ví dụ:
Subarray.inp

Subarray.out

49


54

7546

Bài 3: (6 điểm) Chụp hình lưu niệm
Kỳ thi học sinh giỏi năm học 2009-2010 của tỉnh Bà Rịa-Vũng Tàu có n thí sinh dự thi
đến từ các huyện (TX, TP) trong Tỉnh, các thí sinh dự thi được đánh số lần lượt từ 1 đến
n. Mỗi thí sinh chỉ tham gia dự thi 1 môn, có tất cả 9 môn thi được đánh số từ 1 đến 9.
Sau khi thi xong Sở Giáo dục- Đào tạo tổ chức cho các thí sinh chụp hình lưu niệm, Ban
tổ chức sắp xếp các thí sinh đứng thành một hàng ngang, để tạo điều kiện cho các thí sinh
được giao lưu với nhau Ban tổ chức yêu cầu các thí sinh cùng môn dự thi không đứng
gần nhau.
Yêu cầu: Hãy giúp Ban tổ chức chỉ ra một cách xếp thỏa mãn yêu cầu trên.
Dữ liệu vào: file ‘Pupil.inp’
- Có tất cả 9 dòng, dòng thứ i chứa các số thứ tự của các thí sinh dự thi môn thứ i, các số
thứ tự cách nhau ít nhất một dấu cách.
Dữ liệu ra: file ‘Pupil.out’
Một dòng chứa các số nguyên mô tả cách xếp các thí sinh theo hàng ngang thỏa mãn yêu
cầu.
TaiLieu.VN

Page 19


Ví dụ :
Pupil.inp

Pupil.out

12


1 3 2 4 5 7 6 8 9 11 10 12 13 15 14 17 16 18

34
56
78
9 10
11 12
13 14
15 16
17 18

TaiLieu.VN

Page 20


TaiLieu.VN

Page 21



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×