Шифр Цезаря Код Delphi 7, XE
Если интересуют "Атака", "Взлом" - то ищите здесь «Шифрование, Кодирование и/или Сжатие Информации»
- Формулировка учебного задания по Шифру Цезаря
- Классы, упрощающие решение задачи Delphi
- Перебор символов строки в цикле Delphi
- Работа с файлами
- Исходный код на Delphi 7, XE
С использованием ООП (классов) !
Формулировка учебного задания по Шифру Цезаря
Разработать программу, кодирующую входную строку «шифром Цезаря», используя метод моноалфавитной подстановки.
Допустимые символы : все символы английского (латинского) и русского алфавитов, цифры и другие знаки вводимые с клавиатуры
Программа должна закодировать входную строку методом моноалфавитной подстановки, используя шифр Цезаря.
К цифровому коду каждого символа прибавить заданное пользователем значение key (ключ).
Если получившееся значение выходит за пределы набора символов, то считать, что за последним символом набора снова следует первый (цикл по кольцу).
Вывод результата кодирования-декодирования представить на этой же форме.

Рис.1 Формулировка учебного задания по Шифру Цезаря
Классы, упрощающие решение задачи Delphi
Использование Классов (ООП) значительно сокращает исходный код программ.
Класс TCaesar, своим единственным методом Codec(m:string; key:integer):string; (всего 11 строк), позволяет закодировать открытую строку или раскодировать закрытую строку.
Класс TLent, своим единственным методом Repl(m:string; key:integer):string; (всего 8 строк), позволяет сдвинуть любой символ вперед или назад на заданное количество шагов, и возвращает новый символ.
Перебор символов строки в цикле Delphi
Поскольку любая строка является индексированным множеством символов, то ее обработку проводим с использование цикла…
по коду:
var tmp,res :string;
i :integer;
//------------------------------
for i:=1 to Length(m) do begin
tmp:=L1.Repl(m[i],key); //
if tmp='' then tmp:=L2.Repl(m[i],key);
if tmp='' then tmp:=L3.Repl(m[i],key);
if tmp='' then tmp:=L4.Repl(m[i],key);
if tmp='' then tmp:=L5.Repl(m[i],key);
if tmp='' then tmp:=L6.Repl(m[i],key);
if tmp='' then tmp:=m[i]; //tmp возможно пустая строка, тогда тот же символ без изменения
res := res + tmp;
end;
//------------------------------
Работа с файлами
Работа с файлами представляет дополнительные возможности и удобства для пользователей данного учебного приложения.
Чтобы не вводить длинный текс в первое окно, можно использовать либо копирование и вставку из буфера обмена, либо загрузку из файла…, а проведя "полезную работу" по кодированию или раскодированию, полученный результат из нижнего окна целесоорбазно сохранить в виде файла.

Рис.2 Работа с файлами
Исходный код на Delphi 7, XE
Тестирование - это наиболее важный этап в жизненном цикле программного продукта. Поэтому не верьте картинкам, фильмам и сказкам…
Только личное тестирование во всех наиболее сложных сочетаниях данных - должно убедить Вас в доброкачественности алгоритма и исходного кода!
скачать ехе-файл для тестирования
Другие примеры на языке «Delphi»
Другие примеры на тему «Шифрование, Кодирование и/или Сжатие Информации»
Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку ...
Поделиться в соц сетях: