Е27.1 При про­грам­ми­ро­ва­нии школь­ной те­сти­ру­ю­щей си­сте­мы по ан­глий­ско­му языку выяснилось

При про­грам­ми­ро­ва­нии школь­ной те­сти­ру­ю­щей си­сте­мы по ан­глий­ско­му языку выяснилось, что файлы с во­про­са­ми к те­стам легко доступны, и каж­дый может перед те­стом от­крыть их и за­ра­нее узнать вопросы. Было ре­ше­но за­ко­ди­ро­вать файлы. Для этого при­ду­ма­ли сле­ду­ю­щий алгоритм.

Каждая стро­ка файла ко­ди­ру­ет­ся отдельно.

В каж­дой стро­ке ищут­ся от­дель­ные слова, и все сим­во­лы слова сдви­га­ют­ся по ал­фа­ви­ту цик­ли­че­ски впра­во на длину слова.

Словом счи­та­ет­ся любая по­сле­до­ва­тель­ность под­ряд иду­щих сим­во­лов ла­тин­ско­го алфавита, строч­ных и прописных.

Циклический сдвиг сим­во­ла по ал­фа­ви­ту впра­во на X — за­ме­на сим­во­ла на символ, сто­я­щий в ал­фа­ви­те на X по­зи­ций дальше. Если при этом про­ис­хо­дит выход за пре­де­лы алфавита, счёт на­чи­на­ет­ся с на­ча­ла алфавита.

Пример цик­ли­че­ско­го сдви­га сим­во­лов на 3 позиции: буква «Е» пре­вра­ща­ет­ся в букву «Н», буква «t» — в букву «w» буква «Y» — в букву «В».

Напишите эффективную, в том числе и по ис­поль­зу­е­мой памяти, про­грам­му (укажите ис­поль­зу­е­мую вер­сию языка программирования, на­при­мер Borland Pascal 7.0), ко­то­рая долж­на за­ко­ди­ро­вать стро­ку по ука­зан­но­му алгоритму.

На вход про­грам­ме по­да­ет­ся строка, со­сто­я­щая из не более чем 250 сим­во­лов ла­тин­ско­го алфавита, пробелов, зна­ков препинания, раз­но­го рода скобок, ка­вы­чек и дру­гих символов. Стро­ка за­кан­чи­ва­ет­ся сим­во­лом «#». Дру­гих сим­во­лов «#» в стро­ке нет.

Программа долж­на вы­ве­сти за­ко­ди­ро­ван­ную по ука­зан­но­му ал­го­рит­му строку.

Пример вход­ных данных:

Day, mice. «Year» — a mistake#

Пример вы­ход­ных данных:

Gdb, qmgi. «Ciev» — b tpzahrl#