Anh Việt có thể có nhiều cách trả tiền để mua mặt hàng đó anh Việt chỉ dùng các tờ tiền mà anh có sẵn.. Anh không đưa thừa tiền cho người bán vì người bán không có tiền trả lạ[r]
(1)UBND HUYỆN THANH SƠN PHÒNG GD&ĐT ĐỀ CHÍNH THỨC ĐỀ THI CHỌN HỌC SINH GIỎI LỚP - THCS CẤP HUYỆN NĂM HỌC 2012 - 2013 Môn: Tin học (Thời gian làm bài 150 phút không kể thời gian giao đề ) ( Đề thi có 01 trang ) Bài (4,0 điểm) Khởi động chương trình PASCAL, viết chương trình nhập số tự nhiên n cho < n ≤100, nhập sai yêu cầu nhập lại nào nhập đúng thì tính tổng sn: 1.2 2.3 3.4 n.(n 1) Sn 3.4 4.5 5.6 (n 2)(n 3) - Lưu bài với tên tệp tin: D:\THIHUYEN\B1SBDxxx.pas (trong đó xxx là số báo danh của thí sinh) Bài (6,0 điểm) Viết chương trình trên ngôn ngữ lập trình PASCAL, nhập vào hai số tự nhiên x, y cho chương trình cho nhập các số tự nhiên x, y thỏa mãn x < 53 và 59 < y 121 - In màn hình các số lẻ chia hết cho khoảng từ x đến y và đếm có bao nhiêu số vậy? - In màn hình các số chính phương m cho x < m < y và đếm có bao nhiêu số m? - Lưu bài với tên tệp tin: D:\THIHUYEN\B2SBDxxx.pas (trong đó xxx là số báo danh của thí sinh) Bài (4,0 điểm) Lập chương trình PASCAL thực hiện yêu cầu sau: Anh Việt chợ mua mặt hàng có giá trị là N đồng Trong túi anh Việt có nhiều tờ tiền với mệnh giá là 100 đồng, 200 đồng và 1000 đồng Anh Việt có thể có nhiều cách trả tiền để mua mặt hàng đó (anh Việt dùng các tờ tiền mà anh có sẵn Anh không đưa thừa tiền cho người bán vì người bán không có tiền trả lại) Yêu cầu: nhập vào từ bàn phím số N (N nguyên và 2<N<100 000); đưa màn hình tất các cách trả tiền của anh Việt thỏa mãn (Mỗi cách trả tiền trên dòng, không có cách trả tiền thì không cần thông báo gì; ch¬ng tr×nh kh«ng cÇn kiÓm tra d÷ liÖu vµo tõ bµn phÝm) - Lưu bài với tên tệp tin: D:\THIHUYEN\B3SBDxxx.pas (trong đó xxx là số báo danh của thí sinh) Bài ( 6,0 điểm) Khởi động chương trình PASCAL, viết chương trình nhập vào dãy số nguyên n phần tử, n nhập từ bàn phím - In màn hình dãy số vừa nhập xếp theo thứ tự tăng dần - In màn hình các số nguyên tố dãy số vừa nhập và đếm xem đã nhập vào bao nhiêu số nguyên tố - Lưu bài với tên tệp tin: D:\THIHUYEN\B4SBDxxx.pas (trong đó xxx là số báo danh của thí sinh) ––––––––––––––––––– Hết –––––––––––––––––––– Họ và tên thí sinh SBD Chú ý: Cán coi thi không giải thích gì thêm (2) PHÒNG GD&ĐT THANH SƠN HƯỚNG DẪN CHẤM THI CHỌN HSG LỚP - THCS CẤP HUYỆN NĂM HỌC 2012 – 2013 Môn: Tin học Yêu cầu chung: Yêu cầu chương trình chạy thông suốt ( 2-3 điểm) + Hoàn thành đúng phần khai báo các biến: (0,25 điểm) + Viết đúng chương trình nhập mảng: (0,25 điểm) + Viết đúng thuật toán (cách giải) tính tổng: (1-2 điểm) + Viết đúng thủ tục tạo và ghi kết vào tệp: (0,5 điểm) - Chương trình chạy cho kết đúng (có thể làm theo cách khác đáp án): khai báo đầy đủ, trình bày có cấu trúc rõ ràng cho điểm tối đa Không khai báo biến trừ 0.25 điểm - Chương trình cho kết sai: Chỉ chấm phần các ý chính của thuật toán, ý đúng cho điểm không vượt quá 40% số điểm của câu Bài (4,0 điểm) Khởi động chương trình PASCAL, viết chương trình nhập số tự nhiên n cho < n ≤100, nhập sai yêu cầu nhập lại nào nhập đúng thì tính tổng sn: 1.2 2.3 3.4 n.(n 1) Sn 3.4 4.5 5.6 (n 2)(n 3) Chương trình tham khảo Uses Crt; Var n,i:Integer; s:Real; BEGIN ClrScr; Write(‘Nhap so tu nhien n=');Readln(n); While ((n<=5) OR (n>100) Begin Write(‘Nhap lai n thoa man < n <=100, n = ');Readln(n); end; s:=0; For i:=1 to n s:=s+i*(i+1)/((i+2)*(i+3)); Write(‘s=’,s:4:3); Readln END Bộ Test thử n nhập vào Kết thông báo kết S trên màn hình Nhap lai n thoa man < n <=100, n = 1.879 2.462 Điểm 0,5 1,5 0,5 0,5 (3) Bài (6,0 điểm) Viết chương trình trên ngôn ngữ lập trình PASCAL, nhập vào hai số tự nhiên x, y cho chương trình cho nhập các số tự nhiên x, y thỏa mãn x < 53 và 59 < y 121 - In màn hình các số lẻ chia hết cho khoảng từ x đến y và đếm có bao nhiêu số - In màn hình các số chính phư ơng m cho x < m < y và đếm có bao nhiêu số m Chương trình tham khảo Uses Crt; var x,y,i,d:longint; BEGIN ClrScr; d:=0; Write(‘Nhap so tu nhien x, y =');Readln(x,y); While ((x<4) OR (x>=53) OR ( y<=59) OR (y>121) ) Begin Write(‘Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121’); Readln(n); end; writeln(‘Cac so le chia het cho thoa man la:'); for i:=x to y if (i mod 2<>0)and(i mod 3=0) then begin write(i:6); d: = d+1; end; writeln; writeln('Co tat ca:',d,' so le chia het cho 3'); writeln('Cac so chinh phuong lon hon’, x:4,’va nho hon’, y:4, ‘la: ‘); d:=0; For i: = x +1 to y -1 IF sqr(trunc(sqrt(i))) = i then Begin write (I: 7); d:=d+1; end; writeln; writeln(‘ Co tat ca ‘,d:6,’ so chinh phuong’); readln; End Bộ Test thử Dữ liệu vào 64 64 Dữ liệu Nhap lai x, y thoa man 4<=x< 53 va 59<y<=121 Cac so le chia het cho thoa man la: 15 21 27 33 39 45 51 57 63 Co tat ca: 10 so le chia het cho Cac so chinh phuong lon hon va nho hon 64 la: 16 25 36 49 Co tat ca so chinh phuong Bài (4,0 điểm) Lập chương trình thực hiện yêu cầu sau: Điểm 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 (4) Anh Việt chợ mua mặt hàng có giá trị là N đồng Trong túi anh Việt có nhiều tờ tiền với mệnh giá là 100 đồng, 200 đồng và 1000 đồng Anh Việt có thể có nhiều cách trả tiền để mua mặt hàng đó (anh Việt dùng các tờ tiền mà anh có sẵn Anh không đưa thừa tiền cho người bán vì người bán không có tiền trả lại) Yêu cầu: nhập vào từ bàn phím số N (N nguyên và 2<N<100 000); đưa màn hình tất các cách trả tiền của anh Việt thỏa mãn (Mỗi cách trả tiền trên dòng, không có cách thì không cần thông báo gì) Lưu bài với tên tập tin: D:\THI\CAPHUYEN\Bai3.pas Chương trình tham khảo Program tinhtien; Var N,K,a,b,c:Longint; Begin Write('Vao N='); Readln(N); K:=0; If N mod 100=0 Then For a:=0 to N div 1000 For b:=0 to (N-1000*a) div 200 Begin c:=(N-1000*a-200*b) div 100; Writeln(c,' x 100 +',b,' x 200 + ',a,' x 1000'); Điểm 0,5 0.5 0,5 0,5 0,5 1,0 0,5 End; readln; End Bộ Test thư Vao N=1000 10 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 x 100 + x 200 + x 1000 Bài ( 6,0 điểm) Khởi động chương trình PASCAL, viết chương trình nhập vào dãy số nguyên n phần tử, n nhập từ bàn phím - In màn hình dãy số vừa nhập xếp theo thứ tự tăng dần - In màn hình các số nguyên tố dãy số vừa nhập và đếm xem đã nhập vào bao nhiêu số nguyên tố Lưu bài với tên tập tin: D:\THI\CAPHUYEN\Bai4.pas Chương trình tham khảo Điểm Uses crt; Var A: Array[1 100] of Integer; (5) n,i,j,dem: Byte; 0,5 tg: Integer; function NT(n:longint):boolean; var i:longint; Kt:boolean; begin Kt:=true; 1,5 for i:=2 to round(sqrt(n)) if n mod i=0 then Kt:=false; NT:=Kt; end; Begin Write('Hay nhap vao so phan tu cua mang:'); Readln(n); For i:= to n Begin 0,5 Write('Nhap a[',i,']= '); Readln(a[i]); End; For i:= to n-1 For j:= i to n If a[i]>a[j] then Begin 1,5 tg:= a[i]; a[i]:=a[j]; a[j]:= tg; End; Writeln('Mang sau da sap xep la'); For i:= to n Write(a[i]:6); Writeln;dem:=0; 0,5 Writeln('Nhung so nguyen to mang la'); For i:=1 to n If (a[i]>=2) and NT(a[i]) then Begin 0,5 Write(a[i]:7); dem:= dem+1; End; 0,5 Writeln; Writeln('so phan tu la so nguyen to mang la:',dem) ; Readln;End 0,5 Ghi chú: Học sinh có thể không sử dụng chương trình chạy đúng kết test cho điểm tối đa Bộ Test thư N = 6;a[1]=3; a[2]=-12; a[3]=-789; a[4]=71; a[5]=8; a[6]=3456; Mang sau sap xep: -789 -12 71 3456 Nhung so nguyen to mang 71 So phan tu la so nguyen to mang la: (6)