
- •Введение
- •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.Реализация очередей
- •2.4.9.Графы и деревья
- •2.4.10.Некоторые сд для хранения графов и деревьев
- •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. Нормальные формы
- •Результат первого шага приведения к 2нф отношения преподаватель_предмет (отношение преподаватель в 2нф)
- •Результат первого и второго шагов приведения к 2нф отношения преподаватель_предмет (все отношения в 2нф)
- •4.3.8. Пример проектирования реляционной бд
- •5.Модели знаний
- •5.1. Классификация знаний
- •5.2. Продукционная модель представления знаний
- •5.3.Представление знаний в виде семантической сети
- •5.4. Фреймовая модель представления знаний
- •5.5. Логическая (предикатная) модель представления знаний
- •6.Моделирование предметных областей в экономике
- •6.1.Понятие модели предметной области
- •6.2.Структурная модель предметной области
- •6.2.1.Функциональная методология idef0
- •6.2.2. Функциональная методика потоков данных
- •6.3.Объектная модель предметной области
- •6.4. Сравнение методик моделирования предметной области
- •7.Алгоритмы, наиболее часто использующиеся при обработке информации в эис
- •7.1.Алгоритмы поиска
- •7.1.1.Поиск элемента в неупорядоченном массиве
- •7.1.2.Поиск элемента в упорядоченном массиве.
- •7.1.3.Фонетический поиск
- •7.2.Алгоритмы сортировки
- •7.2.1.Сортировка методом пузырька.
- •7.2.2.Сортировка вставками
- •7.2.3.Сортировка выбором
- •7.2.4.Пирамидальная сортировка
- •7.2.5.Быстрая сортировка.
- •7.2.6.Сортировка слиянием
- •7.3.Поиск на графах
- •7.3.1.Поиск в глубину
- •7.3.2.Поиск в ширину
- •7.4.Топологическая сортировка графа
- •7.5.Сетевое планирование
- •7.5.1.Алгоритм расчета наиболее ранних сроков наступления событий
- •7.5.2.Алгоритм расчета наиболее поздних сроков наступления событий
- •7.5.3.Алгоритм расчета резервов времени.
- •Литература Рекомендуемая основная литература
- •Рекомендуемая дополнительная литература
- •Приложение 1.Форматы штрих-кодов
- •Приложение 2. Коды некоторых стран
2.3.2.Запись натурального числа в двоичной системе
Примером
двоичного кода является запись
натурального числа
в позиционной
системе счисления с основанием 2
Пусть
- последовательность
двоичных кодовых слов длины
.
Тогда рекурсивное
определение последовательности кодовых
слов в порядке двоичного счета будет
следующее:
Наиболее прямым способом порождения данной последовательности кодовых слов является счет в системе счисления с основанием 2, что реализует алгоритм, представленный укрупненной блок-схемой на рис.2.2.
Укрупненная блок-схема показывает идеи алгоритма и не расскрывает многие детали реализации. В рассматриваемом алгоритме из укрупненной блок-схемы видно, что двоичные наборы длины n формируются в ячейках B[n-1],B[n-2],...,B[0], массива B. Ячейка B[n] массива B служит для организации завершения работы алгоритма. Ячейка B[n] принимает значение 1, когда все 2n наборов выданы. Также видно, что для реализации двоичного счета, т.е. для организации перехода от текущего кодового слова к следующему, используется простой прием:
просматривается текущее кодовое слово в направлении от младшего разряда к старшему, с целью поиска первого разряда равного нулю (на укрупненной блок-схеме номер такого разряда сохраняется в переменной i);.
найденному первому разряду равному нулю присваивается значение 1, а все «более младшие» разряды, значение которых равно 1, обнуляются.
Укрупненная блок-схема показывает идеи алгоритма и не расскрывает многие детали реализации. В рассматриваемом алгоритме из укрупненной блок-схемы видно, что двоичные наборы длины n формируются в ячейках B[n-1],B[n-2],...,B[0], массива B. Ячейка B[n] массива B служит для организации завершения работы алгоритма. Ячейка B[n] принимает значение 1, когда все 2n наборов выданы. Также видно, что для реализации двоичного счета, т.е. для организации перехода от текущего кодового слова к следующему, используется простой прием:
просматривается текущее кодовое слово в направлении от младшего разряда к старшему, с целью поиска первого разряда равного нулю (на укрупненной блок-схеме номер такого разряда сохраняется в переменной i);.
найденному первому разряду равному нулю присваивается значение 1, а все «более младшие» разряды, значение которых равно 1, обнуляются.
Однако из укрупненной блок схемы не видны детали реализации перехода от текущего кодового слова к следующему. Обычно подобная детализация не вызывает трудностей.
В некоторых случаях будем приводить детальные блок-схемы алгоритмов и (или) реализацию алгоритмов на языке Pascal. Поскольку алгоритма порождения кодовых слов в порядке двоичного счета является первым, рассматриваемым нами алгоритмов, то приведем его детальную блок-схему и программную реализацию. Детальная блок-схема алгоритма представлена на рис. 2.3, программная реализация представлена листингом 2.1.
Еще один способ порождения последовательности кодовых слов в порядке двоичного счета заключается в переборе всех целых чисел от 0 до 2n-1 и обращением двоичного представления каждого из чисел в набор (bn-1,bn-2,...,b0). Обращение осуществляется с помощью битовых операций или с помощью операций целочисленного деления и получения остатка от деления. Укрупненная блок схема алгоритма реализующего данный подход показана на рис.2.4. Одна из возможных программных реализаций представлена в листинге 2.2.
Листинг 2.1
const n_max=50; {максимальная длина кодового слова}
var B:array[0..n_max] of byte;
i,n:byte;
begin
write(‘Введиде длину кодового слова n=’); readln(n);
for i:=0 to n do B[i]:=0;
while B[n]<>1 do
begin
for i:=n-1 downto 0 do write(b[i]); writeln;
i:=0;
while B[i]=1 do
begin
B[i]:=0;
i:=i+1
end;
B[i]:=1
end;
end;
Листинг 2.2
const n_max=50; {максимальная длина кодового слова}
var B:array[0..n_max] of byte;
Nn,k,i:word;
j:byte;
begin
write(‘Введиде длину кодового слова n=’); readln(n);
Nn:=1;
for j:=1 to n do Nn:=Nn*2;
Nn:=Nn-1;
for i:=0 to Nn do
begin
k:=i;
for j:=0 to n-1 do
begin
B[j]:=k mod 2;
k:=k div 2
end;
for j:=n-1 downto 0 do write(b[j]); writeln;
end;
end;