142
В
данной задаче внешний и внутренний циклы можно поменять
местами, при этом изменится только порядок изменения аргумен-
тов.
Общее количество значений
z равно
N
z
=
N
x
N
y
, где
N
x
= [(
x
n
-
x
0
)/
h
x
]
+ 1,
N
y
= [(
y
n
-
y
0
)/
h
y
]
+ 1.
Алгоритм табулирования функции, выполненный по технологии
нисходящего проектирования, представлен на рис. 9.25.
На первом этапе составлена укрупненная схема решения задачи с
выделением операции ввода исходных данных и структуры вложенных
циклов. На втором этапе раскрывается тело внутреннего цикла как
композиция структур ветвления.
Пример 9.15. Найти совершенное число в интервале [2,
n]. Со-
вершенное число равно сумме всех своих делителей, включая едини-
цу. Например, 28 — совершенное число, так как 28
= 1 + 2 + 4 + 7 + 14.
В
алгоритме для каждого целого
k из заданного интервала будем
определять сумму
S всех его делителей и сравнивать значения
S и
k.
Если они равны, то анализируемое
k есть искомое совершенное чис-
ло, надо его вывести и закончить поиск, в
противном случае — пе-
рейти к следующему целому числу из заданного интервала.
Для реализации такого алгоритма необходима структура вложен-
ных циклов: внешнего, для просмотра заданного интервала, и вну-
треннего, для вычисления суммы (рис. 9.26,
а). Построенный алго-
ритм не является структурированным. Рассмотрим один из
способов
приведения циклического алгоритма к структурному виду. Внешний
цикл имеет два условия окончания: исчерпание всех целых чисел из
заданного интервала и выполнение равенства
k
=
S. В зависимости
от того, какое условие привело к окончанию цикла, необходимо пред-
Рис. 9.25. Алгоритм табулирования
функции двух переменных
143
принять различные действия. Объединим оба условия окончания
цикла в одно:
k
>
n или
k =
S. Для принятия окончательного решения
после завершения цикла проверим, какое же условие привело к его
окончанию (рис. 9.26,
б ).
Можно структурировать алгоритм иначе: в цикле с параметром
k
ввести дополнительную переменную
Pr, установив до цикла
Pr
= 0.
Как только совершенное число будет найдено, присвоить
Pr значение
этого числа. Окончательное решение в
этом случае принимается уже
на основании анализа признака
Pr.
Структура внутреннего цикла для вычисления суммы
S раскры-
вается на втором этапе детализации алгоритма. Поскольку все числа
делятся на единицу, то сначала устанавливается
S
= 1. В
цикле с па-
Рис. 9.26. Алгоритм поиска (
а,
б) совершенного числа
144
раметром
i, изменяющимся от 2 до [
k/2], суммируются все делители
числа
k. В интервале от [
k/2]
+ 1 до
k - 1 не может быть делителей
числа
k.
Достарыңызбен бөлісу: