
- •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
9.2. Дискретные устройства без памяти
Введенное в предыдущем параграфе понятие автомата является достаточно общим. Накладывая ограничения на компоненты X, Y, Q, Ψ, Θ можно получить частные случаи автоматов. Одним из них являются автоматы без памяти, т.е. устройства, в которых не происходит фиксации внутреннего состояния. Очевидно, в этом случае из общего описания должны быть исключены компоненты Q и Ψ; автомат без памяти задается тройкой компонентов < X, Y, Θ>. Соотношение (9.2) принимает вид
т.е. выходной символ на данном такте определяется только входным символом и не зависит от ранее поступивших символов. Следовательно, каждый автомат без памяти реализует единственный преобразователь (оператор), который осуществляет «побуквенный перевод» входных последовательностей символов в выходные.
Пусть имеется дискретное устройство, имеющее п входов х1.....хп и т выходов y1 ..., ут. Если данное устройство не обладает памятью, то преобразование входных сигналов в выходные описывается системой уравнений:
Если входной и выходной алфавиты являются двоичными, то представленная система оказывается системой логических функций, для решения которой можно привлечь аппарат математической логики. Именно такие устройства будем рассматривать в дальнейшем.
Подобные устройства могут быть построены путем соединения некоторого набора элементарных компонентов (элементов). Эти элементы образуют конечный набор, называемый базисом, а входящие в него элементы - базисными. Базис имеет смысл совокупности элементарных (простейших) действий, о которых шла речь в теории алгоритмов, а базисный элемент можно рассматривать в качестве устройства, выполняющее элементарное действие. Если речь идет о двоичных дискретных устройствах, то базисы строятся из элементов, которые реализуют простейшие логические функции. Напомним, что к таким функциям относятся конъюнкция (логическое И - ^), дизъюнкция (логическое ИЛИ - v), импликация (→), сумма по модулю 2 (), эквивалентности (~) и отрицания (логическое НЕ - ,). Однако между простейшими функциями имеются соотношения эквивалентности (см. приложение), позволяющие выразить одни функции через другие. В результате оказывается, что нет необходимости включать в базис все элементы, реализующие простейшие логические функции - достаточно выбрать некоторое минимальное их подмножество. Этому условию удовлетворяет базис, построенных на элементах И, ИЛИ и НЕ - он называется простейшим, а входящие в него элементы - логическими элементами или (логическими вентилями). Схемы элементов приведены на рис. 9.1. Рассмотрим каждый их них по отдельности.
Элемент И (^) имеет два входа, на которые независимо могут подаваться сигналы x1 и х2; каждый из сигналов является двоичным, т.е. может принимать одно из двух значений - 1 или 0; элемент формирует единственный выходной сигнал у, значения которого определяются только входными сигналами. Функция выходов (x1,x2) согласно табл. Б.1 (см. приложение Б) принимает следующие значения:
Функция выходов элемента ИЛИ (V) принимает следующие значения:
Логический элемент НЕ () обеспечивает одноместное преобразование (с одним входным сигналом) в соответствии с правилами:
Комбинируя базисные элементы по определенным правилам, можно построить их сложные объединения - схемы (над данным базисом), способные совершать преобразования, соответствующие, вообще говоря, любым логическим функциям. Таким образом, схема есть комбинация базисных элементов, в которой выходы одних элементов присоединяются к входам других. Если в таких объединениях элементов отсутствуют замкнутые контуры (подача сигнала с выхода элемента на один из его же входов), то возникает класс схем, которые называются комбинационными. Говорят, что базис обладает свойством полноты, если схемами над ним может быть реализована любая логическая функция (и, следовательно, любая система логических функций). В частности, таким свойством обладает простейший базис.
Со схемами связано решение двух классов задач - анализа и синтеза. В задачах анализа выявляется логическая функция, реализуемая заданной схемой. Синтез - это, наоборот, построение схемы по заданной конечной логической функции.
Пример 9.1
Определить логическую функцию, реализуемую представленной схемой на рис.9.2.
Решение будем вести последовательно, находя значение функции в точках схемы, отмеченных цифрами. Для упрощений используем соотношения из приложения Б.
Таким образом, у = x1 х2; b = x1 ^ х2). Результаты обработки могут быть представлены в виде таблицы:
Поскольку перечисленные преобразования являются правилами двоичного суммирования, рассмотренная комбинация логических элементов получила название полусумматора. На ее вход подаются два сигнала: x1 и х2; выходной сигнал у дает результат сложения в том же двоичном разряде, в котором стоят складываемые числа; в случае суммирования 1 + 1 происходит перенос в старший разряд - для него имеется еще один выход b.
В арифметико-логическом устройстве компьютера полусумматор обрабатывает лишь младшие разряды регистров. Для всех остальных разрядов помимо двух складываемых значений необходимо учитывать бит переноса, образовавшийся в результате сложения предыдущих разрядов. Следовательно, комбинационная схема, обеспечивающая выполнение данной операции, должна иметь три входа (x1, х2 и bi-1) и формировать два выходных значения (у и bn) - эта схема называется двоичным сумматором. Логические функции такой схемы для каждого из разрядов i (i = 2 ... п, считая, что младшим является разряд 1):
Схема, реализующая такие логические функции - она называется последовательным двоичным сумматором - содержит 15 логических элементов (9 И, 4 ИЛИ и 2 НЕ). Схема двоичного сумматора представлена на рис. 9.3. Такой сумматор обеспечивает выполнение операций в одном из разрядов процессора. Следовательно, 32-разрядный процессор будет содержать 31 схему сумматора и1 полусумматора (для младшего разряда), которые соединены друг с другом и вместе образуют сумматор.
Подобным образом, вообще говоря, можно построить комбинационную схему для любого конечного множества задач, решение которых (т.е. выходные сигналы) однозначно определяются их условием (т.е. входными сигналами). В частности, если ограничиться некоторой фиксированной точностью представления числа, то можно построить комбинационную схему, которая вычисляет значение любой функции у = f(x1,...xn) (безусловно, в двоичных кодах), например, sin(x) и др. Однако на практике получается, что при разрядности 32 и выше даже схема умножителя, вычисляющего произведение х1∙х2, становится столь сложной, что оказывается проще реализовать умножение иным путем, который можно назвать алгоритмическим и который позволяет представить умножение в виде последовательности сложений и сдвигов, о чем шла речь ранее. Точно также и иные вычисления сводятся к цепочкам элементарных операций: сложение, сдвиг, инверсия и пр.