(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