Đề thi HSG tin học lớp 9 Ninh Bình 2012-2013 - Học Toàn Tập

5 15 1
Đề thi HSG tin học lớp 9 Ninh Bình 2012-2013 - Học Toàn Tập

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

Thông tin tài liệu

Các điểm liền kề trên cùng một hàng hoặc một cột có thể được nối với nhau bởi một đoạn thẳng có kích thước bằng 1.. Xem hình dưới:.[r]

(1)

SỞ GD&ĐT NINH BÌNH ĐỀ THI CHỌN HỌC SINH GIỎI LỚP THCS Năm học 2012 – 2013

MÔN:TIN HỌC

(Thời gian làm 150 phút, không kể thời gian giao đề) Đề thi gồm 03 câu, 02 trang

Yêu cầu kỹ thuật:

* Các file chương trình file liệu đặt tên xác sau:

Tên File làm Dữ liệu vào Dữ liệu Time

Bài 1: Số siêu nguyên tố SNT.PAS SNT.INP SNT.OUT 2s

Bài 2: Trò chơi với băng số DIV.PAS DIV.INP DIV.OUT 2s

Bài 3: Bài tốn vng SQUARE.PAS SQUARE.INP SQUARE.OUT 2s

Bài 1: Số siêu nguyên tố (8 điểm) File bài làm: SNT.PAS

Tại Vương quốc Byte xinh đẹp, người ln chọn cho số, theo họ số nguyên tố số mang lại may mắn tìm số siêu nguyên tố may mắn Số siêu nguyên tố số nguyên tố mà bỏ số tùy ý chữ số bên phải phần lại số nguyên tố Số 2333 số siêu nguyên tố 2333 số nguyên tố 233, 23, số nguyên tố

Dữ liệu vào:SNT.INP Chứa số nguyên dương n (n ≤ 109)

Dữ liệu ra: SNT.OUT Nếu N siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị 0 Ví dụ:

Bài Trò chơi với băng số (8 điểm) File bài làm DIV.PAS

Cho băng số gồm n số nguyên dương, số viết ô Hãy cắt băng số thành nhiều đoạn cho tổng phần tử đoạn

Dữ liệu vào: DIV.INP + Dòng đầu ghi n (n ≤ 1000)

+ Dòng ghi n số nguyên dương a1, a2, , an (các số nằm dòng cách dấu cách ≤ 1000) Dữ liệu ra: DIV.OUT Ghi K số đoạn cần chia

Ví dụ:

DIV.INP DIV.OUT Giải thích

8

10 2

3 Đoạn 1: 10 Đoạn 2: + + =10 Đoạn 3: + + + = 10 ĐỀ THI CHÍNH THỨC

SNT.INP SNT.OUT

2333

SNT.INP SNT.OUT

13

SNT.INP SNT.OUT

2333

SNT.INP SNT.OUT

13

(2)

Bài 3: Bài tốn vng (4 điểm) File bài làm: SQUARE.PAS

Cho bảng chữ nhật gồm m * n điểm (gồm m hàng ngang hàng có n điểm) Các điểm liền kề hàng cột nối với đoạn thẳng có kích thước Trên hàng có nhiều n - đoạn thẳng nằm ngang nối điểm liền nhau, cột có nhiều m - đoạn thẳng thẳng đứng nối điểm liền Xem hình dưới:

Với bảng ta có hàng ngang hàng điểm Các đoạn thẳng nối chúng tạo nên ô vuông Để mô tả bảng người ta dùng hai mảng nhị phân: mảng Ngang

diễn tả đoạn thẳng nằm ngang, mảng Dọc biểu diễn đoạn thẳng thẳng đứng Trong mảng, số diễn tả có đoạn thẳng nối hai điểm liên tiếp, số diễn tả khơng có đoạn thẳng nối hai điểm liên tiếp

u cầu: Lập trình đếm số lượng vng mà cạnh có độ dài tạo đoạn nối có bảng cho

Dữ liệu vào: SQUARE.INP

+ Dòng gồm số nguyên dương m, n (m, n ≤ 1000) Hai số cách khoảng trắng

+ m dòng diễn tả đoạn thẳng nằm ngang (như bảng ngang mô tả phần trên) Hai số liền cách khoảng trắng

+ m - dòng diễn tả đoạn thẳng thẳng đứng (như bảng dọc mô tả phần trên) Hai số liền cách khoảng trắng

Dữ liệu : SQUARE.OUT

+ Số lượng vng có độ dài cạnh Ví dụ:

SQUARE.INP SQUARE.OUT 3

1 1 0 1 1 1 1 0 1 0

2

-HẾT -

Họ tên thí sinh : Số báo danh Họ tên, chữ ký: Giám thị 1: Họ tên, chữ ký: Giám thị 2:

Ngang: Dọc:

1 1 0 1 1

(3)

SỞ GD&ĐT NINH BÌNH HDC ĐỀ THI CHỌN HSG LỚP THCS Năm học 2012 – 2013

MÔN: Tin học

(Hướng dẫn chấm gồm 03 trang)

I HƯỚNG DẪN CHUNG

Chấm tự đô ̣ng bằng phần mềm AMM2 với các bô ̣ test có sẵn đĩa CD

II ĐÁP ÁN VÀ THANG ĐIỂM 1 Cấu trú c bô ̣ test và thang điểm

Bài Test Điểm

Bài Gồ m 16 bộ test, mỗi bô ̣ 0.5 điểm điểm

Bài Gồ m 16 bộ test, mỗi bô ̣ 0.5 điểm điểm

Bài Gồ m 16 bộ test, mỗi bô ̣ 0.25 điểm điểm

2 Đáp án

-Hết - Bài 1:

Const fi = 'SNT.INP'; Fo = 'SNT.OUT';

var n: longint; f:text; kq: boolean; function nt(n: longint):boolean;

var i: longint; begin

if n<2 then exit(false); if n=2 then exit(true);

for i:=2 to trunc(sqrt(n))

if n mod i = then exit(false); exit(true);

end; begin

assign(f,fi); reset(f); readln(f,n);

close(f); kq:= true; while n<>0 begin

kq:= kq and nt(n);

n:= n div 10; end;

assign (f,fo); rewrite(f);

if kq then write(f,'1') else write(f,'0'); close(f);

(4)

tfi='DIV.INP'; tfo='DIV.OUT'; var n: longint;

a, s: array[0 1001] of longint; res: longint;

function ok(t: longint): boolean; var i,u,tong: longint;

begin

tong:=0;

for i:=1 to n if a[i]<>0 then begin

tong:=tong+a[i];

if tong=t then tong:=0; end;

exit(tong=0); end;

procedure main;

var j,u,i,k,t: longint; begin

assign(input,tfi); reset(input); assign(output,tfo); rewrite(output); read(n);

for i:=1 to n read(a[i]); s[0]:=0;

for i:=1 to n s[i]:=s[i-1]+a[i];

for k:=n downto if s[n] mod k=0 then begin

t:=s[n] div k; if ok(t) then begin

res:=k; break; end;

end;

writeln(res);

close(input); close(output); end;

BEGIN main; END Bài

const fi='SQUARE.INP'; fo='SQUARE.OUT'; var f:text;

(5)

i,m,n,d,j:integer; procedure nhap;

var i,j:integer; begin

assign(f,fi); reset(f); readln(f,m,n);

for i:=1 to m begin

for j:=1 to n-1 read(f,nga[i,j]); readln(f);

end;

for i:=1 to m-1 begin

for j:=1 to n read(f,doc[i,j]); readln(f);

end; end; begin nhap; d:=0;

for i:=1 to m-1 for j:=1 to n-1

if nga[i,j]+nga[i+1,j]+doc[i,j]+doc[i,j+1]=4 then inc(d);

assign(f,fo); rewrite(f); write(f,d);

Ngày đăng: 23/02/2021, 16:03

Từ khóa liên quan

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

Tài liệu liên quan