- •Міністерство освіти і науки України
- •1. Понятие об информации
- •1.1. Объем информации
- •1.2. Количество информации
- •Вопрос 1: Забила ли Украина более одного гола? Да – 1 / Нет – 0;
- •Вопрос 2: Забила ли Италия более одного гола? Да – 1 / Нет – 0;
- •Вопрос 3: Забила ли Украина четное число голов? Да – 1 / Нет – 0;
- •Вопрос 4: Забила ли Италия четное число голов? Да – 1 / Нет – 0;
- •Вопрос1. Произошло ли с1? Да – 1;
- •Вопрос2. Произошло ли с2? Да – 01;
- •Вопрос3. Произошло ли с3? Да – 001;
- •2. Преобразование информации при решении задач на компьютере
- •Понятие данных
- •Информация и данные. Понятие о структурах данных. Информационная модель объекта
Информация и данные. Понятие о структурах данных. Информационная модель объекта
При разработке программ для решения сложных задач всегда можно выделить некоторый объект, являющийся главным элементом исследования. Таким объектом может быть номенклатура изделий некоторого завода, календарный план работы цеха, студенческая группа. Объект характеризуется свойствами, для исследования взаимосвязей которых и решается задача. Одним из возможных методов решения задачи является моделирование объекта с помощью компьютера. Для этой цели строится информационная модель, в которую включается информация только о существенных для данной задачи свойствах (характеристиках, сторонах) объекта. Другая задача, касающаяся этого же объекта, потребует знания информации о других его свойствах - строится другая информационная модель. Объединение различных информационных моделей объекта составит его комплексную модель, предназначенную для решения выделенной совокупности задач. Модель строится для набора однородных (с одинаковым вектором свойств) объектов и является изображением, описанием объекта при решении задачи.
Элементами информационной модели являются атрибуты, описывающие соответствующие свойства объекта. Каждому атрибуту соответствует множество допустимых значений. Конкретному, выделенному экземпляру объекта соответствует экземпляр модели, где каждому атрибуту присвоено определенное значение.
Атрибутом является логически неделимый элемент информации об объекте, который может быть связан с другими элементами, связи между атрибутами задаются связями между свойствами объекта.
Большинство атрибутов изменяется с течением времени, т.е. как правило, необходимо учитывать динамический характер моделей. По отношению к внешней среде объекта атрибуты можно разделить на входные, внутренние и выходные. Вектор (X) входных атрибутов включает те атрибуты, через которые внешняя среда влияет на объект. Вектор (С) внутренних, собственных атрибутов определяет конфигурацию объекта в текущей момент времени. Вектор (У) выходных атрибутов определяет те атрибуты, через которые объект воздействует на внешнюю среду. Алгоритмом решения задачи является некоторый оператор А, преобразующий входные и внутренние атрибуты в выходные.
Для таких систем, учитывающих предысторию системы и воздействий внешней среды, необходимо хранить информацию на определенных носителях.
Понятие о данных
Информация существует благодаря связи с носителем, который представляет среду, способную находиться в одном из фиксированных наборов состояний.
Данными называется изображение информации, т.е. описание состояния носителя. Для превращения информации в данные и наоборот необходим язык преобразования сообщения в состояние носителя и наоборот. Алфавит такого языка состоит из набора знаков (литер), которые могут быть отображены на состояние носителя (при этом для различных носителей система, отображений может быть различной). Информационное сообщение изображается в виде последовательности (строки) символов на логическом уровне, а изображение информации с описанием состояний носителя осуществляется ни физической уровне данных. И на логическом и на физическом уровне мы оперируем абстрактными понятиями данных. На логическом уровне нас не интересует метод преобразования символов на физическую память, а на физическом уровне нас не интересует реализация битов , управление устройством и многие другие вопросы. Знак обычно не связывается со смыслом, т.е. он представляет собой конструкцию данных, а не информации. Исключением являются знаки-цифры, несущие определенную информацию при своем появлении. Единице информации (атрибуту) соответствуем некоторое "слово" ( подстрока символов), называемое обычно элементом данных. Таким образом, информационная модель отображается на совокупность взаимосвязанных элементов данных, объединенных в логическую запись. При этом каждой логической записи соответствует свой экземпляр объекта, набору объектов соответствует файл.
Рассмотрим случай
дискретного носителя, т.е. когда носитель
состоит из конечного множества элементов,
способных находиться в одном из ( к )
устойчивых состояний. Будем считать,
что каждое состояние обеспечивается
стандартным физическим устройством.
Последовательность из ( n
) таких элементов представляет собой
среду, способную находиться в
устойчивых состояний. Хотя с ростом
( к ) растет диапазон представляемых
кодов, но растет и сложность системы.
Количество стандартных устройств определяется по формуле Q(k)=k[lnN/lnK].
Функция Q(k) возрастает при к≥3 . Надежность системы P(k)=(1-q)Q где:
q- вероятность сбоя в одном устройстве, будет максимальной при минимальном Q .
Считая стоимость системы равной S=a*Q(k) мы находим, что надежная система будет при этих предположениях и системой с минимальной стоимостью. Легко проверить, что Q(k) будет наименьшим при к=3 , однако сложность реализации троичных элементов привела к использованию двоичных элементов. При этом основным элементом, среды является двоичный разряд (бит). Последовательность разрядов объединяется в группу изображения (кодирования) знака (символа). Последовательность групп разрядов объединяется в поле для записи элемента данных, т.е. поле является элементарной, основной конструкцией - понятием данных на физическом уровне. Поля объединяются в физические записи, содержащие данные логических записей. При отображении логической единицы на физическую появляется понятие проекции или отображения символов языка данных на группу двоичных разрядов. Наиболее распространенным случаем является использование групп одинаковой длины независимо от изображенного символа. Длина такой группы зависит от количества символов в алфавите. Примеры систем:
М2- в которой для каждого символа отводится 6 разрядов ;
ГОСТ 13052-67 - для каждого символа используется 7 бит;
ДКОИ - для каждого символа используется 8 бит.
Таким образом, при решении задачи приходится рассматривать три области - область реального мира, область информации и область данных. В первой области основным элементом является объект с выделенным множеством взаимосвязанных свойств. Объект является логическим понятием, с которым связаны понятия «экземпляр объекта» и «набор экземпляров объектов».
При отображении первой области на вторую объект заменяется информационной моделью, содержащей множество атрибутов и описание связей между ними. Экземпляру объекта соответствует сечение модели. При отображении второй области на третью атрибуты заменяются элементами данных, а взаимосвязи атрибутов реализуются специальными средствами, так что информационная модель преобразуется в структурированный (организованный специальным образом) набор данных.
Понятие о структурах данных
Отношение B - некоторое подмножество декартового произведения
C = A1 A2 ... An, выделяемое некоторыми оператором, условием, функцией.
B = F ( A1, A2, ..., An )
Отношения бывают унарные, бинарные, тернарные, …, n-арные.
Свойства бинарных отношений:
рефлексивность;
симметричность;
транзитивность.
Операции: объединение; пересечение; вхождение; поиск; добавление; исключение.
Ключ - особая характеристика записи, позволяющая однозначно идентифицировать всю запись. Ключи бывают простые и составные. Если ключ состоит из одного элемента, то это простой. Ключи вводят на множестве записей определенного отношения.
Метод доступа к элементам совокупности определяет порядок обработки элементов совокупности. Есть прямой (элемент совокупности обрабатывается независимо от другого) и последовательный (у каждого элемента есть последующий и предыдущий) методы доступа.
Способ адресации элементов совокупности определяет стратегию взаимного расположения элементов в памяти или называется организация совокупности.
Структура данных - это организованная совокупность данных, решающая задачи адресации и доступа к элементам данных. Структуры данных бывают статические (меняются только значения элементов данных) и динамические (меняются связи, данные, расположенные в памяти).
Операции над структурами данных:
создание, формирование образа структуры данных в памяти;
определение значения элемента данных (селекция);
корректировка, добавление, замена, исключение;
обработка структуры данных, выборка элементов структуры в некотором заданном порядке и выполнение над ними нужного алгоритма;
уничтожение, освобождение памяти и разрыв связей
Задача поиска: по заданному поисковому значению Ко требуется определить подмножество элемента структуры, для которого значение элемента данных удовлетворяет критерию поиска.
Критерии поиска:
а) поиск по совпадению { i / ki = ko };
б) поиск ближайшего { i / /ki - ko/ - min }
если ki = - - поиск наименьшего
в) интервальный поиск { i / k1< ki < k2 }
г) поиск по условию { i / f (ko, ki) = 0 }
Результатом поиска является информация о месте нахождения искомого элемента.
Процесс перехода от предметной области к информа-ционной модели называется изучением предметной области. Итог процесса изучения - это постановка задачи.
Переход от модели к области логических данных называется проектированием. Итог проектирования - проект структуры.
Алгоритмический язык описывает структуру данных и алгоритмы их обработки.
Язык программирования описывает представление данных и программы их обработки. Этот процесс охватывает проект и реализацию. Итог - готовая программа с документа-цией, описывающей реализацию.
Каждая структура данных ( СД) характеризуется набором операций, которые с ней можно выполнять (поведение СД) и стратегией размещения элементов структуры в памяти (представление СД). Поэтому каждая структура данных имеет:
а) внешнее описание, т.е. описание свойств структуры и описание набора операций;
б) внутреннее представление, т.е. реализацию операций, описание стратегии взаиморасположения.
Важно, чтобы внутреннее представление соответствовало внешнему описанию.
Классификация структуры данных:
последовательная структура данных, при этом адресация и доступ последовательны
а) длины элементов одинаковы;
б) длины элементов различны: используется метод разделителей
вычисляемый доступ;
вычисляемый доступ с вынесенным дискриптором: все длины собирают отдельно от самих элементов;
базированный метод доступа: хранятся не просто длины, а наполненные длины;
координатный прямой доступ: в качестве элементов в дискрипторе хранятся абсолютные адреса.
Понятие о данных.
Данные – это изображение информации.
Информация – это активная, а данные – это пассивная. С каждым языком представления данных связан язык интерпретации, преобразование из данных в информацию.
Язык представления интерпретации данных имеет алфавит 1,2...n.
Информация поступает в виде сообщения, где символ языка есть символ из этого алфавита S=S1S2...Sn, где Sn=.
Сообщение состоит из слов, и говорят, что каждое слово изображает атрибут информации и является наименьшим неопределенным атрибутом информации. Строку S наз. логическим уровнем представления данных.
Si хранилось в виде кода i т.е. в виде одного из устойчивых состояний. Физический уровень представления данных – это изображение данных в виде устойчивого состояния определенной среды или носителя.
Предметная область – это группа объектов с определенными свойствами, законами их взаимодействия, но только те которые существенны с точки зрения решаемой задачи. Язык информации модели, как правило, это язык математики.
Обзор основных структур данных.
Каждая СД характеризуется:
набором операций (поведением);
стратегия размещения элементов СД в памяти (представлением);
СД имеет:
внешнее описание; т.е. описание свойств структуры и описание набора операций;
внутренние представление; т.е. реализацию операций, описание стратегии взаиморасположения;
Классификация СД:
Последовательные СД (адресация последовательная, доступ последовательный ).
а) длины элементов одинаковы;
Aдрес ai=A+(i-1)*l;
б) длины элементов различны;
в) вычисляемый доступ;
Адрес ai=A+ lj
г) вычисляемый доступ с вынесенным дескриптором;
l1,l2,...ln; a1,a2,...an;
д) базированный метод доступа;
0, l1, l1+l2, bj ...
е) координатный прямой доступ;
Массив (адресация последовательная, доступ вычисления по индексам).
а)одномерный массив(вектор);
ai=A+(i-1)*l
б)двумерный массив (матрица);
а11 ... а1n
А= ............... (n*m)
An1 ... ann
1) Расположение в памяти по строкам;
A: an,...,a1m,a21,...,an1,an,...,amn
Aij=A+(i-1)m*l+(j-1)l=A+((i-1)m+(j-1))*l=A+(k-1)l
K=(i-1)m+j – приведенный индекс – это порядковый номер элемента относительно
начала массива.
2)Расположение по столбцам(Фортран);
K=(j-1)n+i – приведенный индекс;
в)трехмерный массив;
aijk
Определение: массив это набор однотипных элементов, занимающих непрерывный участок памяти и доступ к элементам которого осуществляется вычисляемой по индексам.
Реализация массивов в ЯВУ(язык высокого уровня) различны:
Статические массивы(Паскаль, Фортран); размерность определяется во время
компиляции и не может быть изменена при выполнении;
Массивы с регулируемой размерностью(Алгол-60); размерность можно вычислить,
но это возможно только во внутреннем блоке;
Массивы с подвижными границами(CLU, Алгол-68); размерность измеряется
динамически с помощью операций: add, addl – удлинить; remh, reml - укоротить.
3)Списки – структура с последовательной обработкой и произвольным размещением.
(адресация произвольная, доступ -последовательный);
Списки бывают:
однонаправленные;
двунаправленные;
кольцевые(одно- и двух- направленные);
многоуровневые;
4)Таблицы(адресация произвольная, доступ –по ключу.
A=F(k); k-ключ; функция хемирования(расстановки, рантолизации );
а)открытая адресация(линейное апробирование);
двойное хемирование:
f1(k) u f2(k)
f(k), f(k)+1, ... n, 0, 1, ... f(k);
б)метод цепочек:
1)f(k)=k mod m;
2)метод усечения;
Свойства функции хемирования;
быстрое вычисление;
минимизированное число композиций;
5)Дерево(доступ на основе выбора функции пути, адресация произвольная ).
У дерева есть корень и листья.


корень









листья
6)Сеть – это любой произвольный граф. (доступ на основе выбора функции пути, адресация произвольная).
Понятие о данных.
Данные – это изображение информации.
Информация – это активная, а данные – это пассивная. С каждым языком представления данных связан язык интерпретации, преобразование из данных в информацию.
Язык представления интерпретации данных имеет алфавит 1,2...n.
Информация поступает в виде сообщения, где символ языка есть символ из этого алфавита S=S1S2...Sn, где Sn=.
Сообщение состоит из слов, и говорят, что каждое слово изображает атрибут информации и является наименьшим неопределенным атрибутом информации. Строку S наз. логическим уровнем представления данных.
Si хранилось в виде кода i т.е. в виде одного из устойчивых состояний. Физический уровень представления данных – это изображение данных в виде устойчивого состояния определенной среды или носителя.
Предметная область – это группа объектов с определенными свойствами, законами их взаимодействия, но только те которые существенны с точки зрения решаемой задачи. Язык информации модели, как правило, это язык математики.
Обзор основных структур данных.
Каждая СД характеризуется:
набором операций(поведения);
стратегия размещения элементов СД в памяти(представления);
СД имеет:
внешнее описание; т.е. описание свойств структуры и описание набора операций;
внутренние представление; т.е. реализацию операций, описание стратегии взаиморасположения;
Классификация СД:
Последовательные СД (адресация последовательная, доступ последовательный ).
а)длины элементов одинаковы;
Aдрес ai=A+(i-1)*l;
б)длины элементов различны;
в)вычисляемый доступ;
Адрес ai=A+ lj
г)вычисляемый доступ с вынесенным дескриптором;
l1,l2,...ln; a1,a2,...an;
д)базированный метод доступа;
0, l1, l1+l2, bj ...
е)координатный прямой доступ;
Массив (адресация последовательная, доступ вычисления по индексам).
а)одномерный массив(вектор);
ai=A+(i-1)*l
б)двумерный массив (матрица);
а11 ... а1n
А= ............... (n*m)
An1 ... ann
1) Расположение в памяти по строкам;
A: an,...,a1m,a21,...,an1,an,...,amn
Aij=A+(i-1)m*l+(j-1)l=A+((i-1)m+(j-1))*l=A+(k-1)l
K=(i-1)m+j – приведенный индекс – это порядковый номер элемента относительно
начала массива.
2)Расположение по столбцам(Фортран);
K=(j-1)n+i – приведенный индекс;
в)трехмерный массив;
aijk
Определение: массив это набор однотипных элементов, занимающих непрерывный участок памяти и доступ к элементам которого осуществляется вычисляемой по индексам.
Реализация массивов в ЯВУ(язык высокого уровня) различны:
Статические массивы(Паскаль, Фортран); размерность определяется во время
компиляции и не может быть изменена при выполнении;
Массивы с регулируемой размерностью(Алгол-60); размерность можно вычислить,
но это возможно только во внутреннем блоке;
Массивы с подвижными границами(CLU, Алгол-68); размерность измеряется
динамически с помощью операций: add, addl – удлинить; remh, reml - укоротить.
3)Списки – структура с последовательной обработкой и произвольным размещением.
(адресация произвольная, доступ -последовательный);
Списки бывают:
однонаправленные;
двунаправленные;
кольцевые(одно- и двух- направленные);
многоуровневые;
4)Таблицы(адресация произвольная, доступ –по ключу.
A=F(k); k-ключ; функция хемирования(расстановки, рантолизации );
а)открытая адресация(линейное апробирование);
двойное хемирование:
f1(k) u f2(k)
f(k), f(k)+1, ... n, 0, 1, ... f(k);
б)метод цепочек:
1)f(k)=k mod m;
2)метод усечения;
Свойства функции хемирования;
быстрое вычисление;
минимизированное число композиций;
5)Дерево(доступ на основе выбора функции пути, адресация произвольная ).
У дерева есть корень и листья.


корень









листья
6)Сеть – это любой произвольный граф. (доступ на основе выбора функции пути, адресация произвольная).
Понятие о типе данных.
Тип данных понимается как класс переменных , могут заменять друг друга в некоторых контекстах.
Понятие типовой безопасности: Цель контроля типов состоит в том, чтобы гарантировать, что фактическое использование объектов, как данных совместимо с установленным для них поведением, ассоциированных с типом их объекта.
Контроль типов должен обеспечит надежность программ.
Тип данных определяется по существу двумя свойствами:
поведением объекта, рассматриваемого типа;
структурным описанием, определяет представление объектов этого типа;
(не обязательно) множество объектов рассматриваемого типа;
Под типом объекта понимается:
само множество объектов;
существенные свойства, т.е. представление объектов этого множества;
набор операций обеспечивающий доступ к объектам и позволяющий использовать их свойства;
Тип – это не объект, а атрибут; или может быть объектом, существующим в период компиляции. Такой подход дает нам преимущества:
напоминает, что представление типов данных (в период компиляции) извлеченное из спецификации этого типа имеет решающее значение для эффективности (в период компиляции) контроля типов;
дает основу для классификации механизмов типов данных в ЯВУ.
Концепция типов данных в языке Паскаль.
Тип определяется тройкой:
множество допустимых значений;
набор операций;
внутреннее представление;
Если тип данных встроен в язык, то он обеспечивает:
описание переменных;
взятие значений и присваивание;
сравнение значений;
обозначение констант;
выбор компонент(для структурированных типов):
Организация данных в Паскале основана на теории структурной организации данных Хоара:
Тип определяется как класс значений, могут принимать переменные или выражения;
Каждое значение принадлежит только одному типу;
Тип значения, константы, переменной, выражения можно ввести либо из контекста, либо из вида самого операнда;
Каждой операции соответствует некоторый фиксированный тип ее операндов и результат;
Для каждого типа свойства значений и элементарных операций можно задать с помощью аксиомы;
Все это позволяет обнаруживать в программе бессмысленные конструкции (это контроль типов) и решать вопрос о представлении данных и преобразованиях в вычислительных машинах.
Классы операций воспринимаемых в Паскале:
неявные приведения;
приведение типа выражения;
приведение типа переменных;
Классификация средств определения данных в ЯВУ.
1)Средства структурирования данных;
(Алгол-60, Фортран);
а)существует набор встроенных типов данных:
integer;
real;
boolean;
characted;
б)средства структурирования:
array;
record;
union;
pointer;
2)Средства определения типов(Паскаль, Алгол-68); можно связать со структурой данных некоторое имя.
Type
Int Array = array[1..100] of integer;
Var
A,B:integer;
Два объекта считаются эквивалентными в языке Паскаль:
если описаны в одном операторе var;
если описаны одним идентификатором типа;
3)Абстрактные типы данных(АТД).
АТД – это, по существу, определение нового понятия в виде класса (одного или более) объектов с некоторыми свойствами и операциями. АТД предусматривает инкапсуляцию.
4)Средства ООП.
Симула 67 – язык программирования.
ООП – это методология программирования, основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией некоторого класса, а классы образуют иерархию на принципах наследуемости.
Структурные единицы:
объекты;
каждый объект является реализацией некоторого класса;
классы организованы иерархически;
Поколение языков программирования.
Первое поколение ЯП: массивы, записи – не имели средств определения новых типов данных (Алгол-60, Фортран);
Второе поколение ЯП: появились средства определения новых типов данных, но не было средств связанных абстрактных типов (Алгол-68, Пасколь);
Третье поколение ЯП: связано с появлением АТД (Симула-67, Concurrent Pascal, CLU, Hephard, Modula);
Четвертое поколение ЯП: появились ООП языки (С++, Object Pascal).
