
- •160001, Г. Вологда, ул. Челюскинцев, 3.
- •Предисловие
- •Введение
- •Раздел 1. Теория информации
- •Глава 1. Исходные понятия информатики
- •1.1. Начальные определения
- •1.2. Формы представления информации
- •1.3. Преобразование сообщений
- •Контрольные вопросы и задания
- •Глава 2. Понятие информации в теории Шеннона
- •2.1. Понятие энтропии
- •2.1.1. Энтропия как мера неопределенности
- •2.1.2. Свойства энтропии
- •2.1.3. Условная энтропия
- •2.2. Энтропия и информация
- •2.3. Информация и алфавит
- •Контрольные вопросы и задания
- •Глава 3. Кодирование символьной информации
- •3.1. Постановка задачи кодирования, Первая теорема Шеннона
- •3.2. Способы построения двоичных кодов
- •3.2.1. Алфавитное неравномерное двоичное кодирование сигналами равной длительности. Префиксные коды
- •3.2.2. Равномерное алфавитное двоичное кодирование. Байтовый код
- •3.2.3. Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •3.2.4. Блочное двоичное кодирование
- •Контрольные вопросы и задания
- •Глава 4. Представление и обработка чисел в компьютере
- •4.1. Системы счисления
- •4.2. Представление чисел в различных системах счисления
- •4.2.1. Перевод целых чисел из одной системы счисления в другую
- •4.2.2. Перевод дробных чисел из одной системы счисления в другую
- •4.2.3. Понятие экономичности системы счисления
- •4.2.4. Перевод чисел между системами счисления 2 ↔ 8 ↔ 16
- •4.2.5. Преобразование нормализованных чисел
- •4.3. Кодирование чисел в компьютере и действия над ними
- •4.3.1. Кодирование и обработка в компьютере целых чисел без знака
- •4.3.2. Кодирование и обработка в компьютере целых чисел со знаком
- •4.3.3. Кодирование и обработка в компьютере вещественных чисел
- •Контрольные вопросы и задания
- •Глава 5. Передача информации
- •5.1. Общая схема передачи информации в линии связи
- •5.2. Характеристики канала связи
- •5.3. Влияние шумов на пропускную способность канала
- •5.4. Обеспечение надежности передачи и хранения информации
- •5.4.1. Постановка задачи
- •5.4.2. Коды, обнаруживающие ошибку
- •5.4.3. Коды, исправляющие одиночную ошибку
- •5.5. Способы передачи информации в компьютерных линиях связи
- •5.5.1. Канал параллельной передачи
- •5.5.2. Последовательная передача данных
- •5.5.3. Связь компьютеров по телефонным линиям
- •Контрольные вопросы и задания
- •Глава 6. Хранение информации
- •6.1. Классификация данных. Проблемы представления данных
- •6.2. Представление элементарных данных в озу
- •6.3. Структуры данных и их представление в озу
- •6.3.1. Классификация и примеры структур данных
- •6.3.2. Понятие логической записи
- •6.3.3. Организация структур данных в озу
- •6.4. Представление данных на внешних носителях
- •6.4.1. Иерархия структур данных на внешних носителях
- •6.4.2. Особенности устройств хранения информации
- •Контрольные вопросы и задания
- •Раздел 2. Алгоритмы. Модели. Системы
- •Глава 7. Элементы теории алгоритмов
- •7.1. Нестрогое определение алгоритма
- •7.2. Рекурсивные функции
- •7.3. Алгоритм как абстрактная машина
- •7.3.1. Общие подходы
- •7.3.2. Алгоритмическая машина Поста
- •7.3.3. Алгоритмическая машина Тьюринга
- •7.4. Нормальные алгоритмы Маркова
- •7.5. Сопоставление алгоритмических моделей
- •7.6. Проблема алгоритмической разрешимости
- •7.7. Сложность алгоритма
- •Контрольные вопросы и задания
- •Глава 8. Формализация представления алгоритмов
- •8.1. Формальные языки
- •8.1.1. Формальная грамматика
- •8.1.2. Способы описания формальных языков
- •8.2. Способы представления алгоритмов
- •8.2.1. Исполнитель алгоритма
- •8.2.2. Строчная словесная запись алгоритма
- •8.2.3. Графическая форма записи
- •8.2.4. Классификация способов представления алгоритмов
- •8.3. Структурная теорема
- •Контрольные вопросы и задания
- •Глава 9. Представление о конечном автомате
- •9.1. Общие подходы к описанию устройств, предназначенных для обработки дискретной информации
- •9.2. Дискретные устройства без памяти
- •9.3. Конечные автоматы
- •9.3.1. Способы задания конечного автомата
- •9.3.2. Схемы из логических элементов и задержек
- •9.3.3. Эквивалентные автоматы
- •Контрольные вопросы и задания
- •Глава 10. Модели и системы
- •10.1. Понятие модели
- •10.1.1. Общая идея моделирования
- •10.1.2. Классификация моделей
- •Модели структурные и функциональные
- •Модели натурные и информационные
- •Модели проверяемые и непроверяемые
- •Модели по назначению
- •10.1.3. Понятие математической модели
- •10.2. Понятие системы
- •10.2.1. Определение объекта
- •10.2.2. Определение системы
- •10.2.3. Формальная система
- •10.2.4. Значение формализации
- •10.3. Этапы решения задачи посредством компьютера
- •10.4. Об объектном подходе в прикладной информатике
- •Контрольные вопросы и задания
- •Заключение
- •Приложение а. Элементы теории вероятностей
- •А.1. Понятие вероятности
- •А.2. Сложение и умножение вероятностей
- •A.3. Условная вероятность
- •Контрольные вопросы и задания
- •Приложение б. Некоторые соотношения логики
- •Глоссарий
- •Список литературы
- •Содержание
- •Глава 4. Представление и обработка чисел в компьютере 45
- •Глава 5. Передача информации 69
- •Глава 6. Хранение информации 83
- •Раздел 2. Алгоритмы. Модели. Системы 98
- •Глава 7. Элементы теории алгоритмов 99
- •Глава 8. Формализация представления алгоритмов 120
- •Глава 9. Представление о конечном автомате 134
- •Глава 10. Модели и системы 147
Контрольные вопросы и задания
Приведите примеры обратимого и необратимого кодирования помимо рассмотренных в тексте.
В чем смысл первой теоремы Шеннона для кодирования?
Первичный алфавит содержит 8 знаков с вероятностями: «пробел» - 0,25; «?» - 0,18; «&» - 0,15; «*» - 0,72; «+» - 0,1; «%» - 0,08; «#» - 0,07 и «!» - 0,05. В соответствии с правилами, изложенными в п.3.2.1, предложите вариант неравномерного алфавитного двоичного кода с разделителем знаков, а также постройте коды Шеннона-Фано и Хаффмана; сравните их избыточности.
Постройте в виде блок-схемы последовательность действий устройства, производящего декодирование сообщения, коды которого удовлетворяют условию Фано. Реализуйте программно на каком-либо языке программирования.
Является ли кодирование по методу Шеннона-Фано и по методу Хаффмана однозначным? Докажите на примере алфавита А, описанного в п.3.2.1.
С помощью электронных таблиц проверьте правильность данных о средней длине кода К(А,2) для всех обсуждавшихся в п.3.2.1. примерах неравномерного алфавитного кодирования.
Продолжите пример 3.2, определив избыточность при трехбуквенном блочном кодировании.
Для алфавита, описанного в задаче 3, постройте вариант минимального кода Бодо.
Проверьте данные об избыточность кода Бодо для русского и английских языков, приведенных в п.3.2.2. Почему избыточность кода для русского языка меньше?
Почему в 1 байте содержится 8 бит?
Оцените, какое количество книг объемом 200 страниц может поместиться:
(a) на дискете 1,44 Мб;
(b) в ОЗУ компьютера 32 Мб?
(c) на оптическом CD-диске емкостью 650 Мб?
(d) на жестком магнитном диске винчестера емкостью 8,4 Гб?
Почему в компьютерных устройствах используется байтовое кодирование?
Что такое «лексикографический порядок кодов»? Чем он удобен?
Для цифр придумайте вариант байтового кодирования. Реализуйте процедуру кодирования программно (ввод - последовательность цифр; вывод - последовательность двоичных кодов в соответствии с разработанной кодовой таблицей).
Разработайте программу декодирования байтовых кодов из задачи 13.
Код Морзе для цифр следующий:
Считая алфавит цифр самостоятельным, а появление различных цифр равновероятным, найдите избыточность кода Морзе для цифрового алфавита.
В лексиконе «людоедки» Эллочки Щукиной из романа Ильфа и Петрова «12 стульев» было 17 словосочетаний («Хо-хо!», «Ого!», «Блеск!», «Шутишь, парниша», «У вас вся спина белая» и пр.).
(a) Определите длину кода при равномерном словесном кодировании.
(b) Предложите вариант равномерного кодирования данного словарного запаса.
Глава 4. Представление и обработка чисел в компьютере
Безусловно, одним из основных направлений применения компьютеров были и остаются разнообразные вычисления. Обработка числовой информации ведется и при решении задач, на первый взгляд не связанных с какими-то расчетами, например, при использовании компьютерной графики или звука. В связи с этим встает вопрос о выборе оптимального представления чисел в компьютере. Безусловно, можно было бы использовать 8-битное (байтовое) кодирование отдельных цифр, а из них составлять числа. Однако такое кодирование не будет оптимальным, что легко увидеть из простого примера: пусть имеется двузначное число 13; при 8-битном кодировании отдельных цифр в кодах ASCII его представление выглядит следующим образом: 0011000100110011, т.е. код имеет длину 16 бит; если же определять это число посредством двоичного выборного каскада (например, используя выборочный каскад «Угадайка - 16», подобный описанному в п.2.2.), то получим 4-битную цепочку 1101.
Важно, что представление определяет не только способ записи данных (букв или чисел), но и допустимый набор операций над ними; в частности, буквы могут быть только помещены в некоторую последовательность (или исключены из нее) без изменения их самих; над числами же возможны операции, изменяющие само число, например, извлечение корня или сложение с другим числом. Представление чисел в компьютере по сравнению с формами, известными всем со школы, имеет два важных отличия:
во-первых, числа записываются в двоичной системе счисления (в отличие от привычной десятичной);
во-вторых, для записи и обработки чисел отводится конечное количество разрядов (в «некомпьютерной» арифметике такое ограничение отсутствует).
Следствия, к которым приводят эти отличия, и рассматриваются в данной главе.