- •Глава 3. Программирование на фортране-90
- •3.1. Версии Фортрана
- •3.2. Работа в системах программирования на Фортране
- •3.3. Структура и формат программы на Фортране 90
- •3.4. Элементы языка Фортран
- •Одиночные и двойные специальные символы
- •3.5. Данные. Типы данных
- •Разновидности числовых типов данных
- •Буквальные константы
- •Упражнения
- •3.6. Арифметические выражения. Присваивание. Ввод-вывод
- •Арифметические выражения
- •Основные математические функции
- •Упражнения
- •3.7. Логические выражения. Программирование ветвлений
- •Ветвление
- •Упражнения
- •3.8. Программирование циклов
- •Упражнения
Упражнения
1. Для следующих формул записать соответствующие арифметические выражения на Фортране:
а) a + bx + cyz; |
б) [(ax – b)x + c]x – d; |
в) |
г) |
д) |
е) |
2. Записать математические формулы, соответствующие следующим выражениям на Фортране:
а) (p + q) / (r + s) – p * q / (r * s);
б) 1E3+beta / (x – gamma * delta);
в) a / b * (c + d) – (a – b) / b / c + 1E–8.
3. Почему на Фортране аргумент функции всегда записывают в скобках (например, пишут log(5), а не log5)?
4. Для следующих формул записать соответствующие арифметические выражения на Фортране:
a) (1 + x)2; |
б) |
в) |
г) |
д) arcsin x; |
е) |
ж) |
з) |
и) |
к) |
л) |
5. Определить результаты вычисления выражений
1) 3/2/5 2) 3./2/5 3)3/2/5. 4) 3/2./5.
6. Определить тип выражения:
а)1+0.0; |
б)20/4; |
в) sqrt(4); |
г)sqrt(16.); |
д) sin(0); |
е)nint(–3.14). |
7. Записать арифметическое выражение, вычисляющее
а) сумму цифр целого двузначного числа X
b) сумму цифр целого четырехзначного числа Х
8.Записать последовательность операторов присваивания, осуществляющих
1) обмен значений в двух переменных
2) циклический обмен значений в трех переменных
3) обмен значений двух целых переменных без использования третьей переменной; обосновать ограниченность такого метода.
9. Написать программу на Фортране вычисления площади кольца по значениям внешнего и внутреннего радиусов.
3.7. Логические выражения. Программирование ветвлений
Результатом логического выражения является логическое значение: .TRUE. или .FALSE. Простейшей формой логического выражения является отношение.
Отношение производит сравнение значений двух арифметических или символьных выражений. Отношения являются аналогами математических неравенств, например: x>0, y<10 и т.п.
Знаки операций отношения в Фортране могут быть записаны в двух формах: мнемонической и символьной.
меньше: .LT. или <
меньше или равно: .LE. или <=
больше: .GT. или >
больше или равно: .GE. или >=
равно: .EQ. или = =
не равно: .NE. или /=
Если в выражении отношения один операнд имеет вещественный, а другой целый тип, то перед выполнением операции целочисленный операнд приводится к вещественному типу.
При сравнении комплексных величин можно применять только две операции отношения: .NE. (/=) и .EQ. (= =).
Пример 1:
real ::x=1.3, y= -4.6
logical flag
flag = x > y ! .TRUE.
flag = x > abs(y) ! .FALSE.
Приоритет операций отношения ниже, чем арифметических операций. Например, в выражении
X+Y>2*Y
можно арифметические выражения в скобки не заключать, так как они сосчитаются до выполнения операции отношения.
Логическое выражение состоит из операндов логического типа, связанных логическими операциями и круглыми скобками. Результатом его вычисления является логическое значение .TRUE. или .FALSE. Операндами могут быть логические константы, переменные, функции, выражения отношения. Логические операции:
.NOT. логическое НЕ (отрицание);
.AND. логическое И;
.OR. логическое ИЛИ;
.XOR. логическое исключающее ИЛИ;
.EQV. эквивалентность;
.NEQV. неэквивалентность.
Все логические операции, кроме отрицания, являются бинарными. Логическая операция .NOT. является унарной и располагается перед операндом.
В таблице приведены результаты логических операций над логическими переменными х и у, принимающими значения "истина" (И) и "ложь" (Л).
Таблица истинности
х |
y |
х.AND. y |
х .OR. у |
.NOT. х |
х .XOR. у |
х .EQV. у |
х.NEQV. у |
И |
И |
И |
И |
Л |
Л |
И |
Л |
И |
Л |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
Л |
И |
И |
И |
Л |
И |
Л |
Л |
Л |
Л |
И |
Л |
И |
Л |
Приоритет логических операций ниже, чем операций отношений. В свою очередь у логических операций имеется своя иерархия рангов. Стоящие подряд в выражении операции отношения и логические операции одинакового старшинства выполняются слева направо.
Пример 2. Математическому неравенству 1≤ x ≤ 7 соответствует следующее логическое выражение: (1<= x).and.(x<=7).
Пример 3. Записать условие принадлежности точки с координатами (x,y) области, лежащей внутри кольца с внешним радиусомR1и внутренним радиусом R2 с центром в начале координат
real x, y, R1, R2
logical g
g=(x*x+y*y<R1*R1).and.(x*x+y*y>R2*R2)
Значение переменной gбудет .true., если точка принадлежит заданной области.