Для студентов МГТУ им. Н.Э.Баумана по предмету Основы программированияЛабораторная работа №7Лабораторная работа №7
2023-10-102023-10-10СтудИзба
Лабораторная работа 7: Лабораторная работа №7 вариант 6
-21%
Описание
ИУ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.
Характеристики лабораторной работы
Предмет
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
9
Покупок
1
Качество
Идеальное компьютерное
Размер
74,22 Kb
Список файлов
- report_7_send.docx 74,22 Kb