UBND HUYỆN TAMDƯƠNG PHÒNG GD-ĐT ---------- ĐỀ CHÍNH THỨC ĐỀ THI HỌCSINHGIỎI VÒNG 1 Môn: Tinhọc9 Thời gian làm bài: 150 phút (Không kể thời gian giao đề) (Lưu ý đề thi có 02 trang) Ghi chú: Họcsinh có thể nhập, xuất dữ liệu từ file văn bản hoặc từ bàn phím Bài 1: ( 3 điểm ) Tên file bài làm là: bailam1.pas Với mỗi số tự nhiên N ( 1 ≤ N ≤ 1000). Tìm các số tự nhiên M ≤ N thoả mãn: +/ M là một số nguyên tố. +/ Tổng các chữ số của M cũng là một số nguyên tố. Yêu cầu: Nhập số tự nhiên N (1 ≤ N ≤ 1000). Thông báo số lượng các số tự nhiên M thỏa mãn các yêu cầu trên, đó là các số nào? Dữ liệu vào từ file: bailam1.inp Dòng 1: Số tự nhiên N Dữ liệu ra file: bailam1.out Dòng 1: Ghi các số M thỏa mãn yêu cầu Dòng 2: Số lượng các số tự nhiên M thỏa mãn Ví dụ: Dữ liệu vào từ file: bailam1.inp 10 Dữ liệu ra file: bailam1.out 2 3 5 7 4 Bài 2: ( 3 điểm) Tên file bài làm là: bailam2.pas Dãy số a 1 , a 2 , a 3 , ……, a n được định nghĩa như sau: + a 1 = m; + a i+1 là số đảo ngược của số a i + k (1 ≤ i ≤ n-1) Yêu cầu: 1/ Với mỗi bộ 3 số tự nhiên khác 0 là m, k, n được nhập hãy in ra dãy số a 1 , a 2 , a 3 ,… , a n . 2/ In ra các chỉ số i mà tại đó a i = 1. Dữ liệu vào từ file: bailam2.inp Dòng 1: Số tự nhiên m, k, n Dữ liệu ra file: bailam2.out Dòng 1: Dãy số a 1 , a 2 , a 3 , ……, a n . Dòng 2: chỉ số i mà tại đó a i = 1 Ví dụ: Dữ liệu vào từ file: bailam2.inp 1 4 10 Dữ liệu ra file: bailam2.out 15 9 31 53 75 97 101 501 505 1 Bài 3: ( 2 điểm) Tên file bài làm là: bailam3.pas Một công ty có nhu cầu cần mua 1 máy chuyên dụng, có N xí nghiệp nhận gia công loại máy này ( 1≤ N ≤ 20). Với mỗi xí nghiệp thứ i ( 1≤ i ≤ N), thời gian gia công chiếc máy là T[i] và bán máy với giá C[i]. Yêu cầu: a/ Liệu công ty có thể mua máy của xí nghiệp nào mà thời gian gia công nhanh nhất và bán với giá rẻ nhất không ? Nếu có đó là xí nghiệp nào ? b/ Trong trường hợp không có xí nghiệp nào thỏa mãn cả 2 yêu cầu trên thì công ty ưu tiên mua của xí nghiệp có thời gian gia công nhanh nhất nhưng với điều kiện giá mua không cao hơn quá 10% của giá rẻ nhất. Liệu công ty có thực hiện được ý muốn không ? Nếu được thì thông báo đó là xí nghiệp nào ? Dữ liệu vào từ file: bailam3.inp Dòng 1: Số tự nhiên N Dòng 2: Thời gian gia công của xí nghiệp thứ i Dòng 3: Giá thành của xí nghiệp thứ i Dữ liệu ra file: bailam3.out Dòng 1: Ghi xí nghiệp được chọn, nếu không chọn được xí nghiệp nào thì ghi số 0 Ví dụ: Ví dụ 1 Ví dụ 2 Ví dụ 3 bailam3.inp 3 5 2 7 4 3 5 4 20 6 5 12.5 15 10 11 13 3 18.5 5 99 8.5 4.5 bailam3.out 2 3 0 Bài 4: (2 điểm) Tên file bài làm là: bailam4.pas Một nhóm gồm N họcsinh thực hiện trò chơi loại người ra khỏi vòng tròn. Luật chơi như sau: N họcsinh được đánh số hiệu từ 1 đến N xếp thành vòng tròn và họcsinh thứ M bị loại ra khỏi vòng tròn tính theo chiều kim đồng hồ. Khi một họcsinh bị loại khỏi vòng tròn, thì vòng tròn thu hẹp lại và đếm thứ tự từ họcsinh còn lại bên cạnh để xác định họcsinh bị loại tiếp theo, cứ như vậy cho đến khi nào trên vòng tròn chỉ còn một học sinh. Nhập hai số tự nhiên N, M hãy chỉ ra số hiệu của họcsinh còn lại trên vòng tròn. Dữ liệu vào từ file: bailam4.inp Dòng 1: Số tự nhiên N, M Dữ liệu ra file: bailam4.out Dòng 1: Số hiệu của họcsinh còn lại trên vòng tròn Ví dụ: Dữ liệu vào từ file: bailam4.inp 10 5 Dữ liệu ra file: bailam4.out 3 -----------------------------o0o----------------------------------- Cán bộ coi thi không giải thích gì thêm. UBND HUYỆN TAMDƯƠNG PHÒNG GD-ĐT ---------- HƯỚNG DẪN CHẤM THI HSG VÒNG1 Môn: Tinhọc9 Thời gian làm bài: 150 phút Ghi chú: Họcsinh có thể nhập, xuất dữ liệu từ file văn bản hoặc từ bàn phím Bài 1: ( 3 điểm ) bailam1.pas: Mỗi Test đúng: 0.5 điểm bailam1.inp 15 1 0 1000 1001 7 bailam1.out 2 3 5 7 11 5 0 0 2 3 5… 89 0 2 3 5 7 4 Bài 2: ( 3 điểm) bailam2.pas Mỗi Test đúng: 0.5 điểm Bailam2.inp 0 0 0 111 2 5 7 4 5 50 10 6 24 2 100 50 Bailam2.out 0 0 11 2 7 21 62 76 18 32 0 4 1 7 31 73…. 2 32 10 61 76… 7 2 201 103… 0 Bài 3: ( 2 điểm) bailam3.pas Mỗi Test đúng: 0.5 điểm Bailam3.inp 2 1111 3 1 2 4 5 6 3 4 15 20.5 7 12 17 16.5 8 10 7 5 7 5.5 9 6 4 6 15 9 7 20 8 7.5 10 Bailam3.out 1 2 0 3 6 Bài 4: (2 điểm) Tên bailam4.pas Mỗi Test đúng: 0.5 điểm Bailam 4.inp 11 15 4 50 56 100 100 Bailam 4.out 1 13 27 22 -----------------------------o0o----------------------------------- BỘ CHƯƠNG TRÌNH NGUỒN MẪU (Sử dụng nhập, xuất từ bàn phím) Program bai1; Var m,n,i,j,k,d:Longint; Function nto(n:Longint):Longint; Var i:Longint; Begin d:=0; For i:=2 to n div 2 do If N mod i = 0 then Inc(d); If (d=0)and(n<>1) then nto:=n; End; Function Sum(m:Longint):Longint; Var s:Longint; Begin s:=0; Repeat s:=s+ m mod 10; m:= m div 10; Until m=0; Sum:=s; End; Procedure XULI; Var n,d:Longint; Begin Write(' N= '); Readln(N); if (n>=1) and (n<=1000) then begin d:=0; For i:= 2 to N do If (nto(i)=i)and(nto(Sum(i))=Sum(i)) then Begin Inc(d); Write(i:5); End; Writeln; Writeln(' TIM THAY ',d:5,' SO THOA MAN'); End else write('0'); END; Begin XULI; Readln; End. Program bai2; Var m,n,i,k,d:Longint; a:Array[1 1000] of longint; Function dao(n:Longint):Longint; Var s,i:Longint; Begin s:=0; Repeat s:=s*10 + n mod 10; n:=n div 10; Until n=0; dao:=s; End; Begin Write('m,k,n'); Readln(m,k,n); a[1]:=m; For i:=1 to n-1 do a[i+1]:=dao(a[i]+k); For i:=1 to n do write(a[i]:5); Writeln; Writeln(' CAC VI TRI MA a[i]=1 LA:'); For i:=1 to n do If a[i]=1 then write(i:5); Readln;End. Program Bai3; Type Mang=array[1 100] of real; Var n,i,j,k:integer; t,c:Mang; min1,min2:real; Begin write('Nhap so xi nghiep n= '); Readln(n); writeln('Nhap thoi gian gia cong va gia thanh:'); for i:=1 to n do begin write('t[', i,']='); readln(t[i]); write('c[', i,']='); readln(c[i]); End; min1:=t[1]; For i:=2 to n do If min1>t[i] then min1:=t[i]; min2:=c[1]; For i:=2 to n do min2:=c[i]; k:=0; For i:=1 to n do begin if (t[i]=min1) and (c[i]=min2) then begin inc(k); writeln(' Lua chon XN thu:',i) end else if (t[i]=min1) and (c[i]<=min2*1.1) then begin inc(k); writeln(' Lua chon XN thu:',i); end end; if k=0 then Writeln(' 0 '); Readln; end. Bai 4 Var m,n,i,j,d,loai:Byte; a:array[1 100] of 0 1; Begin Write(' Nhap so hoc sinh:'); Readln(N); Write(' Hocsinh bi loai dau tien: '); Readln(M); For i:=1 to n do a[i]:=1; loai:=0; i:=0; d:=0; Repeat i:=i mod n + 1; If (a[i]<>0) and (d<M) then Begin inc(d); if d=M then Begin a[i]:=0; d:=0; Inc(loai); End; End; Until loai >= N-1; Writeln(' CON NGUOI THU:'); d:=0; For i:=1 to N do If a[i]=1 then Begin write(i:5); Inc(d); End; If d=0 then write('0'); Readln; End. . Bailam2.inp 0 0 0 1 1 1 2 5 7 4 5 50 10 6 24 2 10 0 50 Bailam2.out 0 0 1 1 2 7 21 62 76 18 32 0 4 1 7 31 73…. 2 32 10 61 76… 7 2 2 01 103… 0 Bài 3: ( 2 điểm). đúng: 0.5 điểm Bailam3.inp 2 1 1 1 1 3 1 2 4 5 6 3 4 15 20.5 7 12 17 16 .5 8 10 7 5 7 5.5 9 6 4 6 15 9 7 20 8 7.5 10 Bailam3.out 1 2 0 3 6 Bài 4: (2 điểm)