Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Зачет по инфе.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
336.26 Кб
Скачать

5. Структурные типы данных.

Делятся на: массивы, множества, записи, файлы.

5.1 Множества – это наборы однотипных логически связанных друг с другом объектов. Количество элементов, входящих в множество, может изменяться от 0 до 256. Два множества называются эквивалентными если все их элементы одинаковы, причем порядок следования элементов в множестве безразличен. Если все элементы одного множества входят также и в другое, то говорят о включении первого множества во второе. Пустое множество включается в любое другое. Синтаксис описания типа множества имеет вид

<имя типа> = set of <базовый тип>; -любой ПОРЯДКОВЫЙ тип

*

Пересечение множеств

+

Объединение множеств

-

Разность множеств

=

Проверка эквивалентности, возвращает true если множества эквивалентны

<>

Проверка не эквивалентности

<=

Проверка вхождения, возвращает true, если первое множество включено во второе

>=

Проверка вхождения, возвращает true, если второе множество включено в первое

in

Проверка принадлежности, возвращает true, если элемент принадлежит множеству.

5.2 Массив – набор однотипных компонентов (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). Массив является структурой с произвольным доступом.

<имя типа>=array [<список индексов>] of <тип элемента>;

Здесь<имя типа> – правильный идентификатор;

array, of – зарезервированные слова;

<список индексов> – список из одного или нескольких индексных типов;

<тип элемента> – тип элементов массива.

В качестве индексного типа может использоваться любой порядковый тип. Обычно в качестве индексного типа используется тип-диапазон в котором задаются границы изменения индексов.

function Length(X):Integer

Возвращает число элементов массива

function High(X):Integer

Возвращает максимальный индекс массива

function Low(X):Integer

Возвращает минимальный индекс массива

program InOut; - пример программы для вводы и вывода массива.

{$APPTYPE CONSOLE}

const n=5; //длина массива

var a:array [1..n] of real;

i:Integer;

begin

//Ввод одномерного массива

for i:=Low(a) to High(a) do begin

write('a[', i, ']=');

readln(a[i]);

end;

{Здесь происходит обработка данных массива}

//Вывод элементов одномерного массива на экран

for i:=Low(a) to High(a) do

writeln('a[', i, ']=', a[i]:6:2);

readln;

end.

program InOut2; - пример программы для ввода и вывода 2-мерного массива.

{$APPTYPE CONSOLE}

const n=5; //число строк матрицы

m=2; //число столбцов

var a:array [1..n, 1..m] of real;

i, j:Integer;

begin

//Ввод массива

for i:=1 to n do

for j:=1 to m do begin

write('a[', i, ',', j, ']=');

readln(a[i, j]);

end;{for j}

{Здесь происходит обработка данных массива}

//Вывод элементов массива на экран

for i:=1 to n do begin

for j:=1 to m do

write(' a[', i, ',', j, ']=', a[i, j]:6:2);

writeln;

end;{for i}

readln;

end.

Вставка элемента в массив Рассмотрим алгоритм вставки элемента в массив. Для простоты будем рассматривать только одномерные массивы. Массив состоит из некоторого количества элементов nmax (емкость массива). Текущее количество элементов массива находится в переменной n.Перед вставкой очередного элемента проверяем, что текущее количество элементов массива меньше, чем его емкость.

Далее проверяем, вставляется ли элемент в конец массива или нет. Если элемент вставляется в конец массива, то увеличиваем n на единицу и добавляем элемент. Иначе сдвигаем элементы массива индекс которых больше или равен индексу вставляемого элемента.

Удаление элемента происходит аналогично. Сначала проверяется, что индекс элемента не выходит за диапазон допустимых значений, а затем сдвигаются элементы таким образом, чтобы закрыть удаляемый элемент.