1. Trang chủ
  2. » Văn Hóa - Nghệ Thuật

de thi tin hay

4 4 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 13,9 KB

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

Nội dung

A, B, C, D là các số nguyên dương và không lớn hơn 10000 Dữ liệu ra: kết quả đưa ra tệp văn bản NHAN.OUT Có một dòng chứa hai số E và F tìm được thỏa mãn hai điều kiện trên.. Bài 2: 7 đi[r]

Trang 1

SỞ GIÁO DỤC – ĐÀO TẠO

NAM ĐỊNH

KỲ THI HỌC SINH GIỎI THPT TOÀN TỈNH

NĂM HỌC 2008 - 2009 Môn: TIN HỌC Lớp 12

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

§Ò thi gåm 02 trang

LËp ch¬ng tr×nh gi¶i c¸c bµi to¸n sau:

Bài 1: (6 điểm) Nhân hai phân số

Cho hai phân số A BC D

Hãy xác định 2 số nguyên dương E và F thỏa mãn 2 điều kiện sau:

+ Điều kiện 1: E F=A

B x

C D

+ Điều kiện 2: E F là phân số tối giản

Dữ liệu vào: từ tệp văn bản NHAN.INP, có cấu trúc

+ Dòng 1 chứa hai số A và B

+ Dòng 2 chứa hai số C và D

( A, B, C, D là các số nguyên dương và không lớn hơn 10000)

Dữ liệu ra: kết quả đưa ra tệp văn bản NHAN.OUT

Có một dòng chứa hai số E và F tìm được thỏa mãn hai điều kiện trên

Ví dụ về dữ liệu vào/ra

2 5

3 6

1 5

Bài 2: (7 điểm) Tìm dãy con chung

Dãy C gọi là dãy con chung của dãy A và dãy B nếu C là dãy gồm các phần

tử nằm liên tiếp cả trong A và B

Cho hai dãy số A và B, mỗi dãy đều có N phần tử (các phần tử đều nguyên dương và không quá 1000) Yêu cầu tìm dãy C là dãy con chung của A và B mà có nhiều phần tử nhất

Dữ liệu vào: từ tệp văn bản DAYCON.INP, có cấu trúc:

- Dòng 1 chứa số N (N nguyên dương và không quá 500)

- Dòng 2: chứa N số thuộc dãy số A.

- Dòng 3: chứa N số thuộc dãy số B.

Dữ liệu ra: đưa ra tệp văn bản DAYCON.OUT

Chứa duy nhất một số là số phần tử của dãy C thỏa mãn yêu cầu

(Trong tệp dữ liệu vào hoặc ra, các số trên cùng một dòng cách nhau ít nhất một dấu cách)

ĐỀ CHÍNH THỨC

Trang 2

Ví dụ về dữ liệu vào /ra:

6

2 1 7 10 6 3

8 5 1 7 9 10

2

(dãy con thỏa mãn: 1, 7)

Bài 3: (7 điểm) Công ty kinh doanh xăng dầu

Công ty kinh doanh xăng dầu BX hiện có N lít xăng Công ty nhận được M yêu cầu mua xăng của khách hàng (khách hàng được đánh số từ 1 đến M), mỗi yêu cầu cần mua một lượng xăng nhất định Nếu công ty BX không đáp ứng đủ lượng xăng cần thiết thì sẽ bị mất lòng với khách hàng Vì lượng xăng có thể không đủ cho tất cả các yêu cầu của khách hàng nên phải từ chối một số khách hàng nào đó

Công ty BX nhờ em tìm cách bán xăng cho các khách hàng chỉ làm mất lòng khách hàng ít nhất

Dữ liệu vào: từ tệp văn bản BX.INP, có cấu trúc

- Dòng 1 chứa 2 số N và M

(N và M nguyên dương, N<1 000 000, M<2 000)

- Dòng 2 chứa M số nguyên dương, số thứ I trong M số là số lít xăng mà khách hàng thứ I yêu cầu mua (mỗi yêu cầu của khách đều nguyên dương và không quá 10 000 lít)

Dữ liệu ra: Kết quả đưa ra tệp văn bản BX.OUT, theo cấu trúc

- Dòng 1: chứa số S là số lượng các khách hàng mất lòng ít nhất

- Nếu S>0 thì dòng 2 chứa S số theo thứ tự tăng, số thứ j trong S số thể hiện khách hàng j mất lòng Nếu có nhiều trường hợp thỏa mãn S thì chỉ cần đưa

ra một trường hợp

(Trong tệp dữ liệu vào hoặc ra, các số trên cùng một dòng cách nhau ít nhất một dấu cách)

Ví dụ về dữ liệu vào /ra:

100 5

50 20 60 40 30

2

3 4 (có trường hợp khác: 1 3)

Chú ý: tệp chương trình của bài 1 đặt tên là CHIA.PAS.

của bài 2 đặt tên là DAYCON.PAS

của bài 3 đặt tên là BX.PAS

HÕt

Hä vµ tªn thÝ sinh: Ch÷ ký cña Gi¸m thÞ sè 1:

Sè b¸o danh: Ch÷ ký cña Gi¸m thÞ sè 2:

Trang 3

SỞ GIÁO DỤC – ĐÀO TẠO

NAM ĐỊNH

KỲ THI HỌC SINH GIỎI THPT TOÀN TỈNH

NĂM HỌC 2008 - 2009 Đỏp ỏn và hướng dẫn chấm

Mụn : TIN HỌC Lớp 12 Chấm bài bằng các test, chơng trình không chạy hoặc dữ liệu vào ra không phù hợp sẽ không đợc điểm Mỗi test đúng đợc 0,5 điểm

Trờng hợp sai tên tệp chơng trình hoặc tệp dữ liệu vào ra thì sửa lại cho đúng Tiến hành chấm nh bình thờng, kết quả trừ 1/4 số điểm của bài đó đạt đợc

- Đọc vào 4 số A, B, C, D

- E=A x C, F=B x D

- Tìm U là ớc chung lớn nhất của E và F

- E = E Div U ; F = F Div U

- Xuất: E và F

- Chỉ chú ý: Các biến phải khai báo kiểu longint

- Đọc vào 2 dãy số A, B

kmax:=0;

for i:=1 to n do

for j:=1 to n do

if a[i]=b[j] then

begin k:=0;

repeat inc(k);

until (i+k>n)or(j+k>n)or(a[i+k]<>b[j+k]);

if kmax<k then kmax:=k;

end;

writeln(f2,kmax);

Cách 1 :

- Sắp xếp các yêu cầu theo thứ tự tăng dần (chú ý số hiệu khách hàng)

- Tìm K nhỏ nhất mà tổng các yêu cầu từ 1 đến K lớn hơn lợng xăng N.

- Kết quả : Số khách hàng mất lòng (N-K+1) (có thể lợng xăng đủ cho các

khách hàng)

- Đa ra theo chỉ số của các khách từ K không đợc đáp ứng (Sắp xếp theo thứ

tự tăng hoặc trong quá trình sắp xếp ở trên phải dùng cách sắp xếp kiểu chèn dần)

Cách 2:

- Dùng thêm mảng đánh dấu chuaxet.

- Với N >0 thì tìm min( yêu cầu), (giả sử là yêu cầu i thỏa mãn),

- N=N- yc[i]

- Lặp

ĐỀ CHÍNH THỨC

Trang 4

Cách dùng chơng trình chấm :

- Tạo các th mục tên của thí sinh, chứa bài làm Đặt cùng nơi có th mục các

bài chấm

- Yêu cầu : các tệp chơng trình của turbo pascal (có cả tệp TPC.EXE) đặt

trong th mục TP tại th mục gốc cùng ổ đĩa

- Chấm bài nào vào th mục bài đó, chạy tệp _tenbai.exe

- Nhập tên của thí sinh (tên thí sinh trùng tên th mục chứa bài làm tơng ứng)

- Kết thúc thì nhấn Enter

Quá trình chấm có những lỗi sau :

1- Vào ra dữ liệu không đúng yêu cầu

+ Nhập xuất với bàn phím, màn hình mà yêu cầu là từ tệp văn bản

+ Tệp vào có cấu trúc nhng toàn dùng While not eof(f) do để đọc dữ liệu + Xuất dữ liệu không đúng quy cách : kiểu số thực, dấu cách giữa các số 2- Sử dụng các vòng lặp không phù hợp

+ Lặp vô hạn : không thay đổi biến đếm

+ Thay đổi biến đếm trong vòng lặp For

3- Sử dụng kiểu dữ liệu, khai báo, xử lí biến không phù hợp

+ Hay bị lỗi Rancheck: tác động đến phạm vi không có thực của mảng + Hay lỗi Arithmetic overflow tính toán ngoài phạm vi của biến

4- Dùng các công việc không nên có trong khi làm bài thi

+ Dùng Readln cuối chơng trình

+ Dùng Clrscr xóa màn hình

Ngày đăng: 08/07/2021, 03:43

w