Для студентов МГТУ им. Н.Э.Баумана по предмету Основы программированияЛабораторная работа №7Лабораторная работа №7
5,0052
2023-10-102024-09-16СтудИзба
Лабораторная работа 7: Лабораторная работа №7 вариант 6
Описание
ИУ5. 1 семестр. 2022 год.
Отчёт по лабораторной работе №7 (включает код программы). Обработка символьных строк. Данная лабораторная работа - общая для всех вариантов.
Прошёл проверку преподавателей Прав* А. Д. и Самохв* А. Э.
Постановка задачи
Провести кодирование и декодирование текста (массива символов) при помощи кода Цезаря[1] с переменным сдвигом по таблице ASCII-кодов. Величина сдвига для каждой позиции в исходном тексте - сумма (по модулю 256) кодов символов слова кодового блокнота, стоящего в блокноте на той же позиции. Если кодовый блокнот имеет слов меньше, чем количество символов в исходном тексте, то по исчерпании слов в нём перейти к первому слову и продолжить. (На основе кодового блокнота целесообразно сначала сформировать по заданному правилу целочисленный массив ключей, который затем использовать при кодировании. Эти действия оформить в виде отдельной функции.)
Исследовать повторяемость символов в закодированном тексте (сколько каких кодов одного и того же исходного символа получено) в зависимости от кодового блокнота и длины исходного текста. Результаты исследования представить в виде таблицы (продумать формат таблицы). Исследование и вывод таблицы результатов следует выполнять в режиме диалога, последовательно вычисляя и выводя результаты для запрашиваемого символа. Статистические данные хранить в массиве int stat[256], Для большей достоверности статистических результатов в качестве исходного текста и кодового блокнота использовать текстовые файлы размером около 1 Кбайта.
Отчёт по лабораторной работе №7 (включает код программы). Обработка символьных строк. Данная лабораторная работа - общая для всех вариантов.
Прошёл проверку преподавателей Прав* А. Д. и Самохв* А. Э.
Постановка задачи
Провести кодирование и декодирование текста (массива символов) при помощи кода Цезаря[1] с переменным сдвигом по таблице ASCII-кодов. Величина сдвига для каждой позиции в исходном тексте - сумма (по модулю 256) кодов символов слова кодового блокнота, стоящего в блокноте на той же позиции. Если кодовый блокнот имеет слов меньше, чем количество символов в исходном тексте, то по исчерпании слов в нём перейти к первому слову и продолжить. (На основе кодового блокнота целесообразно сначала сформировать по заданному правилу целочисленный массив ключей, который затем использовать при кодировании. Эти действия оформить в виде отдельной функции.)
Исследовать повторяемость символов в закодированном тексте (сколько каких кодов одного и того же исходного символа получено) в зависимости от кодового блокнота и длины исходного текста. Результаты исследования представить в виде таблицы (продумать формат таблицы). Исследование и вывод таблицы результатов следует выполнять в режиме диалога, последовательно вычисляя и выводя результаты для запрашиваемого символа. Статистические данные хранить в массиве int stat[256], Для большей достоверности статистических результатов в качестве исходного текста и кодового блокнота использовать текстовые файлы размером около 1 Кбайта.
[1] Цезарь для шифрования своих посланий использовал следующий прием. При кодировании и декодировании писем он заменял буквы в письме на следующие по алфавиту буквы с постоянным смещением, равным 13, то есть к порядковому номеру буквы в латинском алфавите, содержащим 26 букв, он прибавлял 13 и получал порядковый номер буквы в кодируемом (декодируемом) письме. Если полученный таким образом номер буквы был больше 26, то он уменьшался на 26.
Характеристики лабораторной работы
Предмет
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
18
Качество
Идеальное компьютерное
Размер
74,22 Kb
Список файлов
report_7_send.docx