Составить схему разветвляющегося вычислительного процесса и написать программу на любом алгоритмическом языке.
Решение
В данном примере возможны три варианта ответа: или A2+B, или B+1, или С. Выбор будет выполнен только по результатам проверки условий.
Введем промежуточную переменную R и следующие обозначения:
R= min(B+1,C), тогда
Z=max(A2+B, R)
Алгоритм вычисления будет иметь вид:
Схема вычисления будет содержать следующие символы действий:
- Начало и Останов;
- Ввод данных A,B,C;
- Два символа Решения, проверяющих условия B+1>=C? и A2+B>=R?;
- Три символа Процесс, которые присваивают переменной Z определенное значение;
- Документ.
Схема представлена на рис. 10.
Ниже приведены программы вычисления Z на двух алгоритмических языках Fortran и Basic. Студент, выполняющий контрольную работу, пишет программу на любом из этих языков или на любом другом языке программирования высокого уровня, с которым он знаком.
Составим программу вычисления Z на алгоритмическом языке Fortran.
Исходные данные – переменные вещественного типа в естественной форме A, B, C. Конкретные числа, которые соответствуют этим переменным, не заданы. Все типы переменные в программе определяются по соглашению (неявным способом).
Рис. 10. Схема вычисления Z = max(A2+B, min (B+1, C))
Для ввода исходных данных и вывода результата используем ввод и вывод под управлением списка. Исходные данные A, B, C будем вводить с клавиатуры, а результат Z выведем на дисплей.
Для вычисления переменной R и результата Z используем структурный логический оператор IF.
Для “читаемости” снабдим программу комментариями на русском языке. Признаком комментария является символ “*” в первой позиции. Операторы Fortran набираются с 7-й позиции.
* Вычисление Z = max(A2+B,min(B+1,C))
* Ввод исходных данных А,В, C
READ (*,*) A,B,C
* Вычисление R = min(B+1,C)
IF ( B+1 < C) THEN
R = B+1
ELSE
R = C
ENDIF
* Вычисление Z = max(A2+B,R)
IF(A**2+B >= R) THEN
Z = A**2+B
ELSE
Z = R
ENDIF
* Печать результата
WRITE(*,*) ' Z= ',Z
END
Программа для реализации на языке Basic с комментария приведена ниже. Все переменные в программе имеют тип Variant. Данные в переменные А, В, C вводятся с клавиатуры, а значение переменной Z выводится на экран дисплея. Ввод и вывод осуществляется под управлением списка.