|
|||
Design Part 1. Design Part 1.1.. Design Part 1.1.1.. Design Part 1.2.. Design Part 1.2.. Design Part 1.4.Design Part 1 PROGRAM Encryption(INPUT, OUTPUT); {Переводит символы из INPUT в код согласно Chiper и печатает новые символы в OUTPUT} CONST Len = 20; TYPE Str = ARRAY [1 .. Len] OF ‘A’ .. ‘Z’; Chiper = ARRAY [‘A’ .. ‘Z’] OF CHAR; VAR Msg: Str; Code: Chiper; BEGIN {Encryption} {Инициализировать Code} WHILE NOT EOF DO BEGIN {читать строку в Msg и распечатать ее} {дополнить Msg пробелами} {распечатать кодированное сообщение} END END. {Encryption}
Инициализация массива шифра это длинная последовательность присваиваний, поэтому она объединяется в процедуру.
Design Part 1.1. {Инициализировать Code} Initialize(Code); Design Part 1.1.1. PROCEDURE Initialize(VAR Code: Chiper); {Присвоить Code шифр замены} BEGIN {Initialize} Code['A'] := 'Z'; Code['B'] := 'Y'; Code['C'] := 'X'; Code['D'] := '#'; Code['E'] := 'V'; Code['F'] := 'U'; Code['G'] := 'T'; Code['H'] := 'S'; Code['I'] := 'I'; Code['J'] := 'Q'; Code['K'] := 'P'; Code['L'] := '!'; Code['M'] := 'N'; Code['N'] := 'M'; Code['O'] := '2'; Code['P'] := 'K'; Code['Q'] := '$'; Code['R'] := 'D'; Code['S'] := 'H'; Code['T'] := '*'; Code['U'] := 'F'; Code['V'] := 'E'; Code['W'] := 'T'; Code['X'] := 'C'; Code['Y'] := 'B'; Code['Z'] := 'A'; END; {Initialize}
Символы считываются в последовательные элементы Msg до тех пор, пока не встретится маркер конца строки.
Design Part 1.2. {читать строку в Msg и распечатать ее} I := 0; WHILE NOT EOLN AND (I < Len) DO BEGIN I := I + 1; READ(Msg[I]); WRITE(Msg[I]) END; READLN; WRITELN; Индекс I теперь находится в позиции последнего символа в сообщении и для очистки оставшейся части строки необходимо заполнить ее пробелами. Design Part 1.2. {дополнить Msg пробелами} FOR I := I+1 TO Len DO BEGIN Msg[I] := ‘ ‘; END Поскольку шифрование Msg занимает несколько строк кода, они оформляются процедурой. Design Part 1.4. {распечатать кодированное сообщение} Encode(Msg) Элементы Msg с ‘A’ по ‘Z’ используются как индексы в массиве Code для получения их кодированных значений. Другие символы распечатываются без перевода.
|
|||
|