- •Концепция типов данных
- •Стандартные простые типы
- •3.1 Целый тип
- •3.1.1. Операции над данными целого типа:
- •3.2. Действительный тип
- •3.2.1. Операции над данными действительного типа:
- •3.3. Логический тип
- •Концепция типа данных. Фундаментальные структуры данных
- •1. Простые типы
- •1.1 Целочисленные типы
- •Предопределенные целочисленные типы
- •1.2 Логический тип
- •1.3 Символьный тип (char)
- •1.4 Перечисляемый тип
- •1.5 Интервальный тип
- •1.6 Вещественный тип.
- •Вещественный тип
- •Операции над вещественными числами
- •Операции присваивания.
- •Операции ввода-вывода.
- •Стандартные функции
- •Диапазон представления для вещественных типов
- •2. Структурированные типы
- •2.1 Массив
- •Операции над множествами
- •2.3 Запись
Операции над множествами
Операция |
Действие |
Результат |
+ |
Объединение |
Порядковое значение c содержится в a+b только тогда, когда оно содержится в a или в b. |
- |
Разность |
Порядковое значение c содержится в a-b только тогда, когда оно содержится в a и не содержится в b. |
* |
Пересечение |
Порядковое значение c содержится в a*b только тогда, когда он содержится в обоих множествах a и b. |
Если наименьшим порядковым значением, которое является членом результата операций над множествами, является a, а наибольшим - b, то типом результата будет множество a..b.
Напишем программу использующею множества. На примере программы реализующей детскую считалку.
Программа kinder; Константа nmax = 20; Переменная n, {Число игроков} m, {Число слов в считалке} i, j: целая; krug: set из 1..nmax; Начало ВвестиСтр(n); ВвестиСтр(m); krug:=[1..n];{В круге стоит n детей} i:=n; Повторять Для j:=1 до m выполнить Повторять i:= i mod n+1; покаНе i in krug; ВывестиСтр(i:3); krug:=krug-[i]; покаНе krug=[]; конец. |
const
nmax = 20;
var
n, {Число игроков}
m, {Число слов в считалке}
i, j: integer;
krug: set of 1..nmax;
begin
readln(n);
readln(m);
krug:=[1..n];{В круге стоит n детей}
i:=n;
repeat
for j:=1 to m do
repeat
i:= i mod n+1;
until i in krug;
writeln(i:3);
krug:=krug-[i];
until krug=[];
end.
2.3 Запись
Запись - это тип данных, позволяющий хранить вместе переменные, имеющие различные типы данных.
Пример: Type Date = record Dd: 1..31; Mm: 1..12; Yy: integer; End; Var D: date; d.yy=1999; d.mm:=06; d.dd:=14; Концепция определения типа данных в терминах выполняемых над ними операций называется концепцией абстрактного типа данных.
К примеру, множество поддерживает операции объединения, разности, пересечения, принадлежности элемента;массив поддерживает операции присвоения и произвольного доступа до элемента.
Основной идеей определения таких типов данных является отделить "концепцию" того, чем данная структура данных должна заниматься, от какой-либо ее реализации.
Вы можете определить новый тип операции в массиве например поиск максимального числа и зная алгоритм нахождения максимального числа в массиве Вы сможете реализовать его на любом языке программирования, а определив эту операцию в отдельный модуль Ваша программа сможет в дальнейшем использовать эту операцию, а не вдаваться в подробности связанные с циклами и индексами массива.
Итак, сегодня мы познакомились с концепцией абстрактного типа данных и основными структурами данных.
