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

Đề thi HSG cấp huyện môn Tin học năm học 2010-2011

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

PHÒNG GD&ĐT HOÀI ÂN KỲ THI HSG MÔN TIN HỌC LỚP 9
NĂM HỌC 2010-2011
Thời gian: 150 phút (không kể thời gian giao đề)
YÊU CẦU CHUNG
Mỗi thí sinh lập một thư mục trên máy như sau: D:\THIHSG_L9\(số báo danh của thí
sinh) để lưu các file bài làm. (Bài 1 lưu thành file Bai1.pas, Bài 2 lưu Bai2.pas, Bài 3 lưu
Bai3.pas).
Em hãy lập trình bằng ngôn ngữ Pascal để giải các bài toán sau:
Bài 1: (6,0 điểm)
Viết chương trình nhập từ bàn phím vào số nguyên dương n
( )
100n ≤
, số nguyên
dương k và dãy A gồm n số nguyên dương (a1, a2, ,an) và thực hiện các công việc sau:
a) Tính tổng các số chẵn có trong dãy.
b) Tính tổng các phần tử có giá trị bằng k.
c) In ra màn hình dãy số A, tổng các số chẵn trong dãy, tổng các số trong dãy có giá trị
bằng k.
Bài 2 :(6,0 điểm)
Một số k được gọi là số chính phương khi và chỉ khi tồn tại một số nguyên x sao cho
x
2
= k.
Viết chương trình thực hiện các yêu cầu sau :
a. Nhập vào 2 số nguyên dương n, m lớn hơn hoặc bằng 2. Chương trình có kiểm
tra giá trị nhập vào.
b. Nhập vào một mảng hai chiều A các số nguyên dương gồm n hàng và m cột.
c. Tìm tất cả các số chính phương trong mảng ở câu b và lưu vào một mảng một
chiều.
d. In mảng một chiều chứa các số chính phương của mảng hai chiều A vừa tìm
được ở câu c. ra màn hình.


Bài 3:(8,0 điểm)
Cho hình chữ nhật ABCD có chiều dài AB là a (cm), chiều rộng AD là b (cm) với a, b
là các số nguyên dương không vượt quá 10000. Một điểm M trên đoạn BC, một điểm N
trên đoạn CD sao cho độ dài (tính bằng cm) các đoạn BM, CN bằng nhau và là số nguyên
không âm.
Yêu cầu:
1. Biết độ dài BM = x, tính diện tích hình chữ nhật ABCD và diện tích tam giác
MCN.
2.Tìm giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác AMN khi M, N thay đổi.
Dữ liệu vào: Dữ liệu của bài toán cho trong tệp tin DTICH.INP (tệp tin DTICH.INP đã
có sẵn trên thư mục chứa Turbo Pascan, thí sinh không cần tạo) gồm ba số a, b, x (x

b

a, x là độ dài BM trong yêu cầu 1 và là số nguyên dương) được ghi trên cùng một dòng
theo đúng thứ tự trên, hai số liên tiếp cách nhau một khoảng trắng.
Dữ liệu ra: Kết quả ghi ra file DTICH.OUT trên 5 dòng:
- Dòng đầu là ba số a, b và x.
- Dòng thứ hai là diện tích hình chữ nhật ABCD.
A
B
D
C
M
N
- Dòng thứ ba là diện tích tam giác MCN
- Dòng thứ tư là giá trị lớn nhất của diện tích tam giác AMN
- Dòng thứ năm là giá trị nhỏ nhất của diện tích tam giác AMN
(Các giá trị diện tích được ghi dưới dạng thập phân với 1 chữ số sau dấu phẩy).
Ví dụ:

DTICH.INP Kết quả trên màn hình (hoặc file DTICH.OUT)
10 6 2 10 6 2
60.0
4.0
30.0
17.5
Lưu ý: Nếu không nhập được dữ liệu vào từ file, thí sinh có thể nhập dữ liệu vào từ bàn
phím. Nếu không ghi được dữ liệu ra vào file DTICH.OUT thí sinh có thể xuất kết quả ra
màn hình (sẽ bị trừ điểm).
Đáp án
Chương trình mẫu (bai1.pas)
uses crt;
var n,k,tongchan,tongk,i:integer;
a:array[1 20] of integer;
Begin
clrscr;
Repeat
Write('Nhap n=');Readln(n);
Write('Nhap k=');Readln(k);
Until (n>0) and (k>0);
tongchan:=0;
tongk:=0;
for i:=1 to n do
Begin
write('a',i,'=');readln(a[i]);
if (a[i] mod 2 = 0) then tongchan:=tongchan+a[i];
if (a[i]=k) then tongk:=tongk+a[i];
end;
write('Day A:');
for i:=1 to n do

if i<n then write(a[i],', ') else write(a[i]);
writeln;
writeln('Tong chan la ',tongchan);
writeln('Tong cac phan tu có gia tri bang ’,k,’ la ',tongk);
readln;
End.
Chương trình mẫu (Bai2.pas).
uses Crt;
Var n,m,i,j,k:integer;
a:array[1 10,1 10] of integer;
b:array[1 100] of integer;
Begin
clrscr;
repeat
Write('Nhap n=');readln(n);
Write('Nhap m=');readln(m);
until (n>1) and (m>1);
k:=0;
for i:=1 to n do
for j:=1 to m do
Begin
write('Nhap a[',i,',',j,']=');readln(a[i,j]);
if sqrt(a[i,j])=int(sqrt(a[i,j])) then
begin
k:=k+1;
b[k]:=a[i,j];
end;
End;
writeln('Cac so chinh phuong cua mang da cho la:');
for i:=1 to k do write(b[i]:4);

readln;
End.
Chương trình mẫu.
1. Dữ liệu vào được nhập từ file dtich.inp
a/ Dữ liệu ra được ghi vào file dtich.out (Bai3_1a.pas)
var a,b,x:integer;
min, max,s,s1,s2:real;
f,g: text;
begin
Assign(f,'dtich.inp');
reset(f);
readln(f,a,b,x);
close(f);
if (a<0) or (b<0) or (a<b) or (b<x) then
Begin
write(‘File du lieu nhap sai’);
Readln ;
Halt ;
End ;
Assign(g,’dtich.out’);
Rewrite(g);
writeln(g,a:4,b:4,x:4);
s1:=a*b; s2:=x*(b-x)/2;
min:=s1/2; max:=s1/2;
for x:=1 to b do
begin
s:=s1 - (a*x + x*(b-x) + b*(a-x))/2;
if min>s then min:=s;
if max<s then max:=s;
end;

writeln(g,s1:12:1);writeln(g,s2:12:1);
writeln(g,max:12:1);writeln(g,min:12:1);
writeln(a:4,b:4,x:4);
writeln(s1:12:1);writeln(s2:12:1);
writeln(max:12:1);writeln(min:12:1);
writeln(‘Ngoai ra du lieu duoc luu trong file dtich.out’)
readln;
end.
b/ Dữ liệu ra được in ra màn hình (Bai3_1b.pas)
var a,b,x:integer;
min, max,s,s1,s2:real;
f,g: text;
begin
Assign(f,'dientich.inp');
reset(f);
readln(f,a,b,x);
close(f);
Assign(g,’dientich.out’);
Rewrite(g);
writeln(a,’ ‘,b,’ ‘,x);
s1:=a*b; s2:=x*(b-x)/2;
min:=s1/2; max:=s1/2;
for x:=1 to b do
begin
s:=s1 - (a*x + x*(b-x) + b*(a-x))/2;
if min>s then min:=s;
if max<s then max:=s;
end;
writeln(s1:12:1);writeln(s2:12:1);
writeln(max:12:1);writeln(min:12:1);

readln;
end.
2. Dữ liệu vào được nhập từ bàn phím (Bai3_2.pas).
Uses Crt;
var a,b,x:integer;
min, max,s,s1,s2:real;
begin
clrscr;
Repeat
write(‘Nhap a:’); readln(a);
write(‘Nhap b:’); readln(b);
write(‘Nhap a:’); readln(x);
clrscr;
until (x<=b) and (b<=a);
writeln(a:4,b:4,x:4);
s1:=a*b; s2:=x*(b-x)/2;
min:=s1/2; max:=s1/2;
for x:=1 to b do
begin
s:=s1 - (a*x + x*(b-x) + b*(a-x))/2;
if min>s then min:=s;
if max<s then max:=s;
end;
writeln(s1:12:1);writeln(s2:12:1);
writeln(max:12:1);writeln(min:12:1);
readln;
end.
TEST Kết quả trên màn hình (hoặc file DTICH.OUT)
DTICH1.INP
10 6 2

10 6 2
60.0
4.0
30.0
17.5
DTICH2.INP
20 10 5
20 10 5
200.0
12.5
100.0
50.0
DTICH3.INP
30 15 8
30 15 8
450.0
28.0
225.0
112.5

×