- •Список сокращений
- •1. Эис, их классификация и принципы построения
- •1.1. Понятие системы
- •1.2. Понятие эис. Назначение эис
- •1.3.Классификация эис
- •1.4. Основные принципы и методы построения эис.
- •1.4.1. Принципы построения и функционирования эис.
- •1.4.2.Структурный и объектно-ориентированный подходы к проектированию.
- •1.4.3.Понятие жизненного цикла эис.
- •Вопросы для повторения
- •Понятие системы.
- •Резюме по теме
- •2.Теоретические основы работы с информацией
- •2.1. Понятие информации
- •2.2. Измерение количества информации
- •2.3.Кодирование информации
- •2.3.1.Оптимальное основание кода
- •2.3.2.Запись натурального числа в двоичной системе
- •2.3.3.Код Грэя
- •2.3.4.Оптимальное кодирование
- •2.3.5.Помехозащищенное кодирование
- •2.4.Методы организации данных в памяти эвм
- •2.4.1.Типы данных, сд и атд
- •2.4.2.Время выполнения программ
- •2.4.3.Списки
- •2.4.4.Реализация списков
- •Реализация списков посредством массивов
- •Реализация списков с помощью указателей
- •2.4.5.Стеки
- •2.4.6. Очереди
- •2.4.7.Графы и деревья
- •2.4.8.Некоторые сд для хранения графов и деревьев
- •Вопросы для повторения
- •Резюме по теме
- •3. Особенности работы с экономической информацией
- •3.1.Классификация и кодирование экономической информации.
- •3.2.Единая система классификации и кодирования
- •3.3.Штриховое кодирование
- •Алгоритм расчета контрольного разряда ean
- •Вопросы для повторения
- •Резюме по теме
- •4.Модели данных
- •4.1.Атрибуты, составные единицы информации, показатели, документы
- •4.2.Операции над сеи
- •4.3.Реляционная модель данных
- •4.3.1. Отношения, как основа реляционной модели данных
- •4.3.2. Операции над отношениями
- •4.3.3. Нормализация отношений
- •4.3.4. Функциональные зависимости
- •4.3.5. Нормальные формы
- •Вопросы для повторения
- •Операции над сеи.
- •Операции над отношениями.
- •Резюме по теме
- •5.Модели знаний
- •5.1. Классификация знаний
- •5.2. Продукционная модель представления знаний
- •5.3.Представление знаний в виде семантической сети
- •5.4. Фреймовая модель представления знаний
- •5.5. Логическая (предикатная) модель представления знаний
- •Классификация знаний.
- •6.2.Структурная модель предметной области
- •6.2.1.Функциональная методология idef0
- •6.2.2. Функциональная методика потоков данных
- •6.3.Объектная модель предметной области
- •6.4. Сравнение методик моделирования предметной области
- •Вопросы для повторения
- •Понятие модели предметной области.
- •Резюме по теме
- •Литература Рекомендуемая основная литература
- •Рекомендуемая дополнительная литература
- •Задачник Введение
- •Краткое изложение используемых методов решения и основных теоретических положений
- •Примеры решения типовых задач
- •Задачи для самостоятельного решения
- •Практикум (лабораторный) Лабораторная работа №1. Кодирование информации
- •Требования к содержанию, оформлению и порядку выполнения
- •Теоретическая часть
- •Общая постановка задачи
- •Список индивидуальных данных
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Понятие информации.
- •Способ оценки результатов
- •Пример выполнения работы
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Список индивидуальных данных
- •Пример выполнения работы
- •Пример выполнения работы
- •Контрольные вопросы к защите
- •Способ оценки результатов
Пример выполнения работы
Рассмотрим 30 вариант. В данном варианте требуется разработать алгоритмы выполнения операций ENQUEUE(x,Q) и DEQUEUE(Q) АТД «Очередь», при этом следует использовать указатели.
Как было отмечено в разд.2.4.6, очередь представляет собой специальный вид списка. Оператор ENQUEUE(x,Q) вставляет элемент x в конец очереди Q. С помощью операторов списка этот оператор может быть реализован следующим образом: INSERT(x, NEXT(LAST(Q),Q), Q). Оператор DEQUEUE(Q) удаляет первый элемент очереди Q. C помощью операторов списка данный оператор может быть реализован следующим образом: DELETE(FIRST(Q),Q).
Реализация списка на указателях проиллюстрирована на рис. 2.14. Алгоритмы операторов списка INSERT и DELETE представлены блок-схемами на рис. 2.15 и 2.16 соответственно. Данные алгоритмы могут быть использованы для реализации операторов очереди ENQUEUE и DEQUEUE. Однако, очередь представляет собой частный случай списка: вставка элемента происходит всегда в конец списка, а удаление – сначала. Поэтому эффективнее реализовать очередь в виде схемы, представленной на рис. Л2.1.
Из рисунка видно, что в структуре очереди Q хранится указатель как на первый элемент списка (поле Firstelem), так и на последний (поле Lastelem). Число элементов очереди сохраняется в поле Size. Очередь, изображенная на рис.Л2.1, состоит из трех элементов.
При такой реализации очереди алгоритм операции ENQUEUE(x,Q) состоит в следующем:
Создать новый элемент, на который указывает ячейка n.
В новом элементе поле element инициализировать значением x, а поле next – значением nil.
Если число элементов очереди не равно нулю (в структуре очереди поле Lastelem не равно nil или же поле Size не равно нулю), то полю next последнего элемента очереди присвоить значение n.
В структуре очереди полю Lastelem присвоить значение n, и увеличить значение поля Size на единицу.
Данный алгоритм представлен блок-схемой на рис.Л2.2.
Алгоритм операции DEQUEUE(Q) состоит в следующем:
Если очередь пуста (в структуре очереди поле Firstelem равно nil или же поле Size равно нулю), то выдать соответствующее предупреждение и закончить операцию, иначе выполнить следующие действия:
Запомнить указатель на первый элемент очереди в переменной r.
В структуре очереди полю Firstelem присвоить значение указателя на второй элемент очереди.
Освободить память, на которую ссылается указатель r.
В структуре очереди уменьшить значение поля Size на единицу.
Данный алгоритм представлен блок-схемой на рис.Л2.3.
Контрольные вопросы к защите
Понятие типа данных.
Понятие АТД.
Понятие СД.
Механизмы агрегирования ячеек (массивы, записи, файлы).
Указатели.
АТД список.
Операторы списка.
Реализация списков с помощью массивов.
Реализация списков с помощью указателей.
АТД стек.
Операторы стека.
АТД очередь.
Операторы очереди.
Проанализируйте преимущества и недостатки различных способов реализации списков.
Способ оценки результатов
Критерии оценки результатов совпадают с критериями, определенными при описании лабораторной работы №1 в разделе «Способ оценки результатов».
Лабораторная работа №3. СД для хранения графов
Целью лабораторной работы является изучение основных структур данных, использующихся для хранения графов, и приобретение навыка разработки программ, преобразующих одни структуры в другие.
Требования к содержанию, оформлению и порядку выполнения
В содержательной части отчета по выполнению лабораторной работы требуется привести описание алгоритма, разработанного согласно своему варианту, и сделать вывод о преимуществах и недостатках использования различных СД для хранения графов. Алгоритмы рекомендуется оформлять с помощью блок-схем.
Теоретическая часть
Теоретические сведения, необходимые для выполнения лабораторной работы, представлены в разд.2.4.7 и 2.4.8.
Общая постановка задачи
Требуется разработать алгоритм преобразования исходной СД хранения графа в выходную СД. Варианты заданий представлены в таблице в следующем разделе.
В качестве дополнительного задания рекомендуется программно реализовать разработанный алгоритм.
Список индивидуальных данных
В таблице Л3.1 приведены варианты заданий. Каждая строка таблицы соответствует варианту. Например, в первом варианте требуется разработать алгоритм преобразования матрицы смежности графа в матрицу инцидентности, задающую тот же граф.
Таблица Л3.1 |
||||||||||||
Варианты заданий лабораторной работы №3 |
||||||||||||
№ варианта |
Исходная СД |
Выходная СД |
||||||||||
матрица смежности |
матрица инцидент-ности |
массив ребер |
массивы смежности |
список ребер |
списки смежности |
матрица смежности |
матрица инцидент-ности |
массив ребер |
массивы смежности |
список ребер |
списки смежности |
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
Ö |
|
|
Ö |
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
Ö |
|
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
Ö |
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
Ö |
|
|
|
|
|
|
|
Ö |
Ö |
|
|
|
|
|
|
|
|
|
|
|
|
Ö |
|
Ö |
|
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
Ö |
|
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
Ö |
|
|
|
|
|
|
|
|
|
Ö |
|
|
|
|
Ö |
|
