De thi HSG Huyen Pascal

3 34 0
De thi HSG Huyen Pascal

Đang tải... (xem toàn văn)

Thông tin tài liệu

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[r]

(1)

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 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 Cạnh tam giác TAMGIAC Bàn phím Màn hình

BÀI Chuẩn hóa xâu CH_XAU Bàn phím Màn hình

BÀI Dãy lớn DAYMAX Bàn phím Màn hình

Em dùng ngơn ngữ lập trình Pascal để lập trình giải tố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 ba cạnh tam giác hay khơng? Nếu thỏa mãn kiểm tra xem 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 chu vi.

Bài 2: Chuẩn hóa xâu (4 điểm)

Nhập vào câu (xâu ký tự); chuẩn hóa câu (nghĩa đầu cuối câu khơng có ký tự trống, từ cách ký tự trống) Đếm xem câu có từ?

Ví dụ: INPUT (nhập vào): “ cong cha nhu nui Thai Son ” OUTPUT (in ra): “cong cha nhu nui Thai Son”

Cau co: tu (câu có từ) Bài 3: Dãy lớn (3 điểm)

Nhập dãy số nguyên lưu mảng Không dùng mảng trung gian hãy in hình dãy tăng nghiêm ngặt (phần tử sau phải lớn phần tử trước) có tổng giá trị phần tử lớn nhất.

Ví dụ: INPUT (nhập vào): 10 12 29 OUTPUT (in ra): 29

……… HẾT ………

(Cán coi thi khơng giải thích thêm!)

(2)

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 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 chương trình sau:

CHƯƠNG TRÌNH THANG ĐIỂM

Program TAMGIAC; Var a, b, c: Real; p, dt: Real; Begin

Write('Nhap vao 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 canh tam giac!!'); Readln;

End

+ Khai báo đúng, đủ biến lệnh nhập liệu: 0.5 điểm + Đưa điều kiện thỏa mản cạnh tam giác: 0.5 điểm

+ Đưa điều kiện thỏa mản cạnh tam giác: 0.5 điểm

+ Đưa điều kiện thỏa mản tam giác đều: 0.5 điểm + Đưa điều kiện thỏa mản tam giác cân: 0.5 điểm + Tính diện tích: 0.5 điểm

Bài 2: Chuẩn hóa xâu (4 điểm) Có thể đưa chương trì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 chuan hoa la:', st); While st[1]=' ' Delete(st,1,1);

While st[length(st)]=' ' Delete(st,length(st),1); For i:=1 to length(st)

If st[i]=' ' then

While st[i+1]=' ' Delete(st,i+1,1); Write('Xau chuan hoa la:', st);

+ Khai báo đúng, đủ biến lệnh nhập liệu: 0.5 điểm + Xóa tất ký tự trống đầu: 0.5 điểm

+ Xóa tất ký tự trống cuối: 0.5 điểm

+ Xóa tất ký tự trống để lại một: 1.5 điểm

(3)

For i:=1 to length(st)

If st[i]=' ' then dem:=dem+1;

Writeln('= cau co ',dem+1, ' tu!!!'); Readln;

End

Bài 3: Dãy lớn (3 điểm)

Có thể đưa chương trì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

Begin

Write('A[',i,']='); Readln(a[i]); End;

Write('Mang so da cho ban dau:'); For i:=1 to spt Write(a[i]:3); Writeln;

vt:=1; max:=a[1]; n:=1; tong:=a[1]; For i:=2 to spt

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 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 lệnh nhập liệu: 0.5 điểm + Có in mảng trước dãy cần tìm: 0.5 điểm

Ngày đăng: 13/04/2021, 19:05

Tài liệu cùng người dùng

Tài liệu liên quan