Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kapralov.doc
Скачиваний:
1
Добавлен:
15.11.2019
Размер:
202.75 Кб
Скачать

5. Составные типы

o Регулярные типы

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

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

Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое. Элементы, образующие массив, упорядочены так, что каждому элементу соответствует совокупность номеров (индексов), определяющих его место в общей последовательности. Индексы представляют собой выражения простого типа. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индекса нужного элемента: <имя массива>[<индекс>].

Описание массива определяет его имя, размер массива и тип данных.

o Массивы и работа с ними

Массив — это поименованная область памяти, доступ к отдельным частям которой осуществляется по общему имени и индексу соответствующей части. Все части (элементы) массива имеют один и тот же тип, в качестве которого может выступать любой из стандартных или нестандартных типов, описанных к моменту объявления массива. В частности, элементы массива также могут являться массивами. Такие структуры называются многомерными.

Описание массива производится в разделе описания типов данных (после ключевого слова Туре) и выглядит следующим образом:

<Название массива> = Array [<Нижний индекс>..<Верхний индекс>] Of <Тип элементов>;

Максимально возможный размер массивов в Delphi достигать 2 гигабайт .

Заметим, что для массивов одного и того же типа, как и для записей, определена операция присвоения, выполняемая копированием значений элементов одного массива в другой. Также доступна операция присвоения для отдельных элементов массивов.

o Символьные массивы

Наиболее простым способом для работы с текстом является применение символьных переменных и линейных массивов, содержащих данные символьного типа (Char).

Var mas:array[1..80] of Char;

В этом случае необходимо использовать все правила, приемы и методы обработки массивов,но этот подход не совсем удобен, поэтому был введен специальный тип данных, предназначенные для работы с фрагментами текста – строками.

o Строковый тип (STRING)

В языке программирования Pascal для работы со строками был предусмотрен тип string, представляющий собой последовательность (массив) символов, размером до 255-ти байт, в начале которой находилось одно-байтовое число, содержащее длину строки.

Язык Delphi поддерживает три строковых типа: shortstring, Longstring, WideString:

тип shortstring представляет собой статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов;

тип Longstring представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти;

тип WideString представляет собой динамически размещаемые в памяти строки, длина которых ограничена только объемом свободной памяти. Каждый символ строки типа WideString является Unicode-символом.

o Комбинированные типы (RECORD)

Типизованные константы типа "запись". Это комбинированный тип констант, основанный на конструкциях типа Record, которые состоят из полей. Константы такого типа определяются по правилу "имя поля : значение поля".

tDayOfYear = Record {день года}

o Запись с вариантами

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

При использовании вариантных полей в записях следует подчиняться следующим

правилам синтаксиса:

1. Вариантная часть должна начинаться со строки, в начале которой располагается слово Case, а в ее конце – слово Of. Между ними располагается поле-признак.

2. Запись должна содержать только один вариант, который должен располагаться в конце всех описанных полей непосредствено перед словом End.

3. Имена полей во всех вариантах должны быть разными. Они должны также отличаться от имен полей фиксированной части.

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

o Оператор присоединения

Оператор присоединения" with. Он используется для любых объектов, имеющих длинный "хвост" из свойств, которые приходится записывать многократно. Вот как он записывается:

with Объект do

begin

end;

Свойства Объекта внутри логических скобок begin/end можно записывать непосредственно. Допускается перечислять через запятую несколько объектов. Естественно, в случае, когда внутри скобок находится один оператор, они необязательны.

o Множественные типы (SET OF)

Множество — это составной тип данных для представления набора некоторых элементов как единого целого. Область значений множества — набор всевозможных подмножеств, составленных из его элементов. Все элементы множества должны принадлежать однобайтовому порядковому типу. Этот тип называется базовым типом множества.

Для описания множественного типа используется словосочетание set of, после которого записывается базовый тип множества:

type

TLetters = set of 'A'..'Z';

Теперь можно объявить переменную множественного типа:

var

Letters: TLetters;

o Операции над множествами

|+ |Объединение |– |Вычитание

|* |Пересечение

|<= |Не меньше |>= |Не больше |= |Равенство |<> | |in |Принадлежание

Объединение, вычитание и пересечение множеств.

Результатом любой из операций будет также множество.

Операции сравнения множеств.

Результатом любой из операций будет логическая константа True (истина) или

False (ложь).

операции in будет

логическая константа True (истина) или False (ложь).

o Эквивалентность и совместимость типов

Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется

одно из двух условий:

-Т1 и Т2 представляют собой одно и то же имя типа;

-тип Т2 описан с использованием типа Т1 с помощью равенства или

последовательности равенств. Например:

type

T1 = Integer;

T2 = T1;

T3 = T2;

Менее строгие ограничения определены совместимостью типов. Напри-

мер, типы являются совместимыми, если:

-они эквивалентны;

-являются оба либо целыми, либо действительными;

-один тип - интервальный, другой - его базовый;

-оба интервальные с общим базовым;

один тип - строковый, другой - символьный.

o Преобразование типов

Chr(X) - преобразовать число в символ

Функция возвращает символ типа Char, кодом которого является число Х типа Byte.

FloatToStr(Value) - преобразовать вещественное число в символьное представление

Функция возвращает строку типа string, содержащую символьное представление вещественного числа Value типа Extended.

StrToFloat(S) - преобразовать символьную форму вещественного числа в двоичную

Функция преобразовывает строку S типа string в двоичное представление вещественного числа типа Extended и возвращает это число как результат своей работы.

StrTolnt(S) - преобразовать символьную форму целого числа в двоичную

Функция возвращает двоичный эквивалент типа Integer символьной формы числа (десятичной или шестнадцатеричной), представленной строкой S.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]