1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề thi HSG lớp 12 năm 2013 môn Tin học vòng 2 tỉnh Quảng Bình pdf

6 563 2
Tài liệu đã được kiểm tra trùng lặp

Đ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 6
Dung lượng 176,66 KB

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

Nội dung

Dữ liệu vào: Cho trong file văn bản DT.INP, cú cấu trỳc 3 dũng, mỗi dũng chứa hai số nguyờn xi yi, là tọa độ của một đỉnh của tam giỏc ABC.. Làm trũn kết quả đến một chữ số sau dấu ngă

Trang 1

Sở Gd&Đt kỳ thi CHọN học sinh giỏi cấp tỉnh lớp 12 thpt Quảng bình năm học 2012 - 2013

Môn thi: tin học - Vòng II

Đề thi chính thức (Khóa thi ngày 11 tháng 10 năm 2012)

Số Báo Danh: Thời gian làm bài: 180 phút (không kể thời gian giao đề)

ĐỀ RA

Sử dụng ngụn ngữ lập trỡnh Turbo Pascal để lập trỡnh giải cỏc bài toỏn sau:

Trong hệ trục tọa độ Decac, cho ba điểm khụng thẳng hàng A, B, C cú tọa độ: A(x1, y1); B(x2, y2); C(x3, y3)

Yờu cầu: Tớnh diện tớch tam giỏc ABC.

Dữ liệu vào: Cho trong file văn bản DT.INP, cú cấu trỳc 3 dũng, mỗi dũng chứa

hai số nguyờn xi yi, là tọa độ của một đỉnh của tam giỏc ABC Cỏc số được ghi cỏch nhau ớt nhất một dấu cỏch (-2000 ≤ xi, yi ≤ 2000)

Dữ liệu ra: Ghi ra file văn bản DT.OUT, theo cấu trỳc:

- Dũng 1: Ghi diện tớch tam giỏc tỡm được Làm trũn kết quả đến một chữ số sau

dấu ngăn cỏch thập phõn

Vớ dụ:

DT.INP DT.OUT

0 0

1 0

0 1

0.5

Cõu 2: (3,5 điểm) Đặt vộ vào sõn NouCamp NOUCAMP.PAS

NouCamp là một sõn búng lớn Sõn cú N ghế ngồi, cỏc ghế được đỏnh số thứ tự từ 1 đến N

Tối nay, sõn NouCamp sẽ diễn ra trận đấu giữa hai đội búng lớn của thế giới: Barcelona và Real Madrid Hiện nay, một số ghế trờn sõn đó được khỏn giả đặt mua làm chỗ ngồi

Yờu cầu: Hóy kiểm tra xem trờn sõn cũn những ghế nào chưa được mua vộ đặt

chỗ

Trang 2

Ví dụ:

16 10

2 3 6 7 8 9 10 12 15 16

1 4 5 11 13 14

Bé Ri tuy còn nhỏ nhưng là một cô bé rất xinh xắn và chăm chỉ Mẹ bé Ri là chủ một cửa hàng Hàng ngày, cửa hàng của mẹ loại ra rất nhiều hộp giấy hình hộp chữ nhật Bé Ri thường giúp mẹ xếp những hộp giấy này lồng vào nhau cho gọn Giả sử có N hộp giấy, các hộp được đánh số từ 1 đến N Với mỗi hộp giấy,

bé Ri biết được chính xác độ dài hai cạnh đáy của hộp là a và b

Yêu cầu: Hãy giúp bé Ri xếp các hộp sao cho số lượng các hộp lồng vào nhau là

lớn nhất

Dữ liệu vào: Cho trong file văn bản XEPHOP.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N, là số lượng hộp giấy (1 ≤ N ≤ 1000)

- N dòng tiếp theo: Mỗi dòng ghi hai số nguyên dương ai bi, là độ dài hai cạnh đáy của hộp giấy thứ i (1 ≤ ai, bi ≤ 32767)

Dữ liệu ra: Ghi ra file văn bản XEPHOP.OUT theo cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương M là số lượng các hộp giấy lồng nhau tìm được

- Dòng 2: Ghi M số nguyên dương, là chỉ số của M hộp giấy theo thứ tự từ ngoài

vào trong của một cách xếp hộp

Ví dụ:

XEPHOP.INP XEPHOP.OUT

5

1 5

5 7

6 4

3 6

2 5

3

2 3 5

==HẾT==

Trang 3

Së GD&§T kú thi CHäN häc sinh giái cÊp tØnh líp 12 THPT Qu¶ng b×nh n¨m häc 2012 - 2013

M«n thi: tin häc - Vßng iI

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

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

- Riêng Câu 3, chỉ số các hộp được chọn của HS có thể khác với đáp án Nếu kết quả của học sinh khác đáp án nhưng vẫn đúng thì giám khảo vẫn cho điểm tối

đa

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

Câu 1: (3,0 điểm) Tính diện tích tam giác

{$r+}

const fi='dt.inp';

fo='dt.out';

type mm=array [1 4] of integer;

var a,b:mm; f:text; s:real;

procedure nhap;

var i:integer;

begin

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

for i:=1 to 3 do readln(f,a[i],b[i]);

close(f);

end;

procedure xuly;

var i:integer; T1,T2:LONGINT;

begin

a[4]:=a[1]; b[4]:=b[1];

s:=0;

for i:=1 to 3 do

begin

t1:=b[i+1]+b[i];

Trang 4

fg='noucamp.out';

maxn=51000;

type mmc=array[1 maxn] of byte;

var a:mmc; ti,n,m:longint;

procedure xl;

var f:text; i,x:longint; by,bi:word;

begin

fillchar(a,sizeof(a),0);

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

readln(f,n,m);

for i:=1 to m do

begin

read(f,x);

by:=(x div 8)+1;

bi:= x mod 8;

if bi=0 then

begin

bi:=8;

by:=by-1;

end;

a[by]:=a[by] or (1 shl (bi-1));

end;

close(f);

end;

procedure xuat;

var f:text; i,j:longint;

begin

assign(f,fg);rewrite(f);

{writeln(f,n-m);}

for i:= 1 to n div 8 do

for j:=1 to 8 do

if ((a[i] shr (j-1)) and 1)=0 then write(f,(i-1)*8+j,' ');

close(f);

end;

begin xl; xuat; end

Câu 3: (3,5 điểm) Xếp hộp lồng nhau

{$R+,Q+}

{$M 63840,0,655360}

Const Fi='xephop.in1';

Fo='xephop.out';

Type Mang=Array[0 5000] of integer;

Var A,b,vt:Mang; F:Text; M,n:integer;

Function Max(a,b:Integer):integer;

Begin

Max:=a;

If b>a then Max:=b;

End;

Procedure Doi(Var A,b:Longint);

Var T:Longint;

Begin

T:=a; A:=b; B:=t;

End;

Procedure Doi1(Var A,b:integer);

Var T:integer;

Begin

T:=a; A:=b; B:=t;

End;

Procedure Init;

Var S:Array[0 5000] Of Longint;

I,j:Integer;

procedure Sort(l, r: Integer);

var

i, j, x, y: Longint;

Trang 5

begin

i := l; j := r; x := s[(l+r) DIV 2];

repeat

while s[i] < x do i := i + 1;

while x < s[j] do j := j - 1;

if i <= j then

begin

{ y := a[i]; a[i] := a[j]; a[j] := y;}

Doi1(a[i],a[j]); Doi1(b[i],b[j]); Doi(s[i],s[j]); Doi1(vt[i],vt[j]);

i := i + 1; j := j - 1;

end;

until i > j;

if l < j then Sort(l, j);

if i < r then Sort(i, r);

end;

Begin

Assign(f,fi);

Reset(f);

Readln(f,n);

For i:=1 to n do vt[i]:=i;

For i:=1 to n do

Begin

Readln(f,a[i],b[i]);

If A[i]<b[i] then Doi1(a[i],b[i]);

End;

Close(f);

Fillchar(s,sizeof(s),0);

For i:=1 to n do

S[i]:=longint(a[i])*Longint(b[i]);

Sort(1,n);

End;

Function Bao(i,j:Integer):boolean;

Begin

Bao:= (a[j]>a[i]) And (b[j]>b[i]);

End;

Procedure Qhd;

Var I,j,maxx,v:Integer;

Tr,sl:Array[0 5000] Of Integer;

Begin

For i:=1 to n do sl[i]:=1;

For i:=2 to n do

For j:=i-1 downto 1 do

If sl[j]+1>sl[i] then

if Bao(j,i) then

Begin

Tr[i]:=j;

Sl[i]:=sl[j]+1;

End;

Trang 6

End;

Begin

Init; Qhd;

End

Ngày đăng: 10/03/2014, 11:20

TỪ KHÓA LIÊN QUAN

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