Dành cho học sinh không chuyên Đề 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: Câu 1: 3 điểm: Tổng các chữ số SUM.PAS Cho dãy gồm N số nguyên dơng a1,
Trang 1Sở 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 SBD: Môn: Tin học
Đề chính thức Thời gian làm bài: 150 phút.
(Dành cho học sinh không chuyên)
Đề 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:
Câu 1: (3 điểm): Tổng các chữ số SUM.PAS
Cho dãy gồm N số nguyên dơng a1, a2, , an
Yêu cầu: Tìm tất cả các phần tử của dãy sao cho mỗi phần tử
có tổng giá trị các chữ số của nó là một số lẻ
Dữ liệu vào: Cho trong file văn bản SUM.INP có cấu trúc nh
sau:
- Dòng 1: Ghi số nguyên dơng N
- Dòng 2: Ghi các số a1, a2, , an Các số đợc ghi cách nhau
ít nhất một kí tự trắng (1 ≤ N ≤ 1000; 1 ≤ ai ≤ 65535, i = 1 N)
Dữ liệu ra: Ghi ra file văn bản SUM.OUT theo cấu trúc sau:
- Dòng 1: Ghi số nguyên dơng K, là số lợng các phần tử tìm
đợc
- Dòng 2: Ghi K số nguyên dơng, là vị trí của các phần tử tìm đợc Các số đợc ghi theo thứ tự tăng dần, giữa các số cách nhau ít nhất một kí tự trắng
Ví dụ:
5
45 255 347 14 2436
3
1 4 5
Trang 2Trong bảng mã ASCII ngời ta dùng 8 bít để mã hoá một kí tự, mỗi bít nhận một trong hai giá trị 0 hoặc 1
Để mã hoá một xâu văn bản ta mã hoá lần lợt từng kí tự của xâu
Ví dụ: Xâu ’Ab’ đợc mã hoá thành 0100000101100010
Yêu cầu: Khôi phục xâu văn bản gốc khi biết đoạn mã nhị
phân của nó Biết rằng văn bản gốc chỉ bao gồm các chữ cái:
’a’ ’z’, ’A’ ’Z’, ký tự trắng (dấu cách) và các chữ số từ 0 9
Dữ liệu vào: Cho trong file văn bản GIAIMA.INP có cấu trúc
nh sau:
- Dòng 1: Ghi xâu nhị phân có độ dài tối đa là 255 kí tự
Dữ liệu ra: Ghi ra file văn bản GIAIMA.OUT theo cấu trúc sau:
- Dòng 1: Ghi xâu văn bản gốc
Ví dụ:
T 0100100001110011011001110010000000110
00100110001
Hsg 11
Câu 3: (3.5 điểm) Vòng hạt VONGhat.PAS
Trong một file văn bản có tên là VONGHAT.INP biểu diễn một vòng hạt, mỗi hạt có thể nhận một trong số các màu đợc mã số từ 1
đến 30
Yêu cầu: Tìm vị trí để cắt vòng hạt rồi căng thẳng ra sao
cho tổng số lợng các hạt cùng màu ở mỗi đầu là lớn nhất
Dữ liệu vào:
- Dòng 1 và dòng cuối: Mỗi dòng ghi một số nguyên dơng
- Trên các dòng còn lại: Mỗi dòng ghi 2 số nguyên dơng, các số
đợc ghi cách nhau một kí tự trắng
Mỗi số thuộc những dòng trên là mã màu của một hạt tơng ứng (Vòng hạt có tối đa là 1000 hạt) Các hạt của vòng đợc đánh
số bắt đầu từ 1 tại vị trí của hạt ở dòng 1 và theo chiều kim
đồng hồ
Trang 3Dữ liệu ra: Ghi ra file văn bản VONGHAT.OUT theo cấu trúc:
- Dòng 1: Ghi 3 số nguyên dơng i, j, t Các số đợc ghi cách nhau một kí tự trắng (i và j là chỉ số của hai hạt ở hai bên vị trí cắt, t
là số lợng các hạt tìm đợc)
Ví dụ:
VONGhat.INP VONGhat.OUT 4
8
7 8 7
HếT