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

Download đề và đáp án thi học sinh giỏi môn tin học lớp 11 năm học 2005 2006 tỉnh quảng bình (vòng 1)

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 (94.59 KB, 6 trang )

Sở giáo dục và đào tạo
quảng bình
SBD:

Kỳ thi chọn hSG lớp 11
Năm học 2005-2006
Môn: Tin học
Thời gian: 180 phút, không kề thời gian giao đề
Đề ra

Sử dụng ngôn ngữ lập trình Turbo Pascal để lập trình giải các bài toán sau:
Câu 1: (2.5 điểm) Tổng giá trị các phần tử trong một ma trận - SUM.PAS
Cho một ma trận A gồm M dòng N cột. Dòng đợc đánh số từ 1 đến M từ
trên xuống dới. Cột đợc đánh số từ 1 đến N từ trái qua phải. Mỗi phần tử của ma
trận có giá trị nguyên. Hãy tính tổng giá trị các phần tử có chỉ số dòng chẵn và
chỉ số cột lẽ.
Dữ liệu vào: Cho trong file SUM.INP có cấu trúc nh sau:
-Dòng 1: Ghi hai giá trị M N, là số dòng và số cột của ma trận, các số ghi cách
nhau một dấu cách.
(2<=M, N<=100)
-M dòng tiếp theo: mỗi dòng ghi N số nguyên x, là các giá trị của các phần tử
trên một dòng của ma trận, các số ghi cách nhau một dấu cách.
(-1000 <=x<=1000)
Dữ liệu ra: Ghi ra file SUM.OUT theo cấu trúc nh sau:
-Dòng 1: Ghi một số S, là tổng tìm đợc.
Ví dụ:
SUM.INP
SUM.OUT
4 5
31
2 4 1 5 7


2 2 8 3 5
1 7 4 8 0
9 6 4 7 3
Câu 2: (3.5 điểm) Số nguyên tố NT.PAS
Tìm tất cả các số tự nhiên X có ba chữ số sao cho khi đảo ngợc trật tự các
chữ số của X ta sẽ thu đợc một số nguyên Y mà X và Y là hai số nguyên tố cùng
nhau.
Ví dụ:
X=122 và Y= 221
Dữ liệu ra: Ghi ra file NT.OUT theo cấu trúc nh sau:
-Dòng 1: Ghi số nguyên dơng N, là số lợng số X tìm đợc.
-Dòng 2: Ghi N số tìm đợc. Các số ghi cách nhau một dấu cách.
Câu 3: (4.0 điểm) Sắp xếp xâu STR.PAS
Cho một xâu mẫu S gồm N ký tự đợc lấy từ tập các ký tự A...Z. Với
một cặp số nguyên (i,j) (1<=i,j<=N), ta tạo ra một xâu thứ cấp S bằng cách đổi
chỗ phần tử thứ i với phần tử thứ j của xâu mẫu S. Với M cặp số (i,j) ta sẽ thu đợc M xâu thứ cấp.
Yêu cầu: Sắp xếp các xâu thứ cấp tăng dần theo thứ tự từ điển.
Dữ liệu vào: Cho trong file STR.INP có cấu trúc nh sau:
-Dòng 1: Ghi giá trị N, là số ký tự của xâu S (1<=N<=500)


-Dòng 2: Ghi xâu mẫu S.
-Dòng 3: Ghi giá trị M, là số lợng các cặp số (i, j) (1<=M<=500)
-M dòng tiếp theo: mỗi dòng ghi một cặp số i j lần lợt là chỉ số của phần tử thứ
i và chỉ số của phần tử thứ j cần đổi chỗ của xâu S. Hai số ghi cách nhau một dấu
cách.
Dữ liệu ra: Ghi ra file STR.OUT theo cấu trúc nh sau:
-M dòng: Mỗi dòng ghi một xâu thứ cấp, các dòng đợc sắp tăng dần theo thứ tự
từ điển.
Ví dụ:

STR.INP
STR.OUT
5
ABCDA
ABCDA
ABCDA
3
ADCBA
2 4
1 5
3 3

Hớng dẫn chấm thi học sinh giỏi toàn tỉnh
lớp 11 năm học 2005-2006
I/ Phơng pháp chung
- Giám khảo tạo các bộ dữ liệu vào, tính toán kết quả. Thực hiện chơng trình của
học sinh và so sánh kết quả.
- Giám khảo có thể sử dụng chơng trình mẫu để tính kết quả của dữ liệu vào:
SUM.PAS NT.PAS STR.PAS
- Chơng trình học sinh chạy đúng mỗi bộ test, giám khảo cho 0.5 điểm. Nh vậy,
nếu câu hỏi có 3 điểm thì giám khảo phải tạo đợc 6 bộ test.
- Nếu chơng trình chạy sai test nào thì giám khảo cho 0 điểm đối với test đó.
- Giám khảo có thể sử dụng các test gợi ý dới đây nếu cần thiết.
II/ Chơng trình mẫu
SUM.PAS
{$r+}
const

fi='Sum.in2';
fo='sum.ou2';

nn=100;mm=100;
type mhci=array[1..mm,1..nn] of integer;
var a:mhci;
m,n:byte;


s:longint;
procedure doc;
var f:text; i,j:byte;
begin
assign(f,fi);reset(f);
readln(f,m,n);
for i:=1 to m do
begin
for j:=1 to n do read(f,a[i,j]);
readln(f);
end;
close(f);
end;
procedure xl;
var i,j:byte;
begin
s:=0;
for i:=1 to m do
begin
for j:=1 to n do
if (i mod 2=0) and (j mod 2=1) then s:=s+a[i,j];
end;
end;
procedure xuat;

var i,j:byte; f:text;
begin
assign(f,fo); rewrite(f);
writeln(f,s);
close(f);
end;
begin
doc;
xl;
xuat;
readln;
end.

NT.PAS
const

fo='NT.OUT';
nn=901;
type mmcw=array[0..901] of word;
var n:word;
s:mmcw;
function uscln(a,b:word):word;
var r:word;
begin
while b>0 do
begin
r:=a mod b;
a:=b;
b:=r;
uscln:=a;

end;
function dao(x:word):word;
var y:word;
begin
y:=0;
while x>0 do
begin
y:=10*y+(x mod 10);
x:=x div 10;
dao:=y;
end;

end;

end;


function tim:word;
var x,d:word;
begin
d:=0;
for x:=100 to 999 do
if uscln(x,dao(x))=1 then
begin
d:=d+1;
s[d]:=x;
tim:=d;
end;
procedure xuat;
var f:text; i:word;

begin
n:=tim;
assign(f,fo);rewrite(f);
writeln(f,n);
for i:=1 to n do write(f,s[i],' ');
close(f);
end;
begin
xuat; end.

STR.PAS

{$r+}
program sap_xau;
const
fi='str.in5';
fo='str.ou5';
type
mmcc=array[1..500] of char;
mmci=array[1..500] of integer;
var
d,s,b,c,tg1:mmcc;
l,r:mmci;
n,m:integer;
f:text;
procedure nhap;
var i,j:integer;
begin
assign(f,fi); reset(f);
readln(f,n);

for i:=1 to n do read(f,s[i]);
readln(f);
readln(f,m);
for i:=1 to m do readln(f,l[i],r[i]);
close(f);
end;
procedure doicho(var x,y:char);
var
tg:char;
begin
tg:=x;
x:=y;
y:=tg;
end;
procedure xl;
var i,j,k,tg:integer;
begin
for i:=1 to m-1 do
begin
b:=s;
doicho(b[l[i]],b[r[i]]);
for j:=i+1 to m do
begin
c:=s;
doicho(c[l[j]],c[r[j]]);

end;


for k:=1 to n do

begin
if b[k]>c[k] then
begin
tg:=l[i];l[i]:=l[j];l[j]:=tg;
tg:=r[i];r[i]:=r[j];r[j]:=tg;
tg1:=b;b:=c;c:=tg1;
break;
end;
if b[k]end;

end;
begin

end;
end;
assign(f,fo);
rewrite(f);
for i:=1 to m do
begin
d:=s;
doicho(d[l[i]],d[r[i]]);
for j:=1 to n do write(f,d[j]);
writeln(f);
end;
close(f);
nhap;

xl;


end.

III/ Mét sè test gîi ý.
SUM.INP
5
2
2
1
9
8
6
2
2
1
9
8
3

5
4 1 5
2 8 3
7 4 8
6 4 7
5 3 2
5
4 1 5
2 8 3
7 4 8
6 4 7
5 3 2

-1 -2

SUM.OUT
31

7
5
0
3
7

28

7
5
0
3
7
-3 -4

STR.INP
9
ABCDEFGKK
5
5 7
7 6
4 5
8 6
7 5
14

ABCDEFGKKKHJHB
5
4 7
3 9
8 10
7 2

STR.OUT
ABCDEGFKK
ABCDEKGFK
ABCDGFEKK
ABCDGFEKK
ABCEDFGKK

ABCDEFGKKKHJHB
ABCGEFDKKKHJHB
ABGDEFCKKKHJHB
ABKDEFGKCKHJHB
AGCDEFBKKKHJHB


3 7
17
ABCDEFGKJNKKKHJHB
6
1 1
14 1
9 2
1 7
11 4

7 11
20
ABCDEFGKJNKKKHJKLJHB
6
9 3
11 18
11 5
6 9
8 4
1 16

ABCDEFGKJNKKKHJHB
ABCDEFKKJNGKKHJHB
ABCKEFGKJNDKKHJHB
AJCDEFGKBNKKKHJHB
GBCDEFAKJNKKKHJHB
HBCDEFGKJNKKKAJHB

ABCDEFGKJNJKKHJKLKHB
ABCDEJGKFNKKKHJKLJHB
ABCDKFGKJNEKKHJKLJHB
ABCKEFGDJNKKKHJKLJHB
ABJDEFGKCNKKKHJKLJHB
KBCDEFGKJNKKKHJALJHB

Tài liệu tham khảo:
Ngôn ngữ lập trình Pascal-Quách Tuấn Ngọc
Bài tập lập trình Pascal-Kiều Văn Hng




×