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

Bài giảng ĐỂ THI HỌC SINH GIỎI HUYẾN THCS

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 (119.93 KB, 3 trang )

PHÒNG GD&ĐT
HẢI LĂNG
ĐỀ THI CHỌN HSG CẤP HUYỆN NĂM HỌC 2008 – 2009
Khóa ngày 22 tháng 5 năm 2009.
Môn thi: TIN HỌC
Thời gian: 120 phút (không kể thời gian giao đề)
TỔNG QUAN BÀI THI
Tên bài Tên chương trình Dữ liệu vào Kết quả
BÀI 1 Cạnh tam giác TAMGIAC Bàn phím Màn hình
BÀI 2 Chuẩn hóa xâu CH_XAU Bàn phím Màn hình
BÀI 3 Dãy lớn nhất DAYMAX Bàn phím Màn hình
Em hãy dùng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau:
Bài 1: Cạnh tam giác (3 điểm)
Nhập vào ba số dương, kiểm tra xem chúng có thỏa mãn là ba cạnh của tam
giác hay không? Nếu thỏa mãn thì kiểm tra xem đó là tam giác gì? (tam giác thường,
cân hay đều). Tính diện tích tam giác đó theo công thức: dt = (p(p-a)(p-b)(p-c)); với
p bằng nữa chu vi.
Bài 2: Chuẩn hóa xâu (4 điểm)
Nhập vào một câu (xâu ký tự); chuẩn hóa câu đó (nghĩa là đầu và cuối câu
không có ký tự trống, giữa các từ cách nhau chỉ đúng một ký tự trống). Đếm xem câu
đó có mấy từ?
Ví dụ: INPUT (nhập vào): “ cong cha nhu nui Thai Son ”
OUTPUT (in ra): “cong cha nhu nui Thai Son”
Cau nay co: 6 tu (câu này có 6 từ)
Bài 3: Dãy lớn nhất (3 điểm)
Nhập một dãy số nguyên và lưu trong một mảng. Không dùng mảng trung gian
hãy in ra màn hình dãy con tăng nghiêm ngặt (phần tử sau phải lớn hơn phần tử
trước) có tổng giá trị các phần tử lớn nhất.
Ví dụ: INPUT (nhập vào): 1 3 2 8 10 12 7 29 6 3
OUTPUT (in ra): 7 29
…………………………….. HẾT ………………………………


(Cán bộ coi thi không giải thích gì thêm!)
ĐỀ CHÍNH THỨC
PHÒNG GD&ĐT
HẢI LĂNG
ĐỀ THI CHỌN HSG CẤP HUYỆN NĂM HỌC 2008 – 2009
Khóa ngày 22 tháng 5 năm 2009.
Môn thi: TIN HỌC
Thời gian: 120 phút (không kể thời gian giao đề)
ĐÁP ÁN – HƯỚNG DẪN CHẤM:
Bài 1: Cạnh tam giác (3 điểm)
Có thể đưa ra chương trình như sau:
CHƯƠNG TRÌNH THANG ĐIỂM
Program TAMGIAC;
Var a, b, c: Real;
p, dt: Real;
Begin
Write('Nhap vao 3 so:'); Readln(a, b, c);
If (a+b>c) and(b+c>a) and(a+c>b)then
Begin
If (a=b) and(b=c) then
Writeln('TAM GIAC DEU') Else
If (a=b)or(b=c)or(a=c) then
Writeln('TAM GIAC CAN') Else
Writeln('TAM GIAC THUONG');
p:=(a+b+c)/2;
dt:= sqrt(p*(p-a)*(p-b)*(p-c));
Write(' Dien tich cua tam giac la:', dt:10:2);
End Else
Writeln('Khong thoa man 3 canh tam giac!!');
Readln;

End.
+ Khai báo đúng, đủ biến và
lệnh nhập dữ liệu: 0.5 điểm
+ Đưa ra đúng điều kiện thỏa
mản 3 cạnh tam giác: 0.5
điểm
+ Đưa ra đúng điều kiện thỏa
mản 3 cạnh tam giác: 0.5
điểm
+ Đưa ra đúng điều kiện thỏa
mản tam giác đều: 0.5 điểm
+ Đưa ra đúng điều kiện thỏa
mản tam giác cân: 0.5 điểm
+ Tính đúng diện tích: 0.5
điểm
Bài 2: Chuẩn hóa xâu (4 điểm)
Có thể đưa ra chương trình như sau:
CHƯƠNG TRÌNH THANG ĐIỂM
Program CH_XAU;
Var st: string; i, dem: integer;
Begin
Write('Nhap xau:'); Readln(st);
Writeln('Xau truoc khi chuan hoa la:', st);
While st[1]=' ' do Delete(st,1,1);
While st[length(st)]=' ' do Delete(st,length(st),1);
For i:=1 to length(st) do
If st[i]=' ' then
While st[i+1]=' ' do Delete(st,i+1,1);
Write('Xau chuan hoa la:', st);
+ Khai báo đúng, đủ biến và

lệnh nhập dữ liệu: 0.5 điểm
+ Xóa được tất cả các ký tự
trống đầu: 0.5 điểm
+ Xóa được tất cả các ký tự
trống cuối: 0.5 điểm
+ Xóa được tất cả các ký tự
trống ở giữa và chỉ để lại
một: 1.5 điểm.
+ Đếm đúng số từ: 1 điểm
For i:=1 to length(st) do
If st[i]=' ' then dem:=dem+1;
Writeln('= cau nay co ',dem+1, ' tu!!!');
Readln;
End.
Bài 3: Dãy lớn nhất (3 điểm)
Có thể đưa ra chương trình như sau:
CHƯƠNG TRÌNH THANG ĐIỂM
Program DAYMAX;
Var a:array[1..100] of integer;
spt,i, vt, max, n, tong: integer;
Begin
Write('Nhap so pt cua mang:'); Readln(spt);
For i:=1 to spt do
Begin
Write('A[',i,']='); Readln(a[i]);
End;
Write('Mang so da cho ban dau:');
For i:=1 to spt do Write(a[i]:3);
Writeln;
vt:=1; max:=a[1]; n:=1; tong:=a[1];

For i:=2 to spt do
Begin
If(a[i]>a[i-1]) then tong:=tong+a[i];
If(a[i]<=a[i-1]) or(i=spt) then
Begin
If tong>max then
Begin
max:=tong; vt:=n;
End;
n:=i; tong:=a[i];
End;
End;
Writeln(' Day con co tong lon nhat la:');
i:=vt;
Repeat
Write(a[i]:3); max:=max-a[i]; i:=i+1;
Until max=0;
Readln;
End.
+ Khai báo đúng, đủ biến và
lệnh nhập dữ liệu: 0.5 điểm
+ Có in ra mảng trước và dãy
cần tìm: 0.5 điểm
+ Nếu chương trình không
đúng nhưng có ý tưởng tốt thì
cho tổng cộng 1 điểm.

×