Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
W-10_Fort_68_стр_10г..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.18 Mб
Скачать

1.1.5 Арифметические выражения и операции

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

Арифметические выражения представляют собой последовательность констант, переменных, знаков операций, функций, скобок. Константы (2, 4.8, .07), переменные (A1, X, D(4)) и указатели функций (SIN(Х), LOG(A), SQRT(B), входящие в арифметическое выражение, называются операндами. Операнды могут быть целого, вещественного и комплексного типов. Знаками арифметических операций являются:

** возведение в степень; + сложение; / деление; * умножение;вычитание.

Арифметические выражения могут состоять из нескольких операндов, соединенных знаками арифметических операций. Например: LOG(X+2.5)**2+SIN(X*X); 7*Z+3.5-D(3); X+Y. В арифметических выражениях недопустима запись подряд двух или нескольких знаков операций, следующих непосредственно друг за другом. Например, запись А*-В ошибочна, а запись А*(-B) допустима. Скобки в арифметических выражениях используются для указания очередности выполнения операций, как это принято в алгебре. Допускается использование лишних скобок и пробелов. Если очередность выполнения операций скобками не определена, то операции выполняются в следующем порядке: 1) вычисление значений функций, 2) возведение в степень, 3) умножение и деление в порядке их следования слева направо, 4) сложение и вычитание в порядке их следования слева направо. Например, значение выражения A+B-C*D будет вычисляться в следующем порядке 1) С*D, 2) A+B, 3) (A+B)-(C*D). Выражение S/T*R означает SR/T, но не S/(TR). Выражения, заключенные в скобки, вычисляются в первую очередь. Операции одного порядка выполняются последовательно слева направо. В приведенном ниже арифметическом выражении над каждой операцией поставлен порядковый номер ее выполнения:

Две последовательные операции возведения в степень выполняются справа налево. Так, выражение А** В ** С будет вычисляться в следующем порядке:

1) В**С (обозначим результат буквой D); затем 2) A**D.

1.1.6 Операции над вещественными и целыми величинами

Когда аргументы двуместной операции имеют разные типы (один вещественный, другой целый), результат операции будет вещественным. Например, Х+I; A-I; 2**Х; A/I; I/A; A**N; 2**0.25 результаты операций будут вещественными. В большинстве случаев в процессе вычислений целая величина преобразуется к равной ей вещественной величине, после чего для получения результата используется вещественная арифметика. Целый результат дают лишь выражения, состоящие исключительно из целых величин. При записи целой константы в выражение смешанного типа предпочтительнее писать эквивалентное ей вещественное число. Так, выражение 1/Х лучше записать 1./Х Это избавит ЭВМ от преобразования целого числа 1 в вещественное 1.

Особенности целочисленного деления могут привести к неожиданным результатам при вычислении значений выражений смешанного типа. Рассмотрим математически тождественные выражения: A+L/M*B и A+B*L/M Если А = 1.1, L = 2, М = 3 и В = 3.0, то, применяя вышесказанные правила, получаем:

A + L / M * B = A + 2/3 * В = А + 0 * 3.0 = 1.1 + 0.0 = 1.1;

А + В * L / М = А + 3.0 * 2 / М = А + 6.0 / 3 = 1.1 + 2.0 = 3.1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]