Шифр Атбаш - Pascal ABC
Формулировка задачи:
Напишите программу, реализующую алгоритм шифрования с помощью
шифра Атбаш.
Решение задачи: «Шифр Атбаш»
textual
Листинг программы
const alf='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
function atbash(s:string):string;
var i:integer;
begin
for i:=1 to Length(s) do
s[i]:=alf[33-pos(s[i],alf)+1];
atbash:=s;
end;
var s:string;
begin
writeln('Введите строку для шифрования');
readln(s);
writeln('Зашифрованная строка');
s:=atbash(s);
writeln(s);
writeln('Расшифрованная строка');
s:=atbash(s);
writeln(s);
end.
Объяснение кода листинга программы
- В первой строке кода объявляется константа alf, которая содержит все буквы русского алфавита в верхнем регистре.
- Затем определяется функция atbash, которая принимает строку s в качестве аргумента и возвращает зашифрованную строку.
- Внутри функции переменной i присваивается значение 1 и начинается цикл for, который выполняется столько раз, сколько символов в строке s.
- В каждой итерации цикла текущий символ из строки s заменяется на тот, который находится на той же позиции в алфавите (если позиция меньше 26), или на случайный символ из алфавита (если позиция больше 26).
- После завершения цикла функция возвращает полученную зашифрованную строку.
- Далее объявляется переменная s, в которую записывается введенная пользователем строка для шифрования.
- Затем выводится приглашение для ввода строки для шифрования.
- После ввода строки пользователем, выводится зашифрованная строка.
- Далее вызывается функция atbash, чтобы зашифровать введенную строку, и результат присваивается переменной s.
- После этого выводится расшифрованная строка.
- И, наконец, вызывается функция atbash, чтобы расшифровать последнюю строку, и результат выводится на экран.