Đề thi HSG tin học 9 Tỉnh Sóc Trăng năm học 2012-2013 Cùng hướng dẫn giải

Sau đây là Đề thi HSG tin học 9 Tỉnh Sóc Trăng năm học 2012-2013 Cùng hướng dẫn giải phần lập trình Pascal

Đề thi HSG tin học 9 Tỉnh Sóc Trăng 1213

Câu 1: (11 điểm)  Một bài tập về Excel

Câu 2: (9 điểm)  Bạn Tin và bạn Học gửi thư cho nhau theo dạng như sau:

TET DEN ROI

MUA DO MOI DI CHOI TET

VABXN GTR ZTI GATN

Biết rằng 2 hàng đầu chứa 2 từ khóa, 2 từ khóa chính là ký tự đầu của mỗi hàng, như trên là T và M. Nội dung chính của thư thật sự là hàng 3 trở đi. Mỗi lần gửi thư 2 bạn ấy sử dụng các từ khóa khác nhau, nếu có ký tự số thì giữ nguyên không mã hóa.

Cách mã hóa và giải mã:

Ta lập bảng so sánh gồm có 2 hàng, hàng 1 là bảng tương ứng với nội dung cần mã hóa, hàng 2 là bảng mã hóa.

Hàng 1 là bảng mã chữ cái theo qui định:

   A B  C  D E  F  G H  I   J   K  L M  N O  P Q  R  S  T   U  V  W X  Y  Z

Hàng 2 theo thứ tự như hàng 1 nhưng ta dịch chuyển sao cho 2 từ khóa trùng nhau, theo ví dụ trên thì 2 từ khóa sẽ có vị trí trùng với nhau là “T” và “M”.

Hàng 1           A  B  C  D  E   F  G  H   I    J   K  L  M  N  O  P  Q  R   S  T   U  V  W X  Y   Z

Hàng 2         T  U  V  W  X  Y   Z   A   B   C  D  E  F   G  H  I   J   K  L  M  N  O  P  Q  R   S

Với nội dung cần mã hóa là chuỗi ký tự st= “CHIEU NAY GAP NHAU”.

          Ta tìm từng ký tự ở chuỗi st trên hàng 1 và thay bằng ký tự tương ứng ở hàng 2, chữ C trên hàng 1 tương ứng với hàng 2 là chữ V, tương tự chữ H => A, I=>B, E => X, U=> N …  

      Vậy: CHIEU NAY GAP NHAU => VABXN GTR ZTI GATN

      Để giải mã VABXN GTR ZTI GATN thì ta làm ngược lại, bằng cách tìm từng ký tự ở chuỗi đã mã hóa trên hàng 2 và thay bằng ký tự tương ứng ở hàng 1, V ở hàng 2 tương ứng với hàng 1 là C, tương tự chữ A=>H, B => I, X => E, N => U …

     Vậy: VABXN GTR ZTI GATN => CHIEU NAY GAP NHAU

Như vậy, mất nhiều thời gian cho việc mã hóa và giải mã nếu nội dung thư dài.

Hãy giúp 2 bạn ấy bằng cách viết một chương trình (pascal) thực hiện mã hóa và giải mã:

1) Mã hóa:

Dữ liệu vào là file Noidung.inp

– Hàng 1 và hàng 2 là 2 câu với nội dung bất kỳ, 2 từ khóa là 2 ký tự đầu câu.

– Hàng 3 là nội dung thư cần mã hóa.

Dữ liệu ra là file Thuguidi.txt

– Hàng 1 và hàng 2 là 2 hàng đầu của file Noidung.inp.

– Hàng  3 trở đi chứa nội dung thư đã được mã hóa.

2) Giải mã:

Dữ liệu vào là file Thuguidi.txt (cấu trúc như trên).

Dữ liệu ra là file giaima.out

Chứa nội dung thư đã được giải mã.

Ghi chú:

      Các bài làm đặt tên là Cau1.xls và Cau2.pas được đặt chung một thư mục với các file Thuguidi.txt, giaima.out, noidung.inp

— HẾT —

Hướng dẫn giải Đề thi HSG tin học 9 Tỉnh Sóc Trăng 1213

Bình luận một chút về bài pascal

Đây là một bài toán theo đánh giá của mình là rất hay và thú vị nó là một bài toán mã hóa tệp tin theo một quy luật, những bài toán dạng này nên được đưa vào các kì thi HSG tin học bởi tính thực tế rất cao.

Để giải quyết được bài toán này học sinh cần phải nắm được các kĩ thuật như:

  • Đọc và xuất file dòng kí tự trong dòng không giới hạn, buộc lòng các em phải sử dụng cả hai lệnh EOF(f) và EOln(f) vì bài toán không có giới hạn mỗi dòng không quá 255 kí tự.
  • HS cũng phải tìm ra cách thể hiện thuật toán mã hóa và giải mã

Đây là một bài nhưng thật ra là hai bài, một bài mã hóa và một bài giải mã. Nếu các bạn đang luyện thi HSG Pascal phần xâu kí tự và file văn bản thì đây là một bài luyện tập hết sức thú vị.

Các bạn hãy tự code, nếu có gì thắc mắc vui lòng comment để trao đổi.

Một số đề HSG pascal khác bạn nên tham khảo:

 

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button