arg[k]:= Decrypt(arg[k]);

end;

      {––––– Главная программа –––––}

var S: string;

      Oper: integer;

begin

      repeat

      Write('Введите строку: '); Readln(S);

      Writeln('Укажите операцию: 1– шифровать,’+

      ’ 2– расшифровать,’+

      ’ Прочие – выход');

      Readln(Oper);

      case Oper of

      1: EncryptStr(S);

      2: DecryptStr(S);

      else Break;

      end;

      Writeln(S); { печатаем результат }

      until false;

end.

Программа нуждается лишь в кратких пояснениях. Глобальная константа CKey содержит ключ шифра. Если со временем захотите сменить его, достаточно будет изменить константу и заново откомпилировать программу. Далее следуют описания двух функций: Encrypt и Decrypt – для шифрования и расшифровки символа. Процедуры EncryptStr и DecryptStr шифруют и расшифровывают строки, передаваемые им по ссылке VAR. И, наконец, в главной программе организован цикл для ввода шифруемой строки и кода выполняемой операции (Oper).

Откиньтесь в кресле и полюбуйтесь простотой блоков, составляющих эту программу! А во что бы мы превратили её, свалив в кучу эти простые алгоритмы? В заключение приведу протокол шифрования: пользователь ввел слово «pascal» и зашифровал его, получив слово «rcuecn». Затем ввел строку «rcuecn» и расшифровал её, получив назад данное мною слово.

Введите строку: pascal

Операции: 1 – шифровать, 2 – расшифровать, прочие – выход

Введите операцию: 1

rcuecn

Введите строку: rcuecn

Операции: 1 – шифровать, 2 – расшифровать, прочие – выход

Введите операцию: 2

pascal

Операции: 1 – шифровать, 2 – расшифровать, прочие – выход

Введите операцию: 3

Вряд ли я удержу вас от испытания столь полезного изделия. Во избежание ошибок, шифруйте строки небольшой длины. Рекомендую также хотя бы разок пройти программу по шагам.

Итоги

• В памяти компьютера символы представлены своими кодами – числами.

• Общее количество символов составляет 256, из них первые 32 – это управляющие, а остальные – видимые символы.

• Для преобразования числового кода в символ применяют функцию Char. Для обратного превращения – символа в число – пользуются функцией Ord..

• Паскаль «знает» о том, что символы кодируются числами, поэтому в счетчике цикла FOR допустимы символьные переменные, а в метках оператора CASE – символьные константы.

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату