Название: Информатика. Алгоритмический язык Фортран - учебное пособие (Худяков Д.С., Саблина Г.В.)

Жанр: Информатика

Просмотров: 3092


2.5. выражения

 

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

Значением арифметического выражения является число целого, вещественного или комплексного типа, а результатом вычисления логического выражения – значение истинности: .TRUE. (истина) или .FALSE. (ложь).

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

Знаки арифметических операций:

+ сложение;

–  вычитание;

*  умножение;

/  деление;

** возведение в степень.

Скобки в арифметических выражениях имеют обычный математи-ческий смысл.

При написании арифметических выражений нужно иметь в виду следующее.

· Два знака операции не могут стоять рядом, а если это необходимо, то они должны быть разделены скобками. Так, например, запись вида X/–Y неверна, а запись X/(–Y) верна.

· Если в арифметическом выражении отсутствуют круглые скобки, то порядок выполнения операций будет следующим:

а) вычисление функций;

б) возведение в степень;

в) умножение и деление;

г) сложение и вычитание.

· Операции одного ранга выполняются последовательно слева направо, за исключением операции возведения степени в степень, которая выполняется справа налево.

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

Пример:

X*Y/(X**2+7.5)+COS(X)

В математической записи это выглядит как

.

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

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

· Для целых величин определены все операции, однако результат не должен выходить из множества целых чисел. Поэтому результатом деления двух целых величин будет целая часть полученного частного. Например, если J = 9, I = 4, то J/I = 2.

· Любая вещественная величина может быть возведена в целую степень. Операция возведения вещественных величин в вещественную степень вида А**В выполняется только в том случае, если А > 0.

· Для комплексных величин определены операции сложения, вычитания, умножения и деления. Операция возведения в степень для комплексной величины выполняется только в том случае, если показатель степени – целая величина.

· Когда в арифметическом выражении все операнды (переменные и константы) одного типа, то величина, являющаяся результатом выполнения этого выражения, того же типа. Когда операнды имеют разный тип, то тип результата, как правило, определяется типом операнда максимального ранга.

Ранг операнда зависит от его типа в соответствии со списком

1. INTEGER

2. REAL

3. REAL*8

4. COMPLEX

5. COMPLEX*16

Например, результатом арифметического выражения с операндами INTEGER и REAL будет величина, относящаяся к типу REAL.

Особый случай: операции над операндами REAL*8 и COMPLEX породят величину COMPLEX*16, а не COMPLEX.

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

Отношение – это простейшее логическое выражение вида

А#В.

Здесь А и В – арифметические выражения целого или вещественного типа, # – знак отношения.

Знаки отношения:

.LT. меньше (<)

.LE. меньше или равно (£)

.EQ. равно (=)

.NE. не равно (¹)

.GE. больше или равно (³)

.GT. больше (>)

Точки в записи знаков отношений обязательны. Пример:

(X**2+5*X).GT.Y

В математической записи это выглядит как

                                 x2 + 5x > y.

Результатом отношения может быть либо «истина» (.TRUE.), либо «ложь» (.FALSE.). Если отношение справедливо, то результатом будет значение .TRUE., а если отношение не выполнено, то .FALSE. В приведенном примере, если X = l, Y = 2, то результатом отношения будет .TRUE., а если Х = 2, Y = 20, то результатом будет .FALSE.

Из отношений, логических переменных и констант можно составить логические выражения вида

L1@L2@L3...

Здесь L1, L2,… – логические элементы, т.е. отношения, логические переменные и константы; @ – знак логической операции.

 

Логические операции

 

Знак операции

Запись

Значение

.AND.

(логическое «и»)

L1.AND.L2

Выражение истинно, когда L1 и L2 истинны, в противном случае оно

ложно

.OR.

(логическое «или»)

L1.OR.L2

Выражение ложно, когда L1 и L2 ложны, в противном случае оно истинно

.NOT.

(логическое отрицание)

.NOT.L

Выражение истинно, когда L ложно,

в противном случае оно ложно

 

Точки в записи знаков логических операций обязательны. Пример:

X.LT.Y.AND.Y.LT.Z

 

Логическое выражение истинно, если Y удовлетворяет условию X < Y < Z, и ложно в противном случае.

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

1. Два знака логических операций не могут стоять рядом, а ес-

ли это необходимо, то они должны быть разделены скобками. Так, например, запись вида L1.AND..NOT.L2 неверна, а запись L1.AND.(.NOT.L2) верна.

2. Если в логическом выражении отсутствуют круглые скобки, то порядок выполнения операций идет в следующей последователь-ности:

а) отношения

б) .NOT.

в) .AND.

г) .OR.

Операции одного ранга выполняются последовательно слева направо.

При написании логических выражений во избежание ошибок,

а также для удобства прочтения целесообразно использовать скобки.