Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Смешанные выражения

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

A:= (B < – C + 25) AND (X > E);

3 1 2 5 4 последовательность выполнения операций.

В смешанных выражениях тип результата последней операции определяет тип результата всего выражения.

Пример.

VAR A, B, X: REAL;

C: BOOLEAN;

BEGIN

C:= (X > A) AND (X < B);

…………….

END.

В данном случае переменная С принимает значение TRUE, если значение X попадает в интервал А - В. В противном случае принимает значение FALSE.

 

 

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

Ответ на вопрос, принадлежат ли переменные одному типу данных, зависит от того, как в языке трактуется эквивалентность: структурная или именная.

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

В языке Паскаль принята именная эквивалентность. Типы переменных Т1 и Т2 идентичны (одинаковы), если:

1) Т1и Т2 – это один и тот же тип;

2) Т1 и Т2 определены друг через друга, т.е. TYPE T1 = T2 или T2 = T1;

При вычислении выражений и при выполнении операции присваивания операнды должны быть совместимы. При вычислении выражений два типа операндов совместимы, если:

1) оба одного типа;

2) один операнд - вещественный, а другой – целый;

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

4) оба операнда – диапазоны одного и того же базового типа;

5) оба операнда – множества, составленные из элементов одного и того же базового типа данных;

6) оба операнда – строки;

7) один операнд типа – строка, другой – символ.

Пусть T1 – тип переменной левой части оператора присваивания, а Т2 – тип результата выражения его правой части. Тогда выполнение операции присваивания возможно, если:

1) Т1 и Т2 – один и тот же тип;

2) Т1 и Т2 – совместимые порядковые типы и значение Т2 лежит в диапазоне возможных значений Т1;

3) Т1 и Т2 – вещественные типы и значение Т2 лежит в диапазоне возможных значений Т1;

4) Т1 – вещественный тип, Т2 – целый тип;

5) Т1 – строка, Т2 – строка или символ;

6) Т1 и Т2 совместимые множества и все элементы Т2 принадлежат множеству возможных значений Т1.

Преобразование типов в Паскале может быть явным или неявным. При явном преобразовании типа используются вызовы специальных функций, аргументы которых принадлежат одному типу, а результаты другому (ORD, ODD, TRUNC, ROUND, CHR).

Данные одного типа могу автоматически (неявно) преобразовываться в данные другого типа перед выполнением операций выражений и операций присваивания. Неявное преобразование типов возможно в трех случаях:

1) в выражениях из вещественных и целочисленных данных целые автоматически преобразуются в вещественные, и результат выражения будет вещественного типа;

2) при присваивании переменной вещественного типа значения целого типа – оно преобразуется в значение вещественного типа и только после этого присваивается переменной левой части оператора присваивания;

3) одна и та же область памяти попеременно содержит данные то одного, то другого типа (совмещение в памяти данных разных типов).

Явное преобразование типов может производиться с помощью стандартных функций и с помощью операции приведения типа.

<== предыдущая лекция | следующая лекция ==>
Выражения над множествами | Операторы ввода-вывода
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 490; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.