Студопедия

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

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

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






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






    Лекция

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

     

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

    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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.