1. Trang chủ
  2. » Giáo án - Bài giảng

Download đề và đáp án thi học sinh giỏi môn tin học lớp 11 2007 2008 tỉnh quảng bình (khối không chuyên)

4 347 3

Đ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 36,5 KB

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

Nội dung

Sở giáo dục - đào tạo QB Kỳ thi chọn học Sinh Giỏi lớp 11 Năm học 2007-2008 hớng dẫn chấm môn tin học Đề chính thức Dành cho học sinh không Chuyên I/ Ph ơng pháp chung - Giám khảo tạo c

Trang 1

Sở giáo dục - đào tạo QB Kỳ thi chọn học Sinh Giỏi lớp 11

Năm học 2007-2008 hớng dẫn chấm môn tin học Đề chính thức Dành cho học sinh không Chuyên

I/ Ph ơng pháp chung

- Giám khảo tạo các 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 mẫu để tính kết quả của dữ liệu vào: SUM.PAS; GIAIMA.PAS; VONGHAT.PAS.

- Chơng trình học sinh chạy đúng mỗi bộ test, giám khảo cho 0.5 điểm Nh vậy, nếu câu hỏi có 3 điểm thì giám khảo phải tạo đợc 6 bộ test.

- Nếu chơng trình chạy sai test nào thì giám khảo cho 0 điểm đối với test đó.

- Với những bài có nhiều kết quả, nếu thí sinh đa ra kết quả khác với đáp án nhng vẫn đúng thì giám khảo cho điểm tối đa.

- Riêng câu 3:

+ Tổ chức đợc dữ liệu: 1 điểm.

+ 2.5 điểm còn lại giám khảo tạo 5 bộ test, mỗi test đúng cho 0.5 điểm

II/ Ch ơng trình gợi ý

Program Tong_cac_chu_so;

Const fi='Sum.in4';

fo='Sum.out';

MaxN=1000;

Type Arr=Array[1 MaxN] of Word;

Var A:Arr;

N,K:Word;

Procedure Read_Data;

Var i:Word; f:Text;

Begin

Assign(f,fi);

Reset(f);

Readln(f,N);

For i:= 1 to N do

Read(f,A[i]);

Close(f);

End;

Function Sum(x:Word):Word;

Var so:Word;

Begin

so:=0;

While x<>0 do

Begin

So:=So + x mod 10;

x:= x Div 10;

end;

Sum:=so;

End;

Procedure Write_Data;

Var i:Word; f:Text;

Begin

Assign(f,fo);

ReWrite(f);

Trang 2

K:=0;

For i:= 1 to N do

if Sum(A[i]) mod 2 = 1 then

inc(K);

Writeln(f,K);

For i:= 1 to N do

if Sum(A[i]) mod 2 = 1 then

Write(f,i,#32);

Close(f);

End;

BEGIN

Read_Data;

Write_Data;

END

Program Giai_ma;

Const fi='Giaima.inp';

fo='Giaima.out';

A:array[1 8] of Byte = (128,64,32,16,8,4,2,1);

Var sti,sto: string;

Procedure Read_Data;

Var f:text;

Begin

Assign(f,fi);

Reset(f);

Readln(f,sti);

Close(f);

End;

Procedure Write_Data;

Var f:text;

Begin

Assign(f,fo);

ReWrite(f);

Writeln(f,sto);

Close(f);

End;

Function Gm(st1:string):Char;

Var so,i:Byte;

Begin

so:=0;

For i:=Length(st1) Downto 1 do

If st1[i]= '1' then

so:= so + A[i];

Gm:=Chr(so);

End;

Procedure Process;

Var i:Byte;

Begin

sto:='';

i:=1;

While i <= Length(sti) do

Begin

sto:=sto+Gm(Copy(sti,i,8));

inc(i,8);

end;

End;

BEGIN

Read_Data;

Process;

Trang 3

Write_Data;

END

Program Chuoi_hat;

Const MaxN=10000;

fi='Vonghat.in3';

fo='Vonghat.ou3';

Type bb=Byte;ww=Word;ii=Integer; ll=Longint;

mmc=Array[1 MaxN] of bb;

Var A:mmc;

n,Luudem,Luucat:ww;

(*****************)

Procedure Read_Data;

Var f:Text;

k,i,j:ww;

Begin

fillchar(A,sizeof(A),0);

Assign(f,fi);

Reset(f);

i:=1;

Readln(f,A[i]);

j:= 5000-1;

While not eof(f) do

Begin

inc(j);

read(f,A[j]);

if not eoln(f) then

Begin

inc(i);

Read(f,A[i]);

end;

readln(f);

end;

For k:= j Downto 5000 do

Begin

inc(i);

A[i]:=A[k];

end;

n:=i;

Close(f);

end;

(*****************)

Procedure Processing;

Var i,j,Top,dau,truoc,sau:ww;

Begin

Luucat:=0;

Luudem:=0;

Top:=n;

dau:=0;

While A[Top]=A[1] do

Begin

dec(Top);

inc(dau);

end;

if top = 0 then

Begin

Luucat:=n+1;

Luudem:=n;

Trang 4

exit;

end;

i:=1;

While A[i] = A[1] do

Begin

inc(dau);

inc(i);

end;

sau:=dau;

While i<=Top do

Begin

truoc:=sau;

sau:=0;

j:=i;

While A[i]=A[j] do

Begin

inc(sau);

inc(i);

end;

if truoc+sau > Luudem then Begin

Luudem:=truoc+sau; Luucat:=j;

end;

end;

if sau + dau > Luudem then Begin

Luudem:=sau+dau;

Luucat:=Top+1;

end;

end;

(*****************)

Procedure Write_Data;

Var f:Text;

Begin

Assign(f,fo);

ReWrite(f);

if Luucat > n then

Write(f,n,' ' ,1)

else

Write(f,Luucat-1,' ' ,Luucat); Write(f,' ',Luudem);

Close(f);

end;

(*****************)

Begin

Read_Data;

Processing;

Write_Data;

end

Ngày đăng: 13/10/2015, 16:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w