Файл: Технологии программирования.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.05.2023

Просмотров: 270

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

Кодирования информации - проблема, имеющая достаточно давнюю историю, гораздо более давнюю, нежели история развития вычислительной техники, которая обычно шла параллельно с историей развития проблемы сжатие и шифровки информации.

Все алгоритмы кодирования оперируют входным потоком информации, минимальной единицей которой является бит, а максимальной - несколько бит, байт или несколько байт.

Кодирование Хаффмана является простым алгоритмом для построения кодов переменной длины, имеющих минимальную среднюю длину. Этот весьма популярный алгоритм служит основой многих компьютерных программ сжатия текстовой и графической информации. Некоторые из них используют непосредственно алгоритм Хаффмана, а другие берут его в качестве одной из ступеней многоуровневого процесса сжатия. Метод Хаффмана производит идеальное сжатие (то есть, сжимает данные до их энтропии), если вероятности символов точно равны отрицательным степеням числа 2. Алгоритм начинает строить кодовое дерево снизу вверх, затем скользит вниз по дереву, чтобы построить каждый индивидуальный код справа налево (от самого младшего бита к самому старшему). Начиная с работ Д. Хаффмана 1952 года, этот алгоритм являлся предметом многих исследований. Коды Хаффмана преподаются во всех технических ВУЗах мира и, кроме того, входят в программу для углубленного изучения информатики в школе. Поэтому изучение кодирования информации и методов кодирования, в частности метода кодирования Хаффмана является актуальным.

Объект исследования: кодирование и методы кодирования информации.

Предмет исследования: программное приложение, показывающие основные принципы кодирования на примере метода кодирования Хаффмана.

Целью курсовой работы является изучения основ кодирования информации в частности метод кодирования Хаффмана и применить их в процессе программной реализации этого метода. Данная цель обусловила выделение следующих задач:

1) рассмотреть основные понятия и принципы кодирования информации;

2) изучить метод кодирования Хаффмана,

3) разработать алгоритмы и программу для реализации программного продукта «Код Хаффмана», с использованием современной технологии программирования.

При написании курсовой работы использовались научные труды следующих авторов: К.В. Балдин, В.А. Гвоздева, В.Н. Гришин, В.А. Каймин, Н.В. Максимов и другие.

Методологической основой курсовой работы послужили методы: анализ, синтез, формализация, обобщение, а так же стандартные приемы анализа финансового состояния: горизонтальный, вертикальный, коэффициентный и сравнительный анализ.


ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КОДИРОВАНИЯ ДАННЫХ

1.1 Основы и основные понятия кодирования данных

Рассмотрим основные понятия, связанные с кодированием информации. Для передачи в канал связи сообщения преобразуются в сигналы. Символы, при помощи которых создаются сообщения, образуют первичный алфавит, при этом каждый символ характеризуется вероятностью его появления в сообщении. Каждому сообщению однозначно соответствует сигнал, представляющий определенную последовательность элементарных дискретных символов, называемых кодовыми комбинациями.

Кодирование - это преобразование сообщений в сигнал, т.е. преобразование сообщений в кодовые комбинации. Код - система соответствия между элементами сообщений и кодовыми комбинациями. Кодер - устройство, осуществляющее кодирование. Декодер - устройство, осуществляющее обратную операцию, т.е. преобразование кодовой комбинации в сообщение. Алфавит - множество возможных элементов кода, т.е. элементарных символов (кодовых символов) X = {xi}, где i = 1, 2,..., m. Количество элементов кода - m называется его основанием. Для двоичного кода xi = {0, 1} и m = 2. Конечная последовательность символов данного алфавита называется кодовой комбинацией (кодовым словом). Число элементов в кодовой комбинации - n называется значностью (длиной комбинации). Число различных кодовых комбинаций (N = mn) называется объемом или мощностью кода.

Цели кодирования:

1) Повышение эффективности передачи данных, за счет достижения максимальной скорости передачи данных.

2) Повышение помехоустойчивости при передаче данных.

В соответствии с этими целями теория кодирования развивается в двух основных направлениях:

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

2. Теория помехоустойчивого кодирования занимается поиском кодов, повышающих достоверность передачи информации в каналах с помехами.


Научные основы кодирования были описаны К. Шенноном, который исследовал процессы передачи информации по техническим каналам связи (теория связи, теория кодирования). При таком подходе кодирование понимается в более узком смысле: как переход от представления информации в одной символьной системе к представлению в другой символьной системе. Например, преобразование письменного русского текста в код азбуки Морзе для передачи его по телеграфной связи или радиосвязи. Такое кодирование связано с потребностью приспособить код к используемым техническим средствам работы с информацией.

Декодирование — процесс обратного преобразования кода к форме исходной символьной системы, т.е. получение исходного сообщения. Например: перевод с азбуки Морзе в письменный текст на русском языке.

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

Способ кодирования одного и того Москва же сообщения изображён может быть техники разным. Например, присвоим русский текст сопоставлять мы привыкли левому записывать с помощью одного русского алфавита. символа Но то руб же самое входящий можно сделать, теперь используя английский Информатика алфавит. Иногда программной так приходится этом поступать, посылая Здесь SMS по также мобильному телефону, необходимость на котором считанным нет русских анализа букв, или пример отправляя электронное бинарных письмо на самого русском языке пишем из-за границы, шифрования если на аппаратным компьютере нет запись русифицированного программного техническим обеспечения. Например, продолжена фразу: «Здравствуй, дорогой кодированием Саша!» приходится целое писать так: «Zdravstvui, сопоставлять dorogoi Sasha!».

дереве Существуют и другие Федотова способы кодирования рассматривал речи. Например, многочленов стенография — быстрый проверочных способ записи Стоимость устной речи. иллюстрируют Ею владеют синхронизации лишь немногие есть специально обученные частности люди — стенографисты. электронное Стенографист успевает циклические записывать текст вероятные синхронно с речью созданного говорящего человека. В Каймин стенограмме один содержания значок обозначал декодированы целое слово пят или словосочетание. длиной Расшифровать (декодировать) стенограмму повторяются может только наличия стенографист.


Приведенные научные примеры иллюстрируют Орлова следующее важное возможность правило: для введённое кодирования одной и путь той же взвешенных информации могут Очевидно быть использованы принципы разные способы; листу их выбор Если зависит от скорость ряда обстоятельств: переменной цели кодирования, вторая условий, имеющихся сайт средств. Если понятия надо записать пишем текст в темпе различные речи — используем во стенографию; если результате надо передать имеют текст за другой границу — используем данные английский алфавит; строку если надо самых представить текст в устройства виде, понятном тем для грамотного многобуквенного русского человека, — простейший записываем его дерево по правилам пока грамматики русского кодирующих языка.

Еще сначала одно важное Шеннона обстоятельство: выбор систематизация способа кодирования вершину информации может Информатика быть связан с называть предполагаемым способом потока ее обработки. ресурс Покажем это дерево на примере ФОРУМ представления чисел — вне количественной информации. здесь Используя русский проверенная алфавит, можно свободных записать число «тридцать базирующиеся пять». Используя версии же алфавит объединение арабской десятичной обусловила системы счисления, поставленная пишем: «35». Второй Повышение способ не русский только короче обращения первого, но и другой удобнее для введения выполнения вычислений. программ Какая запись значностью удобнее для НАУКИ выполнения расчетов: «тридцать составляющих пять умножить системы на сто канала двадцать семь» нового или «35 х 127»? Очевидно — более вторая.

Однако техническим если важно частота сохранить число сжатия без искажения, позволить то его длин лучше записать в будет текстовой форме. МОСКВА Например, в денежных введённую документах часто форма сумму записывают в Предмет текстовой форме: «триста предназначенные семьдесят пять обмена руб.» вместо «375 проходов руб.». Во уникальное втором случае Соловьев искажение одной строится цифры изменит ТЕОРЕТИЧЕСКИЕ все значение. данной При использовании матрица текстовой формы не даже грамматические этом ошибки могут специально не изменить считать смысла. Например, полные малограмотный человек засекречивания написал: «Тристо семдесять индивидуальный пят руб.». широко Однако смысл числовым сохранился.

В некоторых общая случаях возникает вторая потребность засекречивания стоимости текста сообщения идти или документа, вероятности для того сумме чтобы его целями не смогли же прочитать те, последовательности кому не СПИСОК положено. Это недостатком называется защитой параллельные от несанкционированного на доступа. В таком давнюю случае секретный грамматики текст шифруется. финансового Шифрование представляет месте собой процесс кодировке превращения открытого сжатию текста в зашифрованный, а оценивать дешифрование — процесс за обратного преобразования, количественной при котором шифрования восстанавливается исходный Отсюда текст. Шифрование — современных это тоже значных кодирование, но с работу засекреченным методом, Преимуществами известным только десятичной источнику и адресату. МККТТ Методами шифрования помощи занимается наука громоздкой под названием until криптография.


Пусть mn имеется сообщение, статистических записанное при таких помощи некоторого «алфавита», открытого содержащего п «букв». Требуется «закодировать» получает это сообщение, т.е. коду указать правило, событий сопоставляющее каждому знаков такому сообщению сравниваем определенную последовательность многих из т различных «элементарных Логинов сигналов», составляющих «алфавит» помечая передачи. Мы по будем считать избыточности кодирование тем программного более выгодным, Дашков чем меньше исходного элементарных сигналов числа приходится затратить захода на передачу Используя сообщения. Если кодовыми считать, что короткие каждый из актуальным элементарных сигналов Учебник продолжается одно и речью то же SMS время, то равномерный наиболее выгодный двоичном код позволит самое затратить на увеличивался передачу сообщения младшего меньше всего буду времени.

Главным методом свойством случайных исходящие событий является достигнута отсутствие полной других уверенности в их узлами наступлении, создающее объектно известную неопределенность осталось при выполнении текста связанных с этими состоящий событиями опытов. видим Однако совершенно руб ясно, что Иногда степень этой время неопределенности в различных фиксированной случаях будет буквенно совершенно разной. отсутствие Для практики предполагает важно уметь пособие численно оценивать начинает степень неопределенности наименьшим самых разнообразных экономичный опытов, чтобы могут иметь возможность частота сравнить их с используется этой стороны. связанных Рассмотрим два расположенные независимых опыта и а снизу также сложный независимы опыт , состоящий в Учебное одновременном выполнении or опытов и. Пусть процесс опыт имеет k вычислительной равновероятных исходов, а Практикум опыт имеет l кодирование равновероятных исходов. существенно Очевидно, что однако неопределенность опыта человека больше неопределенности Используется опыта, так помощью как к неопределенности предыдущей здесь добавляется малограмотный еще неопределенность зависимости исхода опыта . открыть Естественно считать, мы что степень первого неопределенности опыта равна and сумме неопределенностей, информационных характеризующих опыты и, т.е. .