Составьте программу шифрования текстового сообщения - Pascal
Формулировка задачи:
Составьте программу шифрования текстового сообщения. Можно использовать такой способ шифрования. Шифровальщик задает ключ шифровки – целое число, который определяет величину смещения букв русского алфавита. Например, ключ = 3, тогда в тексте буква «а» заменяется на «г» и т. д.
Решение задачи: «Составьте программу шифрования текстового сообщения»
textual
Листинг программы
const rus='абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; var s,rsf:string; i:integer; begin writeln('Задайте строку...'); readln(s); writeln('На сколько будем сдвигать...'); readln(i); rsf:=rus; repeat if i>0 then begin rsf:=rsf+rsf[1]; delete(rsf,1,1) end; Dec(i) until i<=0; {шифруем} for i:=1 to length(s) do if pos(s[i],rus)<>0 then s[i]:=rsf[pos(s[i],rus)]; writeln('Результат шифровки:'); writeln(s); {дешифруем} for i:=1 to length(s) do if pos(s[i],rsf)<>0 then s[i]:=rus[pos(s[i],rsf)]; writeln('Результат дешифровки:'); writeln(s); end.
Объяснение кода листинга программы
- Создается константа
rus
, которая содержит все буквы русского алфавита в нижнем регистре. - Создаются две переменные
s
иrsf
типаstring
. - Выводится сообщение «Задайте строку...» и считывается строка от пользователя.
- Выводится сообщение «На сколько будем сдвигать...» и считывается число от пользователя.
- Переменная
rsf
инициализируется значением константыrus
. - Запускается цикл повторений, который выполняется до тех пор, пока значение переменной
i
больше нуля. - Внутри цикла происходит проверка: если значение
i
больше нуля, то к переменнойrsf
добавляется сама себя (операцияrsf+rsf[1]
). Затем удаляется последний символ из переменнойrsf
с помощью операцииdelete(rsf,1,1)
. - Значение переменной
i
уменьшается на единицу. - После выхода из внутреннего цикла, выполняется проверка: если значение
i
меньше или равно нулю, то цикл повторяется. - Выводится сообщение «Результат шифровки:» и выводится закодированное сообщение
s
. - Выводится сообщение «Результат дешифровки:» и выводится исходное сообщение
s
.