HƯỚNG DẪN THI HỌC SINH GIỎI TIN HỌC THCS NĂM HỌC 2012-2103 Yêu cầu chung - Đề thi theo hình thức lập trình máy với thuật tốn - Chương trình dịch: Turbo Pascal, Free Pascal - Đề thi gồm đến câu, thang điểm 20 - Chấm thi: Bài thi chấm máy tính; Chấm theo test, test điểm test Điểm thi tổng điểm test.(Chỉ đọc chương trình cần phân loại trường hợp đồng điểm) - Học sinh phải tuân thủ nghiêm ngặt quy định đặt tên file qui cách xuất liệu (định hướng chấm máy) Nội dung: - Tổ chức rẽ nhánh ( Lệnh If … then … else; If … then… ) - Tổ chức rẽ nhánh Case … of - Tổ chức lặp While… - Tổ chức lặp Repeat… Until… - Tổ chức lặp For … Do… - Kiểu liệu xâu (String) - Kiểu liệu mảng ARRAY: Mảng chiều, hai chiều - Kiểu liệu file: File văn (các câu lệnh nhập xuất bản) - Chương trình con: Thủ tục hàm - Đệ quy Các thuật tốn cần lưu ý: - Thuật tốn tìm kiếm, xếp - Số học: Kiểm tra số nguyên tố, số phương, số hồn hảo, phân tích thừa số nguyên tố, dãy Fibonacci, tính giai thừa số nguyên, tính lũy thừa, tính tổng chữ số số nguyên, tính tổng ước số nguyên, tìm số đảo số nguyên, tính tổng dãy số, tạo số ngẫu nhiên, tìm USCLN, BSCNN, chuyển đổi số, số La mã Nén giải nén xâu kí tự Cộng, trừ, nhân số lớn, chuyển đổi số… - Các thuật toán xử lý mảng chiều: Tìm phần tử lớn nhất, nhỏ (cần vị trí), đếm số phần tử thỏa điều kiện cho trước Di chuyển phần tử mảng Sắp xếp mảng thỏa điều kiện cho trước Trộn mảng thành mảng mới, tạo dãy số ngẫu nhiên… - Xâu: Chuẩn hóa xâu (chuyển xâu sang chữ in hoa, chữ thường, xóa dấu cách thừa, viết hoa kí tự đầu từ, ), kiểm tra xâu đối xứng, đếm kí tự, từ xâu, mã hóa, giải mã xâu Đếm phần tử xâu thỏa điều kiện cho trước… ThuVienDeThi.com - Hình học: Các thuật toán biểu diễn điểm, đường thẳng, đoạn thẳng, vị trí tương đối (giữa điểm đường thẳng, điểm đường tròn, đường thẳng đường thẳng, đường thẳng đường tròn) Tính diện tích chu vi đa giác… -Các tốn thực tế: Tiền gửi ngân hàng, Dân số, Sắp xếp lịch thi đấu,… Lưu ý: - Dữ liệu nhập bao gồm: nhập từ bàn phím nhập từ file văn - Chấm thi môn Tin học theo Test, nên cần ghi rõ phương án làm Test đáp án (đảm bảo phân loại học sinh: test lớn, test nhỏ, độ khó, test dự phịng) - Giám khảo chấm mơi trường Free Pascal trước, có lỗi xảy chuyển sang chấm mơi trường Turbo Pascal để đảm bảo quyền lợi thí sinh - Đáp án cần ghi rõ qui cách liệu vào, liệu ra, điểm test khả điểm tương ứng (lưu ý có kiểm sốt lỗi liệu nhập quy cách liệu xuất) - Phần chương trình đệ quy giới thiệu mang tính cơng cụ lập trình giải tốn Không yêu cầu bắt buộc phải giải chương trình đệ quy ThuVienDeThi.com ………………………… ………………………… ĐỀ THAM KHẢO KỲ THI CHỌN HỌC SINH GIỎI CẤP … Năm học ……… Môn: TIN HỌC Thời gian: …phút (không kể thời gian giao đề) Ngày thi : /…/… (Đề thi có … trang, gồm … bài) Hãy lập trình giải tốn sau: Tên chương trình: SUM.PAS Bài 1: Cộng hai số (5 điểm) Cho trước hai số nguyên A B Hãy tính tổng chúng Dữ liệu: Vào từ file văn SUM.INP chứa hai số nguyên dương A B, số dòng (A, B < 10100) Kết quả: Ghi file văn SUM.OUT chứa tổng cần tìm (khơng chứa số đầu) SUM.INP SUM.OUT Tên chương trình: PRIME.PAS Bài 2: Số nguyên tố (5 điểm) Biết rằng: “Mọi số tự nhiên chẵn lớn viết dạng tổng số nguyên tố” Viết chương trình đọc vào số chẵn N lớn 2, tìm cặp số ngun tố có tổng N, có nhiều cặp tìm cặp có chứa số nguyên tố nhỏ Dữ liệu: Vào từ file văn PRIME.INP gồm dòng chứa số chẵn N(4 ≤ N ≤ 998) Kết quả: Ghi file văn PRIME.OUT chứa hai số nguyên tố có tổng N, số số nguyên tố nhỏ (hai số cách dấu cách) Ví dụ: Test PRIME.INP PRIME.OUT 33 992 73 919 Tên chương trình: TEXT.PAS Bài 3: Text (5 điểm) Với văn cho trước bao gồm từ, dấu chấm câu ký hiệu khác Từ văn chuỗi liên tiếp ký tự chữ hoa chữ thường bảng chữ Yêu cầu: Hãy viết theo thứ tự ngược tất từ văn bản, dấu câu ký tự khác không cần thay đổi Dữ liệu: Vào từ file văn TEXT.INP chứa văn ban đầu gồm hay nhiều dịng, dịng có khơng q 255 ký tự, dịng file đến 1000 Kết quả: Ghi file văn TEXT.OUT chứa văn mà kí tự bị đảo ngược Ví dụ: TEXT.INP TEXT.OUT This is an example sihT si na elpmaxe ThuVienDeThi.com Tên chương trình: DAYSO.PAS Bài 4: Dãy 0-1 (5 điểm) Đọc vào dãy chứa số Hãy kiểm tra dãy có chứa số xen kẽ không? Dữ liệu: Vào từ file văn DAYSO.INP gồm dòng: Dòng đầu chứa số nguyên n (1≤ n ≤ 20) Dòng thứ hai chứa dãy số , Các số dòng cách dấu cách Kết quả: Ghi file văn DAYSO.OUT chứa chữ ‘YES” dãy chứa số xen kẽ nhau, ngược lại ghi “NO” DAYSO.INP DAYSO.OUT YES 10101 NO 010111 - HẾT Thí sinh khơng sử dụng tài liệu Giám thị khơng giải thích thêm ThuVienDeThi.com HƯỚNG DẪN CHẤM Bài 1: Cộng hai số (5 điểm) Test SUM.INP 1234 56 9099 2012 1234567890 2012 SUM.OUT 1290 11111 1234569902 45454545454545454545454545454545454545454545454545 99….9( 50 số 54545454545454545454545454545454545454545454545454 9) Lời giải tham khảo: var s1,s2: string; m: array[1 120] of integer; i,c,l1,l2 : integer; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); readln(s1); readln(s2); l1:=length(s1); l2:=length(s2); while(length(s1)