Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Типы данных.doc
Скачиваний:
17
Добавлен:
15.04.2015
Размер:
121.34 Кб
Скачать

Совместимость и преобразование типов

Во многих выражениях в ТУРБО-ПАСКАЛЕ допускается использовать только совместимые типы. Два типа являются совместимыми если выполняется одно из следующих условий:

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

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

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

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

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

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

В случае нарушения совместимости типов компилятор выдает на экран сообщение “Type mismatch”.

Исключение сделано лишь для переменных и констант типа INTEGER (целые), которые разрешается использовать в выражениях типа REAL “вещественные”:

VAR

X : INTEGER;

Y : REAL;

begin

Y:=X+2;

В этом случае в правой части выражения стоит целочисленное выражение, которое автоматически преобразуется в вещественное. Однако оператор X:=2.0 будет неверным, так как нельзя автоматически преобразовать вещественное выражение к целому типу. Для этого необходимо использовать функции ROUND(X), которая округляет вещественное число X до ближайшего целого или функцию TRUNC(X), которая усекает вещественное число X путём отбрасывания дробной части.

Для преобразования символьных данных типа CHAR в целое число используется функция ORD(X). Обратное преобразование целого числа X типа INTEGER в символьный тип CHAR осуществляется функцией CHR(X).

Для преобразования числа X вещественного или целого типа в строку символов S используется процедура STR(X,S).

Обратное преобразование строки S во внутреннее представление целой или вещественной переменной X используется процедура VAL(S,X,CODE). Параметр CODE содержит 0, если преобразование выполнено успешно.

При вычислении выражения любого типа приоритет вычислений определяется расставленными скобками, а при их отсутствии в соответствии с табл.3.

Таблица 3

Приоритет

Операции

1

NOT

2

* , / , DIV, MOD , AND

3

+ , - , OR , XOR

4

= ,<> , < , > , <= , >=

Логические операции в ТУРБО-ПАСКАЛЕ имеют более высокий приоритет чем операции отношения. Поэтому в сложных логических выражениях обычно необходимо расставлять скобки. Если A, B, C: INTEGER , то выражение A=B AND A<C будет ошибочным. Правильно (A=B) AND (A<C).