Sở Gd&Đt kỳ thi CHọN học sinh giỏi lớp 9 tHCS Quảng bình năm học 2012- 2013 Môn thi: tin học Đề thi chính thức (Khóa thi ngày 27 tháng 3 năm 2013) Số Báo Danh: Thời gian làm bài: 150 phút (không kể thời gian giao đề) ( thi gm cú 02 trang) RA S dng ngụn ng lp trỡnh Turbo Pascal lp trỡnh gii cỏc bi toỏn sau: Cõu 1: (3,0 im) Phn thng PT.PAS Trong cuc thi gii toỏn qua mng internet mi hc sinh u cú s im tớch ly riờng ca mỡnh. S im tớch ly ca mi hc sinh l mt s nguyờn dng K (0 < K 2ì10 9 ). i tuyn ca trng THCS Ti Nng cú N hc sinh tham gia d thi (2 N 100). Ti bui gp mt trc k thi cp tnh, thy hiu trng quyt nh thng cho cỏc hc sinh trong i tuyn Q triu ng, bit rng im tớch ly ca mi hc sinh u chia ht cho Q. Yờu cu: Hóy tỡm s nguyờn dng Q ln nht. D liu vo: Cho trong file vn bn PT.INP cú cu trỳc nh sau: - Dũng 1: Ghi s nguyờn dng N l s lng hc sinh. - Dũng 2: Ghi N s nguyờn dng ln lt l im tớch ly ca N hc sinh, cỏc s c ghi cỏch nhau ớt nht mt du cỏch. D liu ra: Ghi ra file vn bn PT.OUT theo cu trỳc nh sau: - Dũng 1: Ghi s nguyờn dng Q tỡm c. Vớ d: PT.INP PT.OUT 5 15 24 45 36 27 3 Thi gian thc hin chng trỡnh khụng quỏ 1 giõy cho mi b d liu vo. Cõu 2: (3,5 im) Mt khu MK.PAS Cu Tớ thng xuyờn tham gia thi lp trỡnh trờn mng. Vỡ t c thnh tớch cao nờn Tớ c gi tng mt phn mm dit virus. Nh sn xut phn mm cung cp cho Tớ mt mó s l mt s nguyờn dng N cú khụng quỏ 255 ch s. ci t c phn mm, Tớ phi nhp vo mt khu ca phn mm. Mt khu l mt s nguyờn dng M c to ra bng cỏch tớnh tng giỏ tr cỏc ch s ca N. Yờu cu: Hóy tỡm s nguyờn dng M. D liu vo: Cho trong file vn bn MK.INP cú cu trỳc nh sau: - Dũng 1: Ghi s nguyờn dng N. D liu ra: Ghi ra file vn bn MK.OUT theo cu trỳc nh sau: - Dũng 1: Ghi s nguyờn dng M tỡm c. Vớ d: MK.INP MK.OUT 84915388247 59 1 /2 Câu 3: (3,5 điểm) Tần suất TS.PAS Cho tập hợp S có N phần tử nguyên dương {s 1 , s 2 ,…, s N }. (1 ≤ N ≤ 32000; 0 < s i ≤ 32000; 1 ≤ i ≤ N) Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần. Dữ liệu vào: Cho trong file văn bản TS.INP có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương N. - Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được ghi cách nhau ít nhất một dấu cách. Dữ liệu ra: Ghi ra file văn bản TS.OUT trên nhiều dòng, dòng thứ i ghi 2 số s i d i , hai số cách nhau một dấu cách. Trong đó s i là phần tử xuất hiện trong S lớn hơn một lần và d i tương ứng là số lần s i xuất hiện. Ví dụ: TS.INP TS.OUT 7 2 5 5 3 5 3 9 3 2 5 3 ==HẾT== 2 /2 Së Gd&§t kú thi CHäN häc sinh giái líp 9 THCS Qu¶ng b×nh n¨m häc 2012 - 2013 m«n: tin häc híng dÉn chÊm I- Phương pháp: - Giám khảo tạo bộ dữ liệu vào, tính toán kết quả. Thực hiện chương trình của học sinh và so sánh kết quả. - Giám khảo có thể sử dụng chương trình gợi ý dưới đây để tính toán kết quả của dữ liệu vào. - Chương trình học sinh đúng một bộ test, giám khảo cho 0.5 điểm. Như vậy, nếu một câu có 3 điểm thì giám khảo phải tạo 6 bộ test. - Đối với câu 1: Giám khảo phải tạo được 01 bộ test có N = 100, 01 bộ test có các giá trị K > 65535 và 01 bộ test chấm được thời gian thực hiện chương trình của học sinh với N=100 và K > 65000×10 3 . - Đối với câu 2: Giám khảo phải tạo được 01 bộ test có K > 200. - Đối với câu 3: Giám khảo phải tạo được 01 bộ test có N = 32000. II- Chương trình gợi ý: Câu 1: (3,0 điểm) Phần thưởng Program Phan_thuong; Const fi='PT.INP'; fo='PT.OUT'; Type mmc=Array[0 101] of Longint; Var N:Longint; A:mmc; Function UCLN(x,y:Longint):Longint; Var sodu:Word; Begin sodu:=x mod y; While sodu<>0 do Begin x:=y; y:=sodu; sodu:=x mod y; End; UCLN:=y; End; Procedure Read_Data; Var f:text; i:Longint; Begin Assign(f,fi); Reset(f); Readln(f,N); For i:=1 to N do Read(f,A[i]); Close(f); End; Function USC:Longint; Var f:text; i,mUSC:longint; Begin mUSC:=UCLN(A[1],A[2]); for i:= 3 to N do mUSC:=UCLN(mUSC,A[i]); USC:=mUSC; End; Procedure Write_Data; Var f:Text; Begin Assign(f,fo); Rewrite(f); Write(f,USC); Close(f); End; BEGIN Read_Data; 3 /2 Write_Data; End. Câu 2: (3,5 điểm) Mật khẩu Program Mat_khau; Const fi='MK.INP'; fo='MK.OUT'; A:Array['0' '9'] of Byte = (0,1,2,3,4,5,6,7,8,9); Var N:byte; St:String; Procedure Read_Data; Var f:text; Begin Assign(f,fi); Reset(f); Readln(f,St); Close(f); End; Function Tong:Longint; Var f:text; i,T:Longint; Begin T:=0; For i:=1 to Length(St) do T:=T+A[St[i]]; Tong:=T; End; Procedure Write_Data; Var f:Text; Begin Assign(f,fo); Rewrite(f); Write(f,Tong); Close(f); End; BEGIN Read_Data; Write_Data; End. Câu 3: (3,5 điểm) Tần suất {$R+} const fi='TS.INP'; fo='TS.INP'; type mmc=array[0 32000] of word; var a:mmc; f:text; n,d:word; i,x:word; Time:Longint;Times:Longint absolute 0:$46C; Begin Time:=Times; Fillchar(A,sizeof(A),0); assign(f,fi); reset(f); readln(f,n); For i:=1 to n do Begin read(f,x); a[x]:=a[x]+1; End; close(f); assign(f,fo); rewrite(f); For i:=0 to 32000 do if a[i]>1 then writeln(f,i,' ',a[i]); close(f); Writeln((Times-Time)/18.2:0:0); Readln; End. 4 /2 . Sở Gd&Đt kỳ thi CHọN học sinh giỏi lớp 9 tHCS Quảng bình năm học 201 2- 2013 Môn thi: tin học Đề thi chính thức (Khóa thi ngày 27 tháng 3 năm 2013) Số Báo Danh: Thời gian làm. TS.OUT 7 2 5 5 3 5 3 9 3 2 5 3 ==HẾT== 2 /2 Së Gd&§t kú thi CHäN häc sinh giái líp 9 THCS Qu¶ng b×nh n¨m häc 2012 - 2013 m«n: tin häc híng dÉn chÊm I- Phương pháp: - Giám khảo tạo bộ dữ. mi hc sinh l mt s nguyờn dng K (0 < K 2ì10 9 ). i tuyn ca trng THCS Ti Nng cú N hc sinh tham gia d thi (2 N 100). Ti bui gp mt trc k thi cp tnh, thy hiu trng quyt nh thng cho cỏc hc sinh