Bài tập Pascal Free Pascal 01 đến 16 Có bài giải (từ đơn giản đến nâng cao) BY Nguyễn Anh Việt
https://app.box.com/s/mtg0fzik6bet3tes96tu4bmt8wsxaahw
https://app.box.com/s/mtg0fzik6bet3tes96tu4bmt8wsxaahw
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Bài tập Pascal – Từ cơ bản đến nâng cao
Bài 8.01 – Mã hoá và Giải mã chuổi
Bài toán sau mô tả một thuật toán mã hoá đơn giản:
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ừ 0 đến 25 như sau:
0 1 2 3 4 5 6 7 8 9 1
0
1
1
1
2
1
3
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
Quy tắc mã hoá một ký tự như sau (lấy ví dụ ký tự X):
- Tìm số thứ tự tương ứng của ký tự ta được 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 thu được C.
a. Sử dụng quy tắc trên để mã hoá các dòng chữ sau:
PEACE
I LOVE SPRING
b. Hãy tìm ra quy tắc giải mã các dòng chữ sau:
N FR F XYZIJSY
MFSTN SFYNTSFQ ZSNBJVXNYD
Chương trình mã hoá như sau:
Const
MaHoa: Array [0..25] of Char =
('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');
Var
Ch: String;
i, j: Integer;
Begin
WriteLn('Ban hay nhap chuoi can ma hoa');
ReadLn(Ch);
For i:=1 to Length(Ch) do
For j:=0 to 25 do
If Ch[i] = MaHoa[j] then begin
Ch[i] := MaHoa[(j + 5) mod 26];
Break;
End;
WriteLn('Chuoi da ma hoa la ',Ch);
ReadLn;
End.
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
Biên soạn: Th.s Nguyễn Anh Việt Trang 28