1. Trang chủ
  2. » Tạp chí truyện tranh

De thi HSG Tin Lop 9+DAP AN

5 15 1

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

THÔNG TIN TÀI LIỆU

Nội dung

Sau khi thi xong Sở Giáo dục- Đào tạo tổ chức cho các thí sinh giao lưu với nhau, Ban tổ chức sắp xếp các thí sinh đứng thành một vòng tròn, để tạo điều kiện cho các thí sinh trong tỉnh[r]

(1)

SỞ GIÁO DỤC ĐÀO TẠO KỲ THI HỌC SINH GIỎI LỚP CẤP TỈNH

TỈNH BÀ RỊA - VŨNG TÀU NĂM HỌC 2008-2009

Ngày thi 04 tháng 03 năm 2009 Môn thi: Tin Học

Thời gian:150 phút

Lập trình để giải tốn sau ngơn ngữ Pascal Bài 1: (5 điểm)

a Nhập dãy số nguyên có n phần tử (0< n  100)

b Sắp xếp dãy vừa nhập theo thứ tự tăng dần, in hình dãy thứ tự c Tìm dãy xếp có phần tử x hay khơng, với x nhập từ bàn phím Bài 2: (7 điểm)

Cho đa thức bậc n: A = anxn + an-1xn-1 +…+ a1x + a0

Trong an, an-1,…a1,a0 hệ số nguyên có giá trị tuyệt đối không 100

Biết phương trình A = có nghiệm ngun nghiệm nguyên ước số hệ số a0

Yêu cầu: Hãy tìm tất nghiệm ngun (nếu có) phương trình A =

Dữ liệu vào từ file ‘INTROOT.INP’:  Dòng đầu số nguyên n (2≤n≤100)

 Dòng thứ ghi n+1 số nguyên tương ứng hệ số an, an-1,…a1,a0 đa thức (các số cách khoảng trắng)

Kết quả ghi vào file ‘INTROOT.OUT’ dịng ghi nghiệm tìm (nếu khơng có kết ghi ‘khong co’)

Ví dụ:

INTROOT.INP INTROOT.OUT

4

1 -1 -2 -4

-1

(Giải thích: ví dụ phương trình x4-x3-2x-4=0 có nghiệm ngun -1 2)

Hướng dẫn thêm: để tính biều thức A cách hiệu nhất, người ta phân tích A thành dạng sau:

A = (…((anx + an-1)x + an-2)x + …)x +a1)x + a0 Bài 3: (8 điểm)

Kỳ thi học sinh giỏi năm học 2008-2009 tỉnh Bà Rịa-Vũng Tàu có đội tuyển dự thi đến từ huyện (TX, TP), số thứ tự huyện đánh số từ đến Vũng Tàu, Bà Rịa, Tân Thành, Châu Đức, Xuyên Mộc, Đất Đỏ, Long Điền, Cơn Đảo Mỗi thí sinh dự thi có số báo danh (là số nguyên dương), đội tuyển huyện tối đa 90 thí sinh Sau thi xong Sở Giáo dục- Đào tạo tổ chức cho thí sinh giao lưu với nhau, Ban tổ chức xếp thí sinh đứng thành vịng trịn, để tạo điều kiện cho thí sinh tỉnh giao lưu với Ban tổ chức yêu cầu thí sinh huyện khơng đứng gần nhau, thí sinh thuộc huyện có số thứ tự liền kề không đứng gần

Yêu cầu: Hãy giúp Ban tổ chức cách xếp thỏa mãn yêu cầu

Dữ liệu vào: file ‘pupil.inp’

Gồm có dịng, dịng thứ i chứa số báo danh thí sinh huyện thứ i, số báo danh cách dấu cách

(2)

(Mô tả cách xếp n thí sinh theo u cầu vịng trịn, ta mơ tả đường thẳng, thí sinh đầu thí sinh cuối đứng gần vòng tròn)

Gồm n dòng (n tổng số thí sinh), dịng số báo danh thí sinh Trong trường hợp khơng có cách thỏa mãn yêu cầu ghi -1

Ví dụ

Pupil.inp Pupil.out

1 10 11 12 13 14 15 16 17 18 19 20 21 22 23

1 22 16 17 23 18 10 11 12 13 19 14 20 15 21

_Hết

Họ tên thí sinh:……… Chữ ký gián thị

(3)

SỞ GIÁO DỤC ĐÀO TẠO KỲ THI HỌC SINH GIỎI LỚP CẤP TỈNH

TỈNH BÀ RỊA - VŨNG TÀU NĂM HỌC 2008-2009

HƯỚNG DẪN CHẤM ĐỀ CHÍNH THỨC MƠN TIN HỌC

Lưu ý chung: Học sinh viết theo cách khác, chương trình chạy cho kết đúng, cho điểm tối đa, ngược lại chấm theo hướng dẫn sau Tùy theo mức độ sai, trừ điểm hợp lý, tổng số điểm không 50% điểm tối đa

Bài 1: (5 điểm)

- Nhập dãy số nguyên: viết cho đ

- Sắp xếp dãy vừa nhập theo thứ tự tăng dần: viết cho đ

- Tìm phần tử x dãy: học sinh sử dụng kỹ thuật tìm kiếm nhị phân cho điểm, tìm kiếm cho điểm

Bài 2:(7 điểm)

Thuật toán cho này: Cho i nhận giá trị ước số a[0] (kể ước âm) Nếu tinh A = i nghiệm nguyên.

- Chương trình khởi tạo đọc liệu từ file: thủ tục Ini, cho điểm

- Chương trình tính giá trị đa thức, hàm Polynormial(x), viết hợp lý cho điểm, viết chưa hợp lý cho điểm

- Chương trình tìm nghiệm, thủ tục Inroot, viết cho điểm - Khai báo xử lý chung cho điểm

Bài 3:(8 điểm)

- Chương trình khởi tạo đọc liệu, thủ tục Ini, viết cho điểm

- Chương trình kiểm tra phần tử cuối ghi kết lên file, thủ tục Test, viết cho điểm

- Chương trình xây dựng cấu hình theo u cầu tốn, thủ tục Try, viết cho điểm

- Khai báo xử lý chung cho điểm

Sau chương trình hồn chỉnh để tham khảo thêm

**************************************************** Program bai1;

var a:array[1 100] of integer; i,j,n,t,x,p,q:integer;found:boolean; Begin

{********a Nhap**************}

Write('Nhap so phan tu cua day:');Readln(n); For i:=1 to n readln(a[i]);

{*********b Sap xep, in day man hinh *************} For i:=1 to n-1

For j:=1 to n-i if a[j]>a[j+1] then begin

t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t; end;

For i:=1 to n write(a[i],' ');

{***********c Tim kiem *********************} Write('Nhap gia tri can tim:');

(4)

i:=(p+q) div 2;

if a[i]= x then found:=true else if a[i]<x then p:=i else q:=i;

Until (found)or(q-p=1);

if found then Writeln('Tim thay',x,' tai vi tri ',i) else writeln('Khong tim thay');

readln; End

*************************************************** Program bai2;

Var i,n:shortint;f:text; a:array[0 100]of shortint; Procedure Ini;

Begin

assign(f,'introot.inp'); reset(f);

readln(f,n);

For i:=n downto read(f,a[i]); close(f);

assign(f,'introot.out'); rewrite(f);

end;

Function polynormial(x:integer):real; Var i:shortint;y:real;

Begin y:=a[n];

For i:=n-1 downto y:=y*x+a[i]; polynormial:=y;

End;

Procedure introot; Begin

For i:=abs(a[0]) downto -abs(a[0]) if (i<>0) and(a[0] mod i = 0) then if polynormial(i)=0 then writeln(f,i); close(f);

end; Begin ini; introot; End

************************************************************* Program Bai3;

var f:text; n:integer;

candidate,x:array[0 630] of byte; free:array[1 630]of boolean; procedure ini;

var sbd,i:integer; begin

fillchar(candidate,630,0); candidate[0]:=10; fillchar(free,630,true); assign(f,'pupil.inp'); reset(f);

n:=0;

For i:=1 to begin

(5)

read(f,sbd); candidate[sbd]:=i; inc(n);

end; readln(f); end; end;

Procedure test; var i:integer; begin

if (abs(candidate[n]-candidate[1])>1) then begin

assign(f,'pupil.out'); rewrite(f);

for i:= to n writeln(f,x[i]); close(f);

halt; end; end;

Procedure try(i:integer); var j:integer;

begin

for j:=1 to n

if (free[j]) and (abs(candidate[j]-candidate[x[i-1]])>1) then begin

x[i]:=j; free[j]:=false; if i=n then test else try(i+1); free[j]:=true; end;

Ngày đăng: 08/03/2021, 12:11

TỪ KHÓA LIÊN QUAN

w