Номер примера указан в соответствии с номером схемы вычислений данной задачи, разработанной в пункте 4.1. Разветвляющиеся вычислительные процессы.
Пример 3. Написать программу вычисления Z = max(A,B,C).
Алгоритм вычисления разобран в п. 4.1, схема вычисления представлена на рис.3. Имена переменных в программе выбраны в соответствии со схемой.
Исходные данные А,В,С – переменные действительного типа. Введем их с помощью оператора ввода READ с клавиатуры под управлением списка. Под управлением списка выведем на дисплей и результат, переменную Z.
Для вычисления промежуточной переменной R и переменной результата Z используем структурный логический оператор IF.
Для читаемости снабдим программу комментариями. Заметим, что содержание комментариев определяется автором.
* Вычисление Z = max(A,B,C)
* Ввод исходных данных А,В,C
READ (*,*) A,B,C
* Вычисление R = max(A,B)
IF ( A>= B) THEN ! или IF(А .GE.B) THEN
R = A
ELSE
R = B
ENDIF
* Вычисление Z = max(R,C)
IF(R >= C) THEN ! или IF(R .GE.C) THEN
Z = R
ELSE
Z = C
ENDIF
* Печать результата
WRITE(*,*) ' Z= ',Z
STOP
END
5.2.14. Оператор цикла
Структурный оператор цикла имеет следующую конструкцию
DO i = m1, m2, m3
…………………
…………………
ENDDO
где i – параметр цикла (простая переменная),
m1, m2 – начальное и конечное значение параметра цикла,
m3 – шаг изменения параметра.
m1, m2, m3 могут быть константами, простыми переменными, переменными с индексами и арифметическими выражениями целого и действительного типа, значения которых должно быть определено до входа в цикл. Они могут принимать положительное и отрицательное значение.
Все операторы от DO до оператора ENDDO составляют цикл. Оператор работает следующим образом: сначала параметр цикла i = m1, при каждом последующем выполнении цикла параметр i увеличивается на шаг m3, т. е. i = m1 + m3, i = m1+ 2m3 и т.д., до тех пор, пока i ≤ m2. После этого выполняется выход из цикла к оператору, следующему за оператором ENDDO.
Если шаг изменения параметра m3 = 1, то оператор имеет вид
DO i = m1, m2
………………
………………
ENDDO
Организация цикла с помощью оператора DO должна подчиняться определенным правилам. Например:
Параметры m1, m2, m3 не должны изменяться внутри цикла, эти значения определяются до входа в цикл.
Входить в цикл можно только через оператор DO, иначе параметр цикла не будет определен.
Оператор DO может входить в последовательность операторов, используемых в структурном IF. В этом случае область действия цикла должна полностью находиться внутри данного блока.
Разрешается использование цикла в цикле. Область действия внутреннего цикла должна полностью находиться в области действия внешнего цикла. Такие циклы называются вложенными. Параметры внешнего и внутреннего циклов разные и изменяются они не одновременно. При этом у каждого цикла должен быть свой оператор ENDDO.