Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Целая и вещественная арифметика

Выражения на Object Pascal

 

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

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

Примеры выражений:

у

21 (а + b) * с

sin(t)

а > 2

not Flag and (a = b)

NIL

[1, 3..7] * setl

 

 

Выражение состоит из операндов и операторов. Операторынаходятся между операндами и обозначают действия, которые выполняются над операндами. В качестве операндов выражения можно использовать: переменную, константу, функцию или другое выражение. Основные алгебраические операторыприведены в Таблица 14.1 - Алгебраические операторы.

 

Таблица 14.1 - Алгебраические операторы

Оператор Действие
+ Сложение
- Вычитание
* Умножение
/ Деление
DIV Деление нацело
MOD Вычисление остатка от деления

 

При записи выражений между операндом и оператором, за исключением операторов DIV и MOD, пробел можно не ставить.

Результат применения операторов +, -, * и / очевиден.

Оператор DIV позволяет получить целую часть результата деления одного числа на другое. Например, значение выражения 15 DIV 7 равно 2.

Оператор MOD, деление по модулю, позволяет получить остаток от деления одного числа на другое. Например, значение выражения 15 MOD 7 равно 1.

В простейшем случае выражение может представлять собой константу или переменную.

 

Примеры выражений:

 

1230.001* i+1

А + В/С Summa*0.75 (В1+ВЗ+ВЗ)/3

Cena MOD 100

 

Тип выраженияопределяется типом операндов, входящих в выражение, и зависит от операций, выполняемых над ними. Например, если оба операнда, над которыми выполняется операция сложения, целые, то очевидно, что результат тоже является целым. А если хотя бы один из операндов дробный, то тип результата дробный, даже в том случае, если дробная часть значения выражения равна нулю.

Важно уметь определять тип выражения. При определении типа выражения следует иметь в виду, что тип константы определяется ее видом, а тип переменной задается в инструкции объявления. Например, константы 0, 1 и -512 — целого типа (integer), а константы 1.0, 0.0 и 3.2Е-05 — вещественного типа (real).

Любые операции с вещественными числами выполняются с некоторой погрешностью.

В Таблица 14.2 приведены правила определения типа выражения в зависимости от типа операндов и вида оператора.

 

Таблица 14.2 – Правила определения типа выражения

Оператор Тип операндов Тип выражения
*, +, - Хотя бы один из операндов вещественного типа Вещественный тип
*, +, - Оба операнда целого типа Целый тип
/ Вещественный или целый тип Всегда вещественный тип
DIV, MOD Всегда целый тип Всегда целый тип

 

Правила использования операций с операндами различного типа приводятся в Таблица 14.3.

 

Таблица 14.3 – Правила использования операций с операндами различного типа

Операция Действие Тип операндов Тип результата
not Отрицание Логический Логический
not Отрицание Любой целый Тип операнда
@ Адрес Любой Указатель
* Умножение Любой целый Наименьший целый
* Умножение Любой вещественный Extended
* Пересечение множеств Множественный Множественный
/ Деление Любой вещественный Extended
div Целочисленное деление Любой целый Наименьший целый
mod Остаток от деления Любой целый Наименьший целый
and Логическое И Логический Логический
and Логическое И Любой целый Наименьший целый
shl Левый сдвиг Любой целый Наименьший целый
shr Правый сдвиг Любой целый Наименьший целый
+ Сложение Любой целый Наименьший целый
+ Сложение Любой вещественный Extended
+ Объединение множеств Множественный Множественный
+ Сцепление строк Строковый Строковый
- Вычитание Любой целый Наименьший целый
- Вычитание Любой вещественный Extended
or Логическое или Логический Логический
or Логическое или Любой целый Наименьший целый
= Равно Любой простой или строковый Логический
<> Не равно Любой простой или строковый Логический
< Меньше Любой простой или строковый Логический
<= Меньше или равно Любой простой или строковый Логический
> Больше Любой простой или строковый Логический
>= Больше или равно Любой простой или строковый Логический

 

Унарная операция @ применяется к операнду любого типа и возвращает результат типа pointer, в котором содержится адрес операнда. Если операция @ применяется к процедуре, функции или методу в объекте, ее результатом будет адрес точки входа в эту процедуру (функцию, метод). Этот адрес можно использовать только в подпрограмме, написанной на Ассемблере, или во фрагментах INLINE.

В Object Pascal определены следующие логические операции:

Ø not- логическое НЕ;

Ø and- логическое И;

Ø or- логическое ИЛИ;

Ø xor - исключительное ИЛИ.

Логические операции применимы к операндам целого и логического типов. Если операнды - целые числа, то результат логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов операндов по правилам, указанным в Таблица 14.4.

 

Таблица 14.4 – Правила формирования

Логичеcкие операции над данными целого типа (поразрядно)
Операнд 1 Операнд 2 not and or xor
  -   - - -
  -   - - -
    -      
    -      
    -      
    -      

 

К логическим же в Object Pascal обычно относятся и две сдвиговые операции над целыми числами:

Ø i shl j - сдвиг содержимого i на j разрядов влево; освободившиеся младшие разряды заполняются нулями;

Ø i shr j - сдвиг содержимого i на j разрядов вправо; освободившиеся старшие разряды заполняются нулями.

В этих операциях i и j - выражения любого целого типа.

Логические операции над логическими данными дают результат логического типа по правилам, указанным в Таблица 14.5.

 

Таблица 14.5 – Правила проведения логических операций

Логические операции над данными логического типа
Операнд 1 Операнд 2 not and or xor
True - False - - -
False - True - - -
False False - False False False
False True - False True True
True False - False True True
True True - True True False

 

Операция отношения in применяется к двум операндам. Первым (левым) операндом должно быть выражение любого порядкового типа, вторым - множество, состоящее из элементов того же типа, или идентификатор множественного типа. Результат операции будет True, если левый операнд принадлежит множеству.

 

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


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


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



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




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