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

2. Структурированные типы данных.

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

3. Тождественность и совместимость типов.

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

Тождественность типов требуется только для переменных фактических и формальных параметров при вызове процедур и функций. Совместимость типов играет важнейшую роль в выражениях и операциях сравнения и в операторах присваивания.

В операции сравнения два типа являются совместимыми, если соблюдаются хотя бы одно из следующих условий:

  • оба типа являются одинаковыми;

  • оба типа являются вещественными типами;

  • оба типа являются целочисленными;

  • оба типа являются поддиапазоном другого;

  • оба типа являются поддиапазоном одного и того же основного типа;

  • оба типа являются множественными типами с совместимыми базовыми типами;

  • оба типа являются строковыми типами с одинаковым числом компонентов;

  • один тип является строковым, а другой тип – строковым или символьным типом;

  • один тип является указателем, а другой тип – любым типом указателей.

Пример:

‘a’>’b’ {допустимо, так как оба значения относятся к типу char};

‘a’>5 {ошибка, так как сравниваемые значения имеют разные типы}.

В операциях присваивания два типа являются совместимыми, если соблюдается хотя бы одно из следующих условий:

  • оба типа тождественны, и ни один их них не является файловым или структурным типом, содержащим компоненты с файловым типом на одном из своих уровней;

  • оба типа являются совместимыми скалярными типами, и значения второго типа попадают в диапазон возможных значений первого;

  • оба типа относятся к вещественным типам, и значения второго типа попадают в диапазон возможных значений первого;

  • первый тип является вещественным, второй – целочисленным;

  • оба типа являются строковыми;

  • первый тип является строковым, второй – литерным;

  • оба типа относятся к совместимым множественным типам, и все члены значения второго типа попадают в диапазон возможных значений первого типа;

  • оба типа относятся к совместимым типам «указатель».

Пример:

var A,B,:integer;

C:real;

. . . . . . . . . . . . .

A:=B; {правильно}

C:=B; {правильно}

A:=C; {ошибка}

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