КАТЕГОРИИ: Архитектура-(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; Просмотров: 524; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |