- •Введение
- •Часть 1. Базовые вычислительные процессы и их реализация на языке Фортран
- •Тема 1. Алгоритм и его свойства. Основные понятия языка Фортран. Арифметические и логические выражения. Разработка и реализация программ с линейной структурой
- •1.1 Алгоритм и его свойства.
- •1.2 Основные понятия языка Фортран
- •1.3 Арифметические и логические выражения
- •1.3.1 Арифметические выражения
- •1.4 Структура программы языка Фортран. Основные операторы программы с линейной структурой
1.3 Арифметические и логические выражения
Выражения – это конструкция, определяющая последовательность действий, которые необходимо выполнить для вычисления какой-либо величины. Выражения состоят из констант, переменных, ссылок на стандартные функции (см. Приложение А) и функции пользователя, операций с одним операндом, например -Х, или несколькими операндами, например X+Y, круглых скобок. Выражение соответствует осмысленной математической формуле, записанной в отличие от математики последовательно символ за символом, то есть в строку. В отличие от математики объекты не обозначают буквами, а функции спецзначками, - все именуются. Выражения, в зависимости от типа объектов, входящих в них, разбивают на
-
арифметические, выполняющие действия над числами целого, вещественного или комплексного типа
-
логические, выполняющие действия над логическими величинами
-
строковые, выполняющие действия над строками из символов
1.3.1 Арифметические выражения
Доступные математические операции и порядок их выполнения приведен в таблице ниже
Таблица 1.3 Приоритет операций в арифметических выражениях
Операция |
Название |
Уровень |
Порядок выполнения |
Пример |
Функция(х) |
см. приложение А |
1 |
Сначала действия в скобках |
Sin(x+1) |
** |
Возведение в степень |
2 |
Справа налево |
X**3 |
* |
Умножение |
3 |
Слева направо |
X*y |
/ |
Деление |
3 |
Слева направо |
x/y |
+ |
Сложение |
4 |
Слева направо |
X+y |
- |
Вычитание |
4 |
Слева направо |
x-y |
- |
Смена знака |
4 |
Слева направо |
-x |
Вычисления в арифметических выражениях производят с лева на право, согласно приоритету операции (табл. 1.3). Для изменения порядка действий используются круглые скобки. Верхние и нижние индексы в записи арифметических выражений недопустимы. При возведении в степень действия выполняются с право налево. Все переменные, используемые в выражении, должны быть к моменту вычисления выражения определены.
Операции с целыми операндами имеют особенности:
результат деления двух целых чисел определен как целая часть частного;
любое не нулевое целое, не равное 1 или –1 , возведенное в отрицательную степень, будет равно нулю. Это связано с тем, что I**(-J) интерпретируется как 1/I**J и предполагает деление двух целых чисел
Возведение в степень имеет особенности
при вещественном показателе степени real x операция a**x выполняется как - откуда следует ограничение на основание a>0
при целом показателе степени integer n операция a**n выполняется как n-кратное умнжение a*a*a* ..*a
1.3.2 Логические выражения
Результатом операций отношения может быть только два значения True – истина и False – ложь. В логическом выражении можно использовать отношения и логические операции. Отношения в логических выражениях используют для сравнения либо двух числовых, либо двух символьных выражений. Результат вычисления отношения имеет логический тип - это либо .true. - "истина" либо .false.- "ложь". В Фортране допускаются следующие отношения (см. табл. 1.4):
Таблица 1.4 Операции отношения языка Фортран
Отношения |
Фортран 90 |
Пример |
|
Меньше чем |
.LT. |
< |
a.LT.b |
Меньше или равно |
.LE. |
<= |
a.LE.b |
Равно |
.EQ. |
== |
k.EQ.m |
Не равно |
.NE. |
/= |
k.NE.m |
Больше или равно |
.GE. |
>= |
a.GE.b |
Больше чем |
.GT. |
> |
a.GT.b |
Знаки отношений записываются между числовыми либо символьными операндами. Отношения вычисляются после вычисления их операндов.
В Фортране допускаются следующие логические операции (см. табл. 1.5):
Таблица 1.5 Логические операции языка Фортран
Операция |
Обозначение |
Старшинство |
Пример |
Отрицание |
.NOT. |
1 |
.NOT.a |
Конъюнкция |
.AND. |
2 |
a.AND.b |
Дизъюнкция |
.OR. |
3 |
a.OR.b |
Эквивалентность |
.EQV. |
4 |
a.EQV.b |
Неэквивалентность |
.NEQV. |
4 |
a.NEQV.b |
Операция .NOT. является унарной и пишется перед операндом, остальные знаки логических операций всегда записываются между операндами. Две логические операции могут следовать в выражении непосредственно друг за другом, если второй операцией является операция отрицания. Например, a .and. .not. b.
Таблица 1.6.Таблица истинности логических операций
x |
y |
x.and.y |
x.or.y |
.not.x |
x.xor.y |
x.eqv.y |
x.neqv.y |
И И Л Л |
И Л И Л |
И Л Л Л |
И И И Л |
Л Л И И |
Л И И Л |
И Л Л И |
Л И И Л |
Приоритет операций в логическом выражении:
1 – вычисления значений функций;
2 – арифметические операции;
3 – операции отношения;
4 – логические операции.
Примеры:.
На математическом языке a<x<b => x>a x<b.
На Фортране x>a.and.x<b.
Так если a=2, b=4, то выражение истинно при x=3 и ложно при x=1 или x=5.
На математическом языке -<x<+ =>x>a x<b.
На Фортране x>a.or.x<b.
Так если a=2, b=4, то выражение истинно при любом x.
На математическом языке X<a или x>b =>x>a x<b.
На Фортране x<a.or.x>b.
Так если a=2, b=4, то выражение ложно при x=3 и истинно при x=1 или x=5.