Задача.
Написать программу, которая шифрует текст по следующему принципу: заменяет буквы обычного алфавита на соответствующие буквы алфавита с преставленными буквами.
Подсказка.
Нужно создать 2 массива алфавитов: обычный (буквы последовательно, как в алфавите) - абвгдеё... и т.д.
шифровальные алфавит (буквы переставлены в любом порядке) - прогват... и т.д.
Программа берет букву текста для шифровки, в массиве обычного алфавита, узнает на какой позиции находится буква, и подставляет вместо неё букву, которая стоит на этой же позиции шифровального алгоритма.
Пример:
Прямой алфавит: абвгдеёжзийклмнопрстуфхцчшщъыьэюя
Шифровальный алфавит: емкчпюотраушфбдягхщмилзвжнсьэъёай
Текст для шифрования: Привет.
Берем первую букву - п, она стоит на позиции номер 17 в обычном алфавите.
На позии 17 в шифровальном алфавите стоит буква г
Буква р - на 18 позиции, её заменяет буква - х и т.д.
В результате, вместо слова Привет, получим слово - Гхакюм
Конечно, шифрующий алфавит подобран так, что гласная заменят гласную, согласная - согласную.
Так можно добиться более интересных результатов.
Подсказка по написанию программы на Паскале:
Есть два способа:
1. использовать два массива с элементами типа chr (символ)
2. использовать 2 строковые переменные (в Паскале строковая переменная по-сути и есть массив с символами).
Ещё вам понадобятся функции:
length - считает количество символов в строке.
pos - ищет символ в строке и возвращает его позицию (номер позиции символа в строке)
program cipher;
var
alpha:string; алфавит "обычный"
alphb:string; алфавит "шифровальный"
inputstr:string; строка с текстом для шифрования
resultstr:string; зашифрованная строка
begin
alpha:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
alphb:='емкчпюотраушфбдягхщмилзвжнсьэъёай';
Writeln ('Введите строку для шифрования: ');
readln(inputstr);
....
Дальше сами! :-)
Комментарии
RSS лента комментариев этой записи