10.04.2017

Mã hóa xâu ký tự

(Olympic Bắc Giang 2011 - Bảng B). Tập hợp các chữ cái tiếng Anh bao gồm 26 chữ cái được đánh số thứ tự tương ứng như sau: 0-a; 1-b; 2-c;3-d; 4e-; 5-f; 6-g; 7-h; 8-i; 9-j; 10-k;11-l; 12-m; 13-n; 14-o;15-p; 16-q; 17-r; 18-s; 19-t; 20-u; 21-v; 22-w; 23-x; 24-y; 25-z. Quy tắc mã hóa một ký tự như sau( Lấy ví dụ ký tự X): Tìm số ký tự tương ứng ta được số 23. Tăng giá trị số này lên 5 ta được 28. Tìm số dư trong phép chia số này cho 26 ta được 2. Tra ngược bảng chữ cái ta được C. Sử dụng quy tắc trên, hãy viết chương trình cho phép nhập một xâu ký tự (Không phân biệt chữ hoa, chữ thường) và in ra xâu ký tự được mã hóa.
 Ví dụ: Nhập xâu ký tự: PEACE thì xâu ký tự được mã hóa là: UJFHJ

                                                                 Giải

Var  i,t,k1,k2: integer; j,g: char; s1,s2: String;
BEGIN
   Write('Nhap xau ky tu : '); Readln(s1);
   For i:=1 to length(s1) do s1[i]:=Upcase(s1[i]);
   For i:=1 to length(s1) do
       For j:='A' to 'Z' do
           begin
               if j=s1[i] then
                   begin
                       t:= (k1+5) mod 26;
                       k2:=0;
                       for g:='A' to 'Z' do
                           begin
                               if k2=t then s2:=s2+g;
                               k2:=k2+1;
                           end;
                   end;
               k1:=k1+1;
           end;
   Write(' Xau ky tu tren duoc ma hoa la: ',s2);
   Readln;
END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét