При программировании школьной тестирующей системы по английскому языку выяснилось, что файлы с вопросами к тестам легко доступны и каждый может перед тестом открыть их и заранее узнать вопросы. Было решено закодировать файлы. Для этого придумали следующий алгоритм.
Каждая строка файла кодируется отдельно.
В каждой строке ищут отдельные слова, и все символы слова сдвигаются по алфавиту циклически вправо на длину слова.
Словом считается любая последовательность подряд идущих символов латинского алфавита, строчных и прописных.
Циклический сдвиг символа по алфавиту вправо на Х – замена символа на символ, стоящий в алфавите на Х позиций дальше. Если при этом происходит выход за пределы алфавита, счет начинается с начала алфавита.
Пример циклического сдвига символов на 3 позиции: буква «Е» превращается в букву «Н», буква «t» – в букву «w», буква «Y» – в букву «В».
Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая должна закодировать строку по указанному алгоритму.
На вход программе подается строка, состоящая не более, чем из 250 символов латинского алфавита, пробелов, знаков препинания, разного рода скобок, кавычек и других символов. Строка заканчивается символом "#". Других символов "#" в строке нет.
Программа должна вывести закодированную по указанному алгоритму строку.
Пример входных данных:
Day, mice. "Year" – a mistake#
Пример выходных данных:
Gdb, qmgi. "Ciev" – b tpzahrl#
Выполните задание и сравните с предлагаемым решением.
[Самое полное издание типовых вариантов реальных заданий ЕГЭ : 2011: Информатика / авт.-сост. П. А. Якушкин, Д. М. Ушаков. – М. : АСТ : Астрель, 2011. (Федеральный институт педагогических измерений).]