Главная Промышленная автоматика.

стандартных функций рекомендуется иметь одну, а именно entier (£), которая «преобразует» выражение типа real в выражение типа integer и присваивает ему значение, являющееся наибольшим целым, не превышающим значение Е. t

3.3. Арифметические выражения

3.3.1. Синтаксис

(знак операции типа сложения) =+ - (знак операции типа умножения) :: = X i / (первичное выражение):: = (число без знака)(пере-

менная)(указатель функции)((арифметическое

выражение))

(множитель) : : = (первичное выражение)(множитель)[ (первичное выражение)

(терм) : : = (множитель)(терм) (знак операции типа умножения) (множитель)

(простое арифметическое выражение) : :== (терм)(знак операции типа сложения) (терм)(простое арифметическое выражение) (знак операции типа сложения) (терм)

(условие) : : = if (логическое-выражение) then

(арифметическое выражение) : : = (простое арифметическое выражение)((условие) (простое арифметическое выражение) else (арифметическое выражение)

3.3.2. Примеры Первичные выражения:

7.394io -8 • •

- sum -- :

. . да/ + 2,81

cos{y + zXS) \ . • = .." {a~3/y-[-vu8) ; . • .....



Множители:

omega .

sum\ cos{g-\-zX3)

7.394io-8t®[/-l-2,8]t(a-3/i/-fwt8) . ,

Термы: •

и .

omega X sum \ cos{y-\-zX 3)/7.394io - 8 f

w [i+2,8] t (a - З/у -(- г»й t 8)

Простое арифметическое выражение:

U - Vu-\-omega X sum \ cos{y-\-zX 3)/7.394io - 8 f

w[i-\-2,8]Ua-3/y-\-vu\S)

Арифметические выражения: wXu - QiS + Cu)\2

if q>0 then 5+3XQM else 2X5+3X If a<0 then U-\-V else if aXb>

17 then U/V else if ky then VjU else 0

a X sin (omega X t)

0.57iol2Xa[AX(A-l)/2, 0]

X arctow («/)+Z) t (7 Ч-Q) If 9 then ft-1 else «

ifa<0 then AlB else if 6=0 then else z 3.3.3. Семантика

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



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

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

else (простое арифметическое выражение) эквивалентна конструкции:

else if true then (простое арифметическое выражение) 3.3.4. Операции и типы

Составные части простых арифметических выражений (не считая логических выражений, употребляемых в условиях) должны иметь тип real или integer (см. разд. 5.1. Описания типа). Смысл основных операций и типы выражений, к которым они приводят, определяются следующими правилами:

3.3.4.1, Знаки операций +, - и X имеют обычный смысл (сложение, вычитание и умножение). Выражение имеет тип integer, если оба операнта имеют тип integer, в противном случае - real.

3.3.4.2. Операции (терм)/(множительУ и (терм)-ь; (множитель) обозначают деление, понимаемое как умножение терма на обратную величину множителя





0 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

0.0033