- Теория
- Теория
Массивы: Великий дешифровщик
Вы уже помогли Кексу разобраться с шифрами, но алгоритмы шифрования не так просты, как кажется. Кекс решил использовать алгоритм похитрее, чем предыдущий. Поэтому вам нужно написать улучшенную программу расшифровки.
Мяу! Мне нужна новая программа расшифровки.
Есть массив
symbols
, в котором хранится алфавит (буквы и другие символы).Есть массив
encodedSymbols
, в котором хранится зашифрованное сообщение. Каждый элемент этого массива — это индекс символа из массиваsymbols
.Индексы сдвинуты на величину в переменной
shift
. Пример: элемент из зашифрованного массива равен единице, значит, с учётом сдвига десять, это символ с индексом одиннадцать в массиве с алфавитом, то есть «К».Программа дешифровки должна переводить элементы из массива с шифровкой в символы из массива алфавита и склеивать из них расшифрованную строку. Эту строку храним в переменной
decodedMessage
.Если индекс со смещением выходит за пределы алфавита, то нужно вычесть из этого индекса длину алфавита (большие индексы шифруют символы в начале алфавита).
Прочитав техническое задание, вы поняли что Кекс использовал старый и проверенный способ шифрования информации — «Шифр Цезаря». Этот принцип известен с давних времён.
В основе шифра Цезаря лежит простой принцип: сдвиг символов в исходном алфавите. Например, если взять все буквы русского алфавита, записать их по порядку: «абвгдеёжзийклмнопрстуфхцчшщъыьэюя» — взять какое-нибудь сообщение, например, «привет», найти в сообщении все буквы и сдвинуть их на какое-нибудь расстояние, например, на две буквы вперёд, так, чтобы «п» стало «с», «р» стало «т» и так далее, то зашифрованное сообщение будет «сткджф». Зашифрованное сообщение не сможет прочитать никто, кроме тех, кто знает какой алфавит использовался и на сколько символов был сделан сдвиг в шифре.
Когда будете готовы, жмите Заказчик, принимай программу! в консоли.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.