Использование метода пошаговой детализации при структурной декомпозиции

Конец.

Все-цикл

Все-если

Все-цикл

Все-цикл

Все.

Все-если

Таким образом, за шесть шагов мы разработали весь алгоритм. Полностью он выглядит следующим образом.

Программа:

Ввести y,n,eps.

x1:=1

цикл-пока f(x1)>y

x1:=x1/2

x2:=1

цикл-пока f(x2)<y

x2:=x2/2

цикл-покаx2-x1>eps

xt:=(x1+x2)/2

если f(xt)>y

то x2:=xt

иначе x1:=xt

Вывести xt,y.

При разработке алгоритма методом пошаговой детализации мы использовали псевдокод, но можно было использовать и схемы алгоритма.

Достоинством метода является то, что в процессе разработки на каждом шаге мы решали одну достаточно простую задачу. Использование метода, таким образом, существенно облегчает разработку алгоритмов.

Метод пошаговой детализации позволяет не только разрабатывать алгоритмы, но и осуществлять процедурную декомпозицию, т. е. выделять подпрограммы, соблюдая все требования, предъявляемые структурным программированием.

Пример 4. Разработать программу исследования элементарных функций, которая для функций

y=sin x, y=cos x, y=tg x, y=ln x, y=ex

выполняет следующие действия на заданном отрезке:

· строит таблицу значений функции с заданным шагом;

· определяет корни функции;

· определяет максимум и минимум функции.

Программы такого рода обычно взаимодействуют с пользователем через меню. В данной программе будет использовано два меню: меню функций, в котором пользователь будет выбирать функцию, и меню операций, в котором пользователь будет выбирать вид обработки. Так, меню функций (см. рисунок 6, а) должно выводиться на экран при запуске программы.

После ввода номера функции на экране должно появиться меню операций (см. рисунок 6, б). Введя номер операции, пользователь должен увидеть на экране запрос на ввод данных, необходимых для выполнения этой операции (см. рисунок 6, в-д). Задав данные, он должен получить на экране результаты. После анализа результатов необходимо любую клавишу, чтобы вернуться в меню операций.

Далее пользователь может выбрать другую операцию, а может вернуться в меню функций, если закажет операцию 4 (выход).

Рисунок 6 - Состояния интерфейса программы исследования функций: меню функций (а), меню операций (б), оформление операций (в-д)

Вернувшись в меню функций, пользователь может выбрать другую функцию, а может выйти из программы.

На рисунке 7 представлен граф состояний интерфейса пользователя в нотации UML (см. раздел 2.3), который показывает, в какой последовательности и по нажатию каких клавиш осуществляется переключение форм (экранов) интерфейса.

Рисунок 7 - Диаграмма (или граф) состояний интерфейса программы исследования функции

При разработке алгоритма методом пошаговой детализации будем использовать псевдокод. Начинаем разработку алгоритма «сверху», т. е. с реализации меню функций.

Меню функций работает следующим образом. При запуске программы выводим меню на экран. Затем вводим номер функции и, если номер функции не равен 5, то передаем управление меню операций, сообщая ему номер выбранной функции. Когда меню операций завершит свою работу, то на экран вновь необходимо вывести меню функций и опять ввести номер функции:

Программа исследования элементарных функций:

Вывести_меню_функций.

Ввести Номер_функции.

Цикл-пока Номер_функции <> 5

Вызвать меню_операций (Номер_функции)

Вывести_меню_ФУНКЦИЙ.

Ввести Номер_функции.

Все-цикл.