<<
>>

Практикум. Выделение подпрограмм методом пошаговой детализации

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

Пример 5.3.

Разработать программу исследования элементарных функций, которая для функций у = sin х, у = eos х, у = tg х, у = In х, у = ех выполняет следующие действия:

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

• определяет корни функции на заданном отрезке;

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

Программы такого рода обычно взаимодействуют с пользователем через

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

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

5.6, в-д). Задав данные, пользователь должен получить на экране

д

Рис. 5.6. Состояния интерфейса программы исследования функций:

а - меню функций; б - меню операций; в-д - оформление операций

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

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

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

Рис. 5.7. Диаграмма переходов состояний интерфейса программы исследования функции

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

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

Программа исследования элементарных функций: ВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ.

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

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

Вызвать МЕНЮОПЕРАЦИЙ (Номер_функции) ВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ.

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

Все-цикл.

Конец.

На этом шаге определились две подпрограммы: ВЫВЕСТИ_МЕ- НЮ_ФУНКЦИЙ и МЕНЮ ОПЕРАЦИЙ (Номер_функции). Подпрограмма ВЫВЕСТИМЕНЮФУНКЦИЙ будет иметь линейную структуру:

Подпрограмма ВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ:

ОЧИСТИТЬ_ЭКРАН.

Вывести «Программа исследования функций.»

Вывести «1 - sin х;».

Вывести «2 - cos х;».

Вывести «3 - In х;».

Вывести «4 - еЛх;».

Вывести «5 - Выход.».

Конец подпрограммы.

Подпрограмма МЕНЮ ОПЕРАЦИЙ (Номер функции) также должна реализовать меню:

Подпрограмма МЕНЮ_ОПЕРАЦИЙ (Номер_функции): ВЫВЕСТИ_МЕНЮ_ОПЕРАЦИЙ.

Ввести Номер_операции.

' Цнкл-пока Номер_ операции о 4

Выбор Номер_ операции:

1: Вызвать ТАБЛИЦА (Номер_функции);

2: Вызвать КОРЕНЬ (Номер_функции);

3: Вызвать МАКСМИН (Номер_функции);

Все-выбор.

ВЫВЕСТИ МЕНЮ ОПЕРАЦИЙ..

Ввести Номер_ операции.

Все-цикл.

Конец подпрограммы.

Подпрограмма ВЫВЕСТИ_МЕНЮ_ОПЕРАЦИЙ похожа на ВЫВЕС- ТИ_МЕНЮ_ФУНКЦИЙ:

Подпрограмма ВЫВЕСТИ_МЕНЮ_ОПЕРАЦИИ:

ОЧИСТИТЬ_ЭКРАН.

Вывести «Список операций:».

Вывести «1 - получение таблицы значений;».

Вывести «2 - определение корней;».

Вывести «3 - определение экстремумов;».

. Вывести «4 - выход.».

Вывести «Определите операцию: ».

Конец подпрограммы.

Подпрограмма ТАБЛИЦА(Номер_функции) должна вводить дополнительные данные о границах интервала и значении шага:

Подпрограмма ТАБЛИЦА(Номер_функции):

ОЧИСТИТЬ_ЭКРАН.

Вывести «Введите границы интервала»

Ввести А, В.

Вывести «Введите шаг».

Ввести h. х=А

Цикл-пока х < В

Если ФУНКЦИЯ(Номер_функции, х, у) то Вывести «х=», х, « у=», у иначе «х=», х, «значение функции не определено» Все-если x=x+h Все-цикл.

ОЖИДАТЬ_НАЖАНИЯ_КЛАВИШИ.

Конец подпрограммы.

Подпрограммы КОРЕНЬ(Номер_функции) и МАКСМИН(Номер_функ- ции) определяются аналогично. Естественно, они также обращаются к подпрограмме ФУНКЦИЯ для получения конкретного значения функции в точке.

Подпрограмма ФУНКЦИЯ будет возвращать логическое значение: true - если значение функции определено, и false - в противном случае. Значение исследуемой функции в точке х Подпрограмма будет возвращать через параметр-переменную у:

Подпрограмма ФУНКЦИЯ(Номер_функции, х, у):

ФУНКЦИЯ=Цие Выбор Номер функции:

1: y=sin(x);

2: y=cos(x);

3: Если х>0

то у=1п(х)

иначе ФУНКЦИЯ=Га1зе Все-если 4: у=ехр(х)

Все-выбор

Конец подпрограммы.

Таким образом, выполняя пошаговую детализацию программы, мы осуществили ее декомпозицию на основную программу и семь подпрограмм (подпрограммы ОЧИСТИТЬ_ЭКРАН и ОЖИДАТЬ_НАЖАНИЯ_КЛАВИ- ШИ являются стандартными процедурами библиотеки управления экраном в текстовом режиме и их можно не учитывать).

Рис. 5.8. Иерархия вызовов подпрограмм программы исследования

функций

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

В соответствии с рекомендациями структурного программирования реализация и отладка программы также должны выполняться поэтапно. Сначала реализуют основную программу, используя вместо подпрограмм следующего уровня «заглушки» (подпрограммы, у которых отсутствуют операторы между begin и end). Затем реализуют эти подпрограммы, используя заглушки вместо подпрограмм следующего уровня и т.д.

<< | >>
Источник: Иванова Г.С. Основы программирования. 2002

Еще по теме Практикум. Выделение подпрограмм методом пошаговой детализации:

  1. В анкете применяется метод выделения отдельных слов, словосочетаний или предложений их подчеркиванием или разрядкой.
  2. Психологический практикум (к части II)
  3. Психологический практикум (к части I)
  4. Психологический практикум (к части IV)
  5. Статья 109. Выделение
  6. Правило выделения
  7. Психологический практикум (к части III)
  8. Могилев А. В.. Практикум по информатике, 2005
  9. А.К. Быков. психолого­ педагогический практикум, 2006
  10. Порядок выделения подкреплений.
  11. Ю. И. КУДИНОВ, Ф.Ф. ПАЩЕНКО, А. Ю. КЕЛИНА. ПРАКТИКУМ ПО ОСНОВАМ СОВРЕМЕННОЙ ИНФОРМАТИКИ, 2011
  12. ПРАКТИКУМ: ТРЕНИНГ ПРОФЕССИОНАЛЬНО- ЛИЧНОСТНОГО САМООПРЕДЕЛЕНИЯ И САМОСОВЕРШЕНСТВОВАНИЯ УЧИТЕЛЯ
  13. Правило выделения
  14. Практикум
  15. Лавровская О. Б.. Технические средства информатизации. Практикум, 2013
  16. выделение единиц анализа
  17. Кудинов Ю. И., Пащенко Ф. Ф., Келина А. Ю.. Практикум по основам современной информатики: Учебное пособие., 2011
  18. РАТ-практикум.
  19. ПРАВОВОЙ ПРАКТИКУМ
  20. РАТ-ПРАКТИКУМ