Diễn đàn tin học Văn Lang - Vạn Ninh
Chào mừng bạn đến với Diễn đàn Tin học Văn Lang - Vạn Ninh của chúng tôi !
Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây !
Thân ái !

Diễn đàn tin học Văn Lang - Vạn Ninh

Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
 
Trang ChínhCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 Đề thi HSG TP.Huế

Go down 
Tác giảThông điệp
Admin
Admin
avatar

Posts : 115
Danh tiếng : 5
Join date : 10/11/2014
Age : 16

Bài gửiTiêu đề: Đề thi HSG TP.Huế   15/1/2015, 23:06

KỲ THI HỌC SINH GIỎI THCS
NĂM HỌC 2003 – 2004
MÔN: TIN HỌC


ĐỀ HỌC SINH GIỎI MÔN TIN HỌC THCS – NĂM HỌC 2003-2004
KỲ THI NGÀY 20/2/2004


BÀI 1 : BÀI TOÁN DIỆN TÍCH TAM GIÁC
Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số nguyên dương trong khoảng [1, 100]
Một điểm M chạy trong đoạn BC với BM=x . x là số nguyên duơng trong khoảng [0, b], một điểm N chạy trong đoạn CD với CN=x

Tính 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 lưu động.


Dữ liệu vào: Được cho trong tập tin CHUNHAT.inp, gồm một dòng ghi hai số nguyên dương lần lượt là a, b. Hai số cách nhau một khoảng trắng
Dữ liệu ra : Yêu cầu xuất ra tập tin CHUNHAT.out, gồm bốn dòng:
+ Dòng đầu là giá trị lớn nhất của diện tích tam giác AMN (một chữ số thập phân)
+ Dòng thứ hai là một giá trị của x để diện tích tam giác AMN đạt giá trị lớn nhất
+ Dòng thứ ba là giá trị nhỏ nhất của diện tích tam giác AMN (một chữ số thập phân)
+ Dòng thứ tư là một giá trị của x để diện tích tam giác AMN đạt giá trị nhỏ nhất
Ví dụ:
CHUNHAT.inp
10 6
CHUNHAT.out

30.0
0
17.5
5

Yêu cầu kỹ thuật :
+ Có kiểm tra dữ liệu nhập
+ Bài làm của thí sinh lưu trên tập tin Bailam1.pas

BÀI 2: BÀI TOÁN Ô VUÔNG

Cho một bảng chữ nhật gồm m x n điểm ( m hàng ngang, n hàng đứng) nằm trên các mắt lưới ô vuông. Các điểm liền kề trên cùng một hàng hoặc một cột có thể có nối với nhau bởi một đoạn thẳng có kích thước bằng 1.
Trên mỗi hàng có nhiều nhất n-1 đoạn thẳng nằm ngang nối các điểm liền nhau, trên mỗi cột có nhiều nhất là m-1 đoạn thẳng thẳng đứng nối các điểm liền nhau. Các đoạn liền kề nhau có thể sẽ tạo ra các ô vuông trên bảng (chỉ quan tâm các ô vuông có độ dài cạnh bằng 1). Xem hình dưới:





Với bảng trên ta có 4 hàng ngang (mỗi hàng 5 điểm) và 5 hàng đứng (mỗi hàng 4 điểm). Các đoạn thẳng nối chúng tạo nên 3 ô vuông.
Để mô tả bảng người ta dùng hai mảng nhị phân: một mảng diễn tả các đoạn thẳng nằm ngang, một mảng diễn tả các đoạn thẳng thẳng đứng.
Trong các mảng, số 1 diễn tả có đoạn thẳng nối hai điểm liên tiếp, số 0 diễn tả không có đoạn thẳng nối hai điểm.
Trong hình vẽ trên, (bảng có 4x5 điểm) thì ta có hai mảng sau:
Ngang Dọc






Nhiệm vụ :
Lập trình đếm số các ô vuông có cạnh dộ dài bằng 1 tạo bởi các đoạn nối có trên bảng đã cho.
Dữ liệu vào: gồm ba tập tin
Kthuoc.inp: gồm 2 số nguyên dương (nhỏ hơn 100) lần lượt là m, n. Hai số cách nhau một khoảng trắng
Ngang.inp và Doc.inp ( như mô tả ở phần trên). Hai số liền nhau cách nhau một khoảng trắng.
Dữ liệu ra : Xuất ra màn hình số ô vuông có trên bảng đã cho.
Ví dụ :
Kthuoc.inp:
4 5
Ngang.inp và Doc.inp chứa nội dung như hai bảng trên.
Xuất ra màn hình : 3
Lưu ý: Chỉ tính các ô vuông có độ dài cạnh bằng 1
Yêu cầu kỹ thuật :
+ Không cần kiểm tra dữ liệu nhập
+ Bài làm của thí sinh lưu trên tập tin Bailam2.pas

HẾT

MỘT SỐ BỘ TEST THAM KHẢO
Bài 1.

CHUNHAT.INP CHUNHAT.OUT
Test 1 10 20 Sai dữ liệu
Test 2 40 40 800.0
0 (hay 40)
600.0
20
Test 3 10 6 30.0
0
17.5
5
Test 4 20 10 100.0
0
50.0
10
Test 5 20 6 60.0
0
18.0
6

Bài 2.

DOC.INP KTHUOC.INP NGANG.INP XUAT
Test 1
1 1 1 1 1 1 1
1 1 0 0 0 1 1
1 1 0 0 1 1 1
1 1 1 1 1 1 1 5 7 1 1 1 1 1 1
1 1 0 0 1 1
1 1 0 0 1 1
1 1 0 0 1 1
1 1 1 1 1 1 13
Test 2
1 1 1 0 0
1 1 0 0 0
0 1 1 0 0 4 5 1 0 1 0
1 0 0 0
1 1 1 1
0 1 0 0 3
Test 3
0 0 1 0 0 0
0 0 1 0 0 0
0 0 1 0 0 0
0 0 1 0 0 0
0 0 1 0 0 0 6 6 0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0 0
Test 4
1 0 1 1 0
1 0 1 0 1
0 1 1 0 1
1 1 0 1 1 5 5 1 1 0 1
0 0 1 1
1 1 1 1
1 0 1 0
1 1 1 1 1



THAM KHẢO MỘT SỐ BÀI LÀM HAY

BÀI 1.
program bailam1;
uses crt;
const finp='chunhat.inp';
fout='chunhat.out';
var i,j,a,b,s,luu,luu1:longint;
max,min,dt:real;
f,g:text;
procedure nhap;
begin
{$i-}
assign(f,finp); reset(f);
close(f);
if (IOresult<>0) then
begin
write('File bi hu hoac khong ton tai');
readln;
halt;
end;
assign(f,finp); reset(f);
readln(f,a,b);
if (IOresult<>0) or (a<1) or (b<1) or (a<b) or (a>100) or (b>100) then
begin
write('Nhap sai');
readln; halt;
end;
{$i+}
close(f);
end;
begin
clrscr;
nhap;
s:=a*b;
max:=s/2; min:=max;
for i:=0 to b do
begin
dt:=s-(a*i)/2-((b-i)*i)/2-((a-i)*b)/2;
if dt<min then
begin
luu:=i; min:=dt;
end;
if dt>max then
begin
max:=dt; luu1:=i;
end;
end;
assign(g,fout); rewrite(g);
writeln(g,max:0:1);
writeln(g,luu1);
writeln(g,min:0:1);
writeln(g,luu);
close(g);
writeln(max:0:1);
writeln(luu1);
writeln(min:0:1);
writeln(luu);
writeln(' Ngoai ra ket qua con duoc xuat vao file CHUNHAT.out');
delay(300);
end.


BÀI 2.
program bailam2;
uses crt;
const fin1='kthuoc.inp';
fin2='ngang.inp';
fin3='doc.inp';
var f1,f2,f3:text;
a,nga,doc:array[1..100,1..100] of integer;
i,m,n,d,j:integer;
procedure nhap;
var i,j:integer;
begin
assign(f1,fin1); reset(f1);
read(f1,m,n); close(f1);
assign(f2,fin2); reset(f2);
for i:=1 to m do
begin
for j:=1 to n-1 do
read(f2,nga[i,j]);
readln(f2);
end;
close(f2);
assign(f3,fin3); reset(f3);
for i:=1 to m-1 do
begin
for j:=1 to n do
read(f3,doc[i,j]);
readln(f3);
end;
end;
begin
clrscr;
nhap; d:=0;
for i:=1 to m do
for j:=1 to n do
if nga[i,j]+nga[i+1,j]+doc[i,j]+doc[i,j+1]=4 then inc(d);
write(d);
readln;
end.
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
 
Đề thi HSG TP.Huế
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Văn Lang - Vạn Ninh :: Các bộ đề thi-
Chuyển đến