Выполнение работы

Лабораторная работа №4 выполняется под управлением специально написанной управляющей программы. Эта управляющая программа написана на языке Visual Basic 6. Исполняемый файл программы носит имя Эффективное кодирование.exe .

Запустите программу Эффективное кодирование.

На экран будет выведено окно Форма 1. Регистрация (рис. 1):

 

Рис.1. Окно Форма 1. Регистрация

В поле Введите вашу фамилию этого окна студент должен ввести свою фамилию и, возможно, инициалы или имя и отчество (по желанию). Важно, чтобы эти данные иденцифицировали исполнителя работы и были уникальны (единственны) среди студетов данной специальности и курса обучения.

Введенный набор символов однозначно определяет вариант задания. А, поскольку вряд ли лабораторную работу удастся выполнить в один прием, для того, чтобы при повторном запуске программы получить то же задание, нужно запомнить все символы, которые вы вели в поле Введите вашу фамилию. При этом имеют значение: размер вводимых букв (строчные или прописные), принадлежность к алфавиту (кириллица или латиница), другие знаки (пробелы, знаки препинания, цифры и т.д.).

По окончании ввода фамилии (и, возможно, инициалов или имени и отчества) следует нажать кнопку Вперед.

В ответ будет высвечено окно Форма2. Исследование кодируемого текста (рис. 2).

 

Рис. 2. Окно Форма2. Исследование кодируемого текста

Согласно теоретическому введению для построения оптимальных кодов нужно знать вероятности появления кодируемых букв в тексте. Первичный алфавит в данной лабораторной работе содержит всего 8 букв (объем первичного алфавита = 8). Пример кодируемого текста изображен в левом поле окна. Для нахождения вероятностей (точнее – оценок вероятностей) появления букв первичного алфавита нужно найти частоту повления каждой буквы алфавита и поделить их на общее количество букв в тексте. Сделать это можно как вручную, что трудоемко, так и при помощи инструмента Гистограмма табличного процессора Excel, как это делалось при выполнении 1-3 лабораторных работ. В последнем случае выделите текст в левом поле окна Форма2. Исследование кодируемого текста (рис. 3), перенесите его в Word, далее поступайте так, как в 1 лаб. раб.

 

Рис. 3. Выделение текста в левом поле окна Форма2. Исследование кодируемого текста

Будьте внимательны! Проверьте – все ли буквы текста из поля окна пересены в Word ? Пропуск даже одной буквы приводит к неверным ответам.

Для получения кодов русских букв в Excel лучше вместо нестандартной пользовательской функции UC_CD использовать стандартную функцию КОДСИМВ. Обратную ей функцию СИМВОЛ удобно использовать для преобразования кода русской буквы в ее изображение.

После расчета вероятностей результаты следует округлить до трех знаков после запятой. Это можно сделать при помощи функции ОКРУГЛ. Имейте в виду, что Excel способен округлять числа при выводе их на экран. При этом округленное изображение числа на экране может не совпадать с числом, хранящимся в памяти компьютера. Поэтому обязательно используйте функцию ОКРУГЛ для округления числа, хранящегося в памяти, т.к. именно в этом случае при последующих расчетах вы будете получать именно те ответы, которые в качестве правильных будет ожидать от вас управляющая программа данной лабораторной работы.

Еще одна особенность заключается во вводе вероятностей в праые поля окна Форма 2. Исследование кодируемого текста. Поскольку управляющая программа написана с использованием неруссифицированного варианта языка Basic, при вводе дробных чисел нужно использовать точку в качестве разделительного знака между целой и дробной частью числе, а не запятую, как это принято в России (рис. 4).

 

Рис. Ввод вероятностей

По окончании ввода вероятностей следует нажать кнопку Вперед. При обнаружении ошибки выводится сообщение с просьбой ее исправить. В случае правильного ввода высвечивается окно Форма 2. Исследование кодируемого текста. заменяется окном Форма 3. Построение и проверка кода Шеннона-Фэно (Рис. 4).

 

Рис. Окно Форма 3. Построение и проверка кода Шеннона-Фэно.

Используя алгоритм построения кода Шеннона-Фэно, постройте этот код и найдите параметры его качества – коэффициенты статистического сжатия и относительной эфективности. Результаты следует ввести в поля окна Форма 3. Построение и проверка кода Шеннона-Фэно и нажать кнопку Вперед. Управляющая программа проверит ваши результаты и в случает обнаружения ошибок сообщит об этом. Программа сначала проверяет образованный вами код, затем коэффициент статистичекого сжатия и в конце – коэфициент относительной эффективности. Программа сообщает только об одной ошибке – первой из обнаруженных. Надо заметить, что редких случаях, когда какие-нибудь буквы имеют равные вероятности появления их в тексте, возникает неопределенность их кодирования, т.е. несколько правильных вариантов кода. Алгоритм работы управляющей программы выбирает один из возможных вариантов, причем неизвестно какой. И, хотя все возможные варианты кода являются по сути дела правильными, в этой ситуации вам следует найти правильный с точки зрения программы ответ методом подбора.

Если ошибок нет или все ошибки исправлены, программа дополнительно высвечивает новое окно Форма 4. Использование кода Шеннона-Фэно для кодирования-декодирования сообщения (рис. 5). Окно Форма 3. Построение и проверка кода Шеннона-Фэно при этом сохраняется для того, чтобы видеть код и использовать его для кодирования и декодирования.

 

Рис. 5. Вид рабочего стола с дополнительным окном Форма 3. Построение и проверка кода Шеннона-Фэно

 

Рис. 6. Результат ввода закодированного и декодированного сообщений.

Далее следует два окна в формами 5 и 6, аналогичных формам 3 и 4 , предназначенными для ввода и использования кода Хаффмена.