Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Массивы. Сложные типы данных характеризуются типами их компонентов и методом их объединения






Лекция

Сложные типы данных

 

Сложные типы данных характеризуются типами их компонентов и методом их объединения. К сложным (структурированным, составным) типам данных (агрегатам) относят массивы, записи, множества и файлы.

1. Массивы

2. Записи

3. Множества

 

 

Массивы

Массив - это n-мерная совокупность однотипных элементов. В массивы можно объединить данные любого типа. Данные объединяют в массивы в случае, если надо выполнить одни и те же действия над определенным ко­личеством однотипных значений. Массивы отображают следующие математи­ческие понятия:

1) вектор с элементами ai для i = 1¸ n; на языке Паскаль это одномер­ный массив;

2) матрица с элементами a i, j; на языке Паскаль - это двумерный массив;

3) пространство Ai, j, k...; на языке Паскаль - это n-мерный массив, где n -
количество его измерений (индексов).

Массивы часто используют для:

1) численных методов решения систем алгебраических и дифференциальных
уравнений;

2) формирования совокупностей однотипных значений: исходных данных,
промежуточных и конечных результатов.

Объявление массивов определяет атрибуты, характерные только для мас­сивов, размерность и размер:

1) размерность (количество измерений) массива определяет количество ин­
дексов при обращении к элементу массива;

2) размер массива - это количество его элементов с учетом всех его измере­
ний.

Размерность массива на языке Паскаль не ограничена. Однако общий объ­ем ОП массива должен быть не более 65520 байт.

В Паскале массивы называют также регулярными типами данных. Мас­сив - это совокупность фиксированного количества компонентов (элементов) одного и того же типа. Тип элементов массива называется базовым типом. Он может быть любым: простым или сложным. Каждый элемент массива имеет индекс, который определяет его местоположение в ОП. Элементы массива упорядочены по индексам. Мощность индекса определяется количеством эле­ментов массива по данному измерению. Тип индексов может быть любым простым порядковым (ординальным) типом данных, кроме стандартного типа LONGINT и его диапазона. В том числе он может быть перечисляемым или диапазонным типом.

Массивы можно определить в разделах TYPE или VAR.

Форма объявления массива:

ТYРЕ Т = ARRAY [ T1 ] OF T2;

где Т - имя типа массива;

Т1 - тип индексов в виде списка типов, по одному для каждого измере­ния; обычно тип индексов диапазонный; Т2 - базовый тип: тип элементов массива.

Примеры объявления массивов данных различных типов:

TYPE ТА = ARRAY [1.. 10] OF INTEGER; { Тип массива А }

MN = SET OF 2..100; { Тип множества }

VAR А: ТА; { Массивы данных: А - целого типа }

В: ARRAY [1.. 20] OF REAL; { В - вещественного }

С: ARRAY [1..10, 1..20] OF REAL; {С - двумерный, веществ.}

D: ARRAY [-10.. 10] OF BOOLEAN; { D - логического }

E: ARRAY [0.. 30] OF CHAR; { E - символьного }

F: ARRAY [1.. 15] OF STRING[30]; {F- строковых данных}

G: ARRAY [1.. 20] OF MN; { G - множеств }

Тип массива А и множества MN в примере определен в разделе TYPE. Ос­тальных массивов - в разделе VAR.

Объявление массивов отвечает на следующие вопросы транслятора:

1) какие переменные могут быть с индексами;

2) сколько должно быть индексов при обращении к элементу массива;

3) какие допустимы значения индексов в соответствии с определенными для
них границами;

4) какой объем ОП нужен массиву.

Объем ОП, необходимой для размещения массива, определяется из объема ОП, требующегося для размещения одного элемента, и из размера массива, т. е. общего количества его элементов. Например, для 20 элементов типа REAL надо 20 * 6 = 120 байт ОП.

Так как тип элементов массива может быть любой, компонентами массива могут быть структурированные данные: массивы, записи, множества или фай­лы. Например:

TYPE В = ARRAY [ 1.. 20 ] OF REAL; VAR A: ARRAY [ 1.. 30 ] OF В;

To же объявление можно выполнить по-другому:

VAR A: ARRAY [ 1.. 30 ] OF ARRAY [ 1.. 20 ] OF REAL;

VAR A: ARRAY [ 1.. 30, 1.. 20 ] OF REAL;

Последний вариант объявления можно считать наиболее компактным. Пример. Объявить массив целых чисел, содержащий количество дней лю­бого месяца года:

TYPE MES = (YAN, FEB, MAR, APR, MAI, IUN, IUL, AUG, SEN, OKT, NOV,

DEC);

X = ARRAY [ MES ] OF BYTE;

VAR А, В: X;

С: BYTE;

BEGIN В [YAN]: = 31; A [FEB]: = 28;

С: = A [FEB];...

END.

В примере тип индексов массивов А и В определен как перечисляемый тип MES.

В ОП элементы массива располагаются так, что при переходе от элемента к элементу наиболее быстро меняется самый правый индекс массива. Таким образом, матрица располагается в ОП по строкам. Например:

VAR A: ARRAY [1..4] OF REAL;

В: ARRAY [1..2, 1..3] OF REAL;

В ОП элементы этих массивов располагаются в последовательности:

A1 A2 A3 A4 B1, 1 B1, 2 B1, 3 B2, 1 B2, 2 B2, 3

Обращение к элементу массива формируется в виде имени массива и спи­ска индексов в квадратных скобках. Например:

A[i] - для обращения к ai элементу одномерного массива;

B[i, j] - для обращения к bi, j элементу двумерного массива;

c[i, j, k] - для обращения к Ci, j, k элементу трехмерного массива.

При обращении к элементам массивов индексами могут быть выражения соответствующего типа. Значение выражения индекса вычисляется перед об­ращением к элементу массива, и полученный результат используется в каче­стве индекса.

Записи

В задачах экономики и управления часто используются данные в виде таб­лиц, каждая строка которых может содержать разнотипные элементы. Такие данные представляют в виде совокупностей (структур) данных. На языке Паскаль их называют записями. В составе записи (например, с данными од­ной строки таблицы) могут быть скалярные типы, массивы и записи такого же или другого типа. Кроме того, на языке Паскаль можно использовать мас­сивы записей.

Запись - это структура данных, состоящая из фиксированного количества элементов, называемых полями. Поля могут быть различных типов. Записи -наиболее общий и гибкий тип данных Паскаля. Они могут быть постоянной (фиксированной) и переменной структуры (вариантные записи). Ввод-вывод и обработка записей в Паскале может производиться только поэлементно. До­пускается копирование записей одного типа из одной переменной в другую с помощью оператора присваивания.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.