<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>ĐỀ THI HỌC SINH GIỎI TIN HỌC 9– VÒNG 3</b>
<b>TH</b>
<b>ỜI GIAN: 150 PHÚT</b>
<b>NGÀY THI: 13/10/2008</b>
1.
Viết chương trình tìm các vị trí xuất hiện chuổi S1 trong chuổi S? (6
đ
)
<b>Dữ liệu vào:</b>
Chuổi s và chuổi s1.
<b>Kết quả ra:</b>
Các v
ị trí tìm thấ
y s1 trong s.
Ví dụ:
Input
Output
Test 1
‘aaahocjhochoc’
‘hoc’
4 8 11
Test 2
‘adddddee’
‘dd’
2 3 4 5
Tên tập tin:D:\thi\vong3\timchuoi.pas
2.
Nhập vào một chuổi sau đó xuất ra (các)từ dài nhất trong chuổi? (6Đ)
<b>Dữ liệu vào:</b>
Một chuổi.
<b>Kết quả ra:</b>
Các từ dài nhất trong chuổi.
Ví dụ:
Input
Output
Test 1
Tran Nguyen dao
Nguyen
Test 2
Tran quang dao bgggg
quang
bgggg
Tên tập tin:D:\thi\vong3\Tu-max.pas
3.
Bờm và cuội là 2 học sinh rất giỏi tin học và thường liên lạc với nhau bằng thư điện tử
(Email). Nhưng những bức thư mà hai bạn gởi cho nhau chỉ toàn là dãy những chữ số liền nhau. Cả
hai bạn đều có chương trình mã hố các con số thành những ký tự và ngược lại giải mã các con số
thành ký tự, theo qui định hai bạn sẽ chuyển những ký tự mình định gởi thành các con số là thứ tự
của ký tự đó trong bảng mã ASCII (ví dụ : A:65; B:66) từ chữ thường máy chuyển thành chữ hoa rồi
mã hoá thành các con số.(ví dụ: a
A
65, b
B
66). Sau khi mã hố sẽ chuyển thư đi. Người
nhận có chương trình để giải mã các con số thành những ký tự in hoa (vdụ: 6566326768
AB CD).
Em hãy viết
a.
Chương trình 1 (d:\thi\vong3\MAHOA.pas) để mã hố 1 xâu ký tự thành các chữ số.
(4Đ)
Ví dụ:
Input
Output
Di an che?
68733265783267726963
b.
Chương trình 2 (d:\thi\vong3\GIAIMA.PAS) để giải mã 1 chuổi số thành các ký tự.
(4Đ)
Ví dụ:
Input
Output
79326865853286658963
O dau vay?
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>ĐÁP ÁN VÒNG 3 -</b>
<b>NGÀY THI: 13/10/2008</b>
1. Timchuoi.pas
var s,s1:string;
begin
readln(s);
readln(s1);
while pos(s1,s)>0 then
begin
write(pos(s1,s):4);
s[pos(s1,s)]:=chr(1);
end;
readln;
end.
2. Tu-max.pas
var s,s1:string;
a:array[1..128]of string;
i,j,max:integer;
begin
readln(s);
while s[1]=#32 do delete(s,1,1);
while s[length(s)]=#32 do delete(s,length(s),1);
while pos(#32#32,s)>0 do delete(s,pos(#32#32,s),1);
j:=1;
for i:=1 to length(s) do
begin
if s[i]<>#32 then a[j]:=a[j]+s[i]
else inc(j);
end;
max:=length(a[1]);
for i:=1 to j do
if length(a[i])>max then max:=length(a[i]);
writeln('(cac) tu dai nhat: (co ',max,' ky tu:)');
for i:=1 to j do
if length(a[i])=max then writeln(a[i]);
readln;
end.
3. 2 chuong trinh
a. Mahoa.pas
uses crt;
var s:string;
i:integer;
begin
clrscr;
writeln('Nhap chuoi can ma hoa:');
readln(s);
writeln('Ma hoa thanh cac con so la:');
for i:=1 to length(s) do
begin
s[i]:=upcase(s[i]);
write(ord(s[i]));
end;
readln;
end.
b. Giaima.pas
uses crt;
var s,s2:string;
ch:char;
i,x,d:integer;
begin
clrscr;
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
writeln('Giai ma chuoi so tren la:');
while length(s)>0 do
begin
s2:=copy(s,1,2); {lay moi lan 2 ky tu dau tien}
delete(s,1,2); {xoa 2 ky tu da lay di}
val(s2,x,i); {chuyen thanh so x}
write(chr(x)); {chuyen thanh ma asscii}
end;
</div>
<!--links-->