7. Обработка символьных строк
Алиас: шифрование.
Цель работы
При выполнении лабораторной работы освоить следующие приемы программирования:
- работу с символьными строками;
- работу с файлами.
Задание
Провести кодирование и декодирование текста (массива символов) при помощи кода Цезаря с переменным сдвигом по таблице ASCII-кодов. Величина сдвига для каждой позиции в исходном тексте - сумма (по модулю 128) кодов символов слова кодового блокнота, стоящего в блокноте на той же позиции. Если кодовый блокнот имеет слов меньше, чем количество символов в исходном тексте, то по исчерпании слов в нём перейти к первому слову и продолжить.
На основе кодового блокнота целесообразно сначала сформировать по заданному правилу целочисленный массив ключей, который затем использовать при кодировании. Эти действия оформить в виде отдельной функции.
Исследовать повторяемость символов в закодированном тексте (сколько каких кодов одного и того же исходного символа получено) в зависимости от кодового блокнота и длины исходного текста. Результаты исследования представить в виде таблицы (продумать формат таблицы самостоятельно). Обязательные колонки таблицы выглядят следующим образом:
символ- рассматриваемый символ из исходного текста;кол-во в исх-ом- сколько раз встречается рассматриваемый символ в исходном тексте;кол-во в вар-ов- сколько вариантов использовалось, чтобы закодировать рассматриваемый символ;размер блокнота- размер кодового блокнота (слов в кодовом блокноте);длина исх-ый- длина исходного текста.
Статистические данные хранить в массиве stat[128], элементами которого являются структуры. Вид структуры определяется исполнителем.
В таблице отобразить 5 неповторяющихся символов, выбранных случайным образом.