Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obschy_kurs / Fortran / Metod_Lr2_Fortran.doc
Скачиваний:
57
Добавлен:
21.02.2016
Размер:
262.14 Кб
Скачать
    1. Выражения. Арифметические выражения

В языке Фортран 90/95 можно использовать два вида выражений: арифметические и логические. В данной работе рассматриваются только арифметические выражения. Арифметическое выражение является аналогом алгебраического выражения в математике и представляет собой правило для вычисления одного числового значения.

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

Для арифметических операций установлен следующий приоритет выполнения:

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

*, / - умножение и деление;

+, - - сложение и вычитание.

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

1. При отсутствии в выражении скобок операции выполняются в следующем порядке:

  • Вычисление значений функций.

  • Возведение в степень в порядке их следования справа налево.

  • Умножение и деление в порядке их следования слева направо.

  • Сложение и вычитание в порядке их следования слева направо.

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

3. Символ умножения опускать нельзя.

4. Знак одноместной операции не должен следовать непосредственно за другим знаком операции. A=b*-c–ошибка. Правильная запись:A=b*(-c).

5. Нуль нельзя возводить в отрицательную или нулевую степень.

6. Отрицательное вещественное число нельзя возводить в вещественную степень.

7. Возведение вещественного числа в целую и вещественную степень выполняется по различным алгоритмам:

Например:

А**4 = А*А*А*А – эта операция выполняется при любых значениях А;

А**4. = exp(4.*log(A)) – эта операция выполняется медленнее и действительна только для А>0.

8. Результат деления двух целых операндов всегда будет целым. Дробная часть отбрасывается. Например, 5/2=2 1/2=0 5/2*10=20

Для сравнения: 5./2.=2.5 1./2.=0.5 5./2.*10=25.

Примеры правильной и неправильной записи выражений.

Математическая запись

Запись на Фортране

Неправильная запись или не соответствующая исходной

(x+y)**(-a)

(x+y)**-a

(x+y)**(1./3.)

(x+y)**(1/3)

(x+y)**1./3. (=)

x*y/(a*b)

x*y/a*b (=)

(x+y)/sin(x*y)**3

(x+y)/sin**3 (x*y)

(x+y)/sin(xy)**3

(x/y)**1.5

x/y**1.5 (=)

cos((a+b)/(a-b))-tan((a+b)**a/b)

cos(a+b/a-b)-tan(a+b)**a/b

(=)

    1. Оператор присвоения

В зависимости от типа присваиваемого значения операторы присваивания в Фортране подразделяются на : арифметические и логические. В данной работе рассмотрим арифметический оператор присваивания.

Форма записи оператора присваивания имеет вид

V=A,

где V– переменная (простая или с индексами) одного из числовых типов: real, integer, complex;

A– арифметическое выражение.

Действие арифметического оператора присвоения заключается в следующем: вычисляется значение выражения A и полученное значение присваивается переменнойV.

Правила выполнения оператора присваивания:

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

  2. К моменту выполнения оператора присваивания каждая переменная, находящаяся в правой части оператора, должна быть определена.

  3. При вычислении значения арифметического выражения с операндами смешанного типа сначала выполняется преобразование всех операндов к наиболее "сложному" типу (целый тип "проще" чем вещественный, а вещественный "проще" чем комплексный).

  4. Вычисление значения выражения производится по правилам арифметики того типа данных, из которых состоит выражение.

  5. Перед присваиванием результат вычисления арифметического выражения будет преобразован согласно типу переменной V, если они отличны друг от друга.

Пример.

implicit none

real :: x, y=5.5

integer :: k, n, m

n=2; m=5

x=2*n+m! В правой части оператора получим значение 11. Но, поскольку переменнаяx является вещественной переменной, то полученный результат будет преобразован к виду 11.0.

k=y-m/n ! По правилам вычисления (см. 2.9) в результате деления mнаnполучим целое число 2 (целая часть, которое потом преобразуется к вещественному 2.0, так как в выражении кроме целочисленных переменных присутствует вещественная переменная у. В результате вычислений в правой части получим 3.5. Но так как в левой части оператора присваивания находится переменная целого типа, то присваивание переменной целого типа выражения вещественного типа приведет к потере дробной части выражения и результат вычислений будет преобразован к целочисленному типу, т.е. к 3.

Соседние файлы в папке Fortran