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ÀITHI 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. . 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. 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