1. Trang chủ
  2. » Ôn tập Sinh học

Đáp án HSG Tin học lớp 9 Quảng Bình 2017-2018 - Học Toàn Tập

4 18 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 420,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Nếu chương trình của học sinh đưa ra kết quả khác với đáp án của giám khảo nhưng vẫn đúng thì giám khảo cho điểm tối đa của bộ test đó.. - Với mỗi câu, giám khảo phải tạo ít nhất một [r]

Trang 1

SỞ GD&ĐT QUẢNG BÌNH KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH

NĂM HỌC 2017 - 2018 HƯỚNG DẪN CHẤM LỚP 9 - THCS

Môn thi: TIN HỌC

(Khóa thi ngày 22 tháng 03 năm 2018)

Thời gian làm bài: 150 phút (không kể thời gian giao đề)

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 hoặc 0.25 đ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

- Nếu chương trình của học sinh đưa ra kết quả khác với đáp án của giám khảo nhưng vẫn đúng thì giám khảo cho điểm tối đa của bộ test đó

- Với mỗi câu, giám khảo phải tạo ít nhất một bộ test có dữ liệu lớn

II- Chương trình gợi ý:

const fi='countkt.inp';

fo='countkt.out';

var i,j,n,dem:integer;

f:text;

xau:string;

Procedure doc;

begin

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

read(f,xau);

close(f);

end;

Procedure xuly;

begin

assign(f,fo);

rewrite(f);

for i:=1 to length(xau) do

if (xau[i] in ['0' '9']) then

inc(dem);

write(F,dem);

close(f);

end;

BEGIN

DOC;

XULY;

END

Program Tong_nguyen_to;

const fi='SPRIME.inp';

fo='SPRIME.out';

Var i,n:integer;

f,g:text;

Function NT(n:integer):Boolean;

Var ok: Boolean;

i:integer;

Begin

Trang 2

ok:=true;

For i:=2 to n-1 do if (n mod i) = 0 then ok:=ok and false;

if n>=2 then NT:=ok else NT:=false;

End;

Begin

Assign(f,fi);

Reset(f);

Read(f,n);

Assign(g,fo);

Rewrite(g);

For i:=2 to n div 2 do if (NT(i) and NT(n-i)) then

Writeln(g,n,' = ',i,' + ',n-i);

Close(f);

Close(g);

End

{$MODE OBJFPC}

{$R+$B-}

const

fi = 'clan.inp';

fo = 'clan.out';

nm = 1000000;

var

a : array[1 nm] of longint;

n : longint;

f : text;

procedure Input;

var i:longint;

begin

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

readln(f,n);

for i:=1 to n do read(f,a[i]);

close(f);

end;

procedure quick_sort(dau,cuoi:longint);

var chot,i,j,tg:longint;

begin

if dau>=cuoi then exit;

i:=dau;

j:=cuoi;

chot:=a[(dau+cuoi) div 2];

repeat

while a[i]<chot do inc(i);

while a[j]>chot do dec(j);

if i<=j then

begin

tg:=a[i]; a[i]:=a[j]; a[j]:=tg; inc(i); dec(j);

end;

until i>j;

quick_sort(dau,j);

quick_sort(i,cuoi);

end;

procedure process;

Trang 3

var i,kq,d:longint;

begin

input;

quick_sort(1,n);

kq:=0;

d:=1;

for i:=1 to n do

if a[i]=d then

begin

inc(kq); d:=1;

end

else inc(d);

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

writeln(f,kq);

close(f);

end;

BEGIN

PROCESS;

END

Const fi ='number.inp';

fo ='number.out';

cs:array[1 8] of longint = (9, 180, 2700, 36000, 450000, 5400000,

63000000, 720000000);

Var n : longint;

f,g :text;

Function num(n:longint):char;

var k, so, mu : longint;

s : string;

Begin

k:=1; mu:=1;

while (k<9)and(cs[k]<n) do

begin

n:=n-cs[k];

inc(k); mu:=mu*10;

end;

if mu=1 then so:=n div k

else so:=n div k+mu+ord(n mod k>0)-1;

str(so,s);s:=s[k]+s;

num:=s[n mod k+1];

End;

BEGIN

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

assign(g,fo); rewrite(g);

while not seekeof(f) do

begin

readln(f,n);

writeln(g,num(n));

end;

close(f);

close(g);

END

Ngày đăng: 23/02/2021, 22:29

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w