Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка15КП.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
311.81 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

Омский государственный технический университет

Кафедра Информатики и вычислительной техники

О. П. Шафеева

Восходящее и нисходящее программирование

Учебно-методическое пособие по проектированию программ

и выполнению РГР и курсового проекта по дисциплине «Программирование»

Омск 2015

УДК 004.415.25

ББК 32.973

Ш 30

Автор: Шафеева Ольга Павловна, канд. техн. наук, доцент кафедры ИВТ

Рецензент: А.Г. Янишевская, профессор кафедры «Инженерная

геометрия и САПР», д.т.н., доцент

Шафеева, О.П.

Восходящее и нисходящее программирование: учеб.-метод. пособие / О.П. Шафеева. – Омск: Изд-во ОмГТУ, 2015. – 32с.

ISBN

Рассмотрены этапы разработки программного обеспечения и комплексов программ, методы нисходящего и восходящего проектирования программ. Приведены требования к выполнению расчетно-графической (РГР) и курсовой работам по дисциплине «Программирование», а также правила оформления пояснительной записки. Предложены темы для реализации студентами в виде РГР и курсовых проектов по программированию. Имеются примеры заполнения бланка задания, оформления титульного листа и написания пояснительной записки.

Учебно-методическое пособие предназначено для студентов направлений 09.03.01 – «Информатика и вычислительная техника»,

09.03.02 – «Информационные системы и технологии»,

09.03.03 – «Прикладная информатика»,

09.03.04 – «Программная инженерия»,

02.03.03 – «Математическое обеспечение и администрирование информационных систем»

УДК 004.415.25

ББК 32.973

© О.П. Шафеева, 2015

ISBN

© ФГБОУ ВПО «Омский государственный

технический университет», 2015

Печатается по решению редакционно-издательского совета Омского государственного технического университета

1 Методы программирования

Технология программирования – это совокупность методов и средств, используемых в процессе разработки программного обеспечения (ПО) 5. При структурном проектировании программ, реализации и тестировании компонентов ПО применяют два подхода: нисходящий (нисходящее программирование) и восходящий (восходящее программирование).

1.2 Восходящее программирование

Восходящий подход к проектированию алгоритмов и программ применяется для программирования задач с легко выделяемыми или известными заранее подзадачами, либо с небольшими, относительно независимыми частями, алгоритмы, для решения которых можно разрабатывать отдельно.

Восходящее программирование предполагает проектирование программы ‘‘снизу вверх’’(bottom – up programming) [5, 8]. Сначала отдельно проектируются и отлаживаются программы для каждой простой подзадачи, а затем разработанные модули последовательно (поочередно подключением) объединяются в единую программу.

Примером проектирования программного комплекса с известными подзадачами является выполнение расчетно‑графической работы (РГР) по дисциплине «Программирование» [10].

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

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

Далее следует детализировать (уточнить) части алгоритма рис. 1.7. Например, для решения нелинейного уравнения можно применять метод бисекций и хорд. Для возможности программной реализации проведем математический анализ этого метода и спроектируем алгоритм [12].

Пусть задано уравнение f(x)=0 и интервал [a,b], где функция f(x) непрерывна имеет разные знаки на концах интервала.

Отчёт по РГР

печатается в текстовом редакторе Word

и включает следующие разделы:

  1. Задание.

  2. Математическая формулировка задачи.

  3. Детальная схема общего алгоритма.

  4. Текст программы.

  5. Таблица результатов с выделением максимального и минимального значений для каждой функции, выполненная с помощью табличного процесса Excel. Расчёты коэффициентов для масштабирования функций.

  6. Графики функций, напечатанные через Excel.

  7. Заданное нелинейное уравнение и результат его решения.

  8. Интеграл, метод решения и результат.

Рисунок 1.7 – Схема алгоритма для РГР

Алгоритм нахождения корня на интервале методом половинного деле­ния (бисекции) сводится к следующей последовательности действий:

1) вычисляется середина интервала c= (a+b)/2;

2) если |f(c)|<e, где e = 10-3 - 10-5 определяет погрешность вы­числений, то c будет являться приближенным значением корня уравнения и выводится как результат расчетов;

3) если |f(c)|>e, то проверяются знаки функций f(a) и f(c) на концах отрезка [a,c], для чего вычисляется их произведение. Если f(a)f(c)<0, то функции будут иметь противоположные знаки и корень находится на отрезке [a,c]. В этом случае интервал [a,b] заменяется отрезком [a,c], для чего присвоим b=c;

4) иначе, если f(a)f(c)>0, корень уравнения находится на отрезке [c,b] и в расчетах интервал [a,b] заменяется [c,b], для чего прис­воим a=c;

5) вычисления по схеме п.1-п.4 повторяются в итерационном цикле до тех пор, пока не выполнится условие п.2 - |f(c)|< e.

В случае метода хорд схема алгоритма расчета корня уравнения ос­тается прежней за исключением п.1, в котором используется формула

C = (a f(b) - b f(a))/(f(b) - f(a)).

Для исключения зацикливания следует правильно определять начальный интервал [a,b], чтобы выполнялось условие f(a)f(b)<0. Схема алгоритма для метода половинного деления приведена на рис.1.8.

Рис 1.8. Схема алгоритма решения нелинейного уравнения

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

Затем аналогичным образом проанализируем и разработаем программу для вычисления определенного интеграла.

Приближенное значение определенного интеграла вычисляется как сумма площадей N прямоугольников, построенных на интервале интегриро­вания [a,b]. Интервал [a,b] разбивается на N равных частей длиной h = (b-a)/N, на каждой из которых строится прямоугольник с высотой, рав­ной значению функции f(xi) в центре участка с координатой xi = a+(i-0.5)h, где i=1,2,...,N

Формула прямоугольников для приближенного вычисления значения интеграла будет иметь вид

В методе трапеций интервал [a,b] разбивается на N равных частей длиной h=(b-a)/N, на каждой из которых строится трапеция. Приближен­ное значение интеграла определяется суммой площадей трапеций, постро­енных на интервале [a,b] , где xi =a+i* h :

Восходящий подход к проектированию алгоритмов и программ применяется для программирования сравнительно несложных.