Tính số cách chia phần thưởng sao cho thỏa các điều kiện sau: - Số phần thưởng của học sinh hạng i phải lớn hơn hoặc bằng số phần thưởng của học sinh hạng j nếu j>i - Tất cả các phần thư[r]
Trang 1HỘI THI OLYPIC TIN HỌC TRẺ ĐỀ THI PHẦN THỰC HÀNH
NĂM 2012 Thời gian làm bài: 90 phút
Ngày thi: 30-03-2012
YÊU CẦU CHUNG:
- Nếu thí sinh không sử dụng tệp dữ liệu vào ra, có thể nhập dữ liệu từ bàn phím và xuất kết quả ra màn hình
- Tạo thư mục với tên theo quy định C2_SBD trong ổ D:\ (trong đó SBD là số báo danh của thí sinh) Các bài làm của thí sinh phải lưu trong thư mục này
- S d ng ngôn ng l p trình Turbo Pascal ho c Free Pascal ử ụ ữ ậ ặ để ế vi t chương trình Đặt tên các b i l m v tên t p d li u theo quy à à à ệ ữ ệ định trong b ng sau:ả
Stt Bài Quy định đặt tên tệp
chương trình
Quy định tên tệp
dữ liệu vào
Quy định tên tệp
dữ liệu ra
1 Bài 1 Bai1.Pas DATABAI1.INP KQBAI1.OUT
2 Bài 2 Bai2.Pas DATABAI2.INP KQBAI2.OUT
3 Bài 3 Bai3.Pas DATABAI3.INP KQBAI3.OUT
4 Bài 4 Bai4.Pas DATABAI4.INP KQBAI4.OUT
Bài 1: (20 điểm):
Viết chương trình tính tổng S= 1+1.2+1.2.3+…+1.2.3…N (N<=30)
Dữ liệu vào: Lấy từ tệp DATABAI1.INP gồm 1 dòng ghi số nguyên dương N Kết quả ra: ghi tổng S vào tệp KQBAI1.OUT
Ví dụ:
DATABAI1.INP KQBAI1.OUT
Bài 2: (20 điểm):
Số chính phương là một số nguyên có căn bậc hai là một số nguyên (ví dụ: 9 là
số chính phương vì √9 =3) Viết chương trình tìm, đếm và tính tổng các số chính phương có trong dãy số nguyên dương gồm N phần tử A1, A2, …, AN
Dữ liệu vào: lấy từ tệp DATABAI2.INP gồm 2 dòng: Dòng đầu ghi số nguyên dương N (N<=10000), dòng tiếp theo ghi N số nguyên dương (mỗi số cách nhau một dấu cách)
Kết quả ra: ghi vào tệp KQBAI2.OUT gồm 3 dòng:
- Dòng 1 ghi các số chính phương của dãy giữ nguyên thứ tự xuất hiện (mỗi số cách nhau một dấu cách)
- Dòng 2 ghi số lượng số chính phương trong dãy
- Dòng 3 ghi tổng của các số chính phương trong dãy
Ví dụ:
7
11 4 100 5 25 36 10
4 100 25 36 4
165
Bài 3: (20 điểm)
Trang 2Viết chương trình phân tích một số nguyên dương ra thừa số nguyên tố.
Dữ liệu vào: lấy từ tệp DATABAI3.INP gồm 1 dòng ghi số nguyên dương N Kết quả ra: ghi vào tệp KQBAI3.OUT
Ví dụ:
DATABAI3.INP KQBAI3.OUT
50│2 25│5 5│5 1│
Bài 4: (20điểm)
Có M phần thưởng chia cho N học sinh giỏi được xếp hạng thứ 1 đến N Tính
số cách chia phần thưởng sao cho thỏa các điều kiện sau:
- Số phần thưởng của học sinh hạng i phải lớn hơn hoặc bằng số phần thưởng của học sinh hạng j nếu j>i
- Tất cả các phần thưởng đều phải được thưởng hết cho học sinh
Dữ liệu vào: lấy từ tệp DATABAI4.INP gồm 2 dòng: dòng đầu tiên ghi số M (M>=1), dòng tiếp theo ghi số N (N<=50)
Kết quả ra: Ghi các cách chia vào tệp KQBAI4.OUT (mỗi cách chia ghi trên một dòng Mỗi dòng có N giá trị, mỗi giá trị là số phần thưởng nhận được tương ứng của từng học sinh được xếp hạng từ 1 đến N Các giá trị ghi trên một dòng cách nahu ít nhất một dấu cách) Dòng cuối cùng ghi số cách chia phần thưởng tìm được
Ví d :ụ
7
3
7 0 0
6 1 0
5 2 0
5 1 1
4 3 0
4 2 1
3 3 1
3 2 2 8