29.06.2020 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!