Главная страница
Навигация по странице:

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

  • ргр. методичка15КП (2). Учебнометодическое пособие по проектированию программ и выполнению ргр и курсового проекта по дисциплине Программирование


    Скачать 112.55 Kb.
    НазваниеУчебнометодическое пособие по проектированию программ и выполнению ргр и курсового проекта по дисциплине Программирование
    Дата27.03.2022
    Размер112.55 Kb.
    Формат файлаdocx
    Имя файламетодичка15КП (2).docx
    ТипУчебно-методическое пособие
    #420542
    страница2 из 4
    1   2   3   4



    Рисунок 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 :

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

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

    Нисходящий подход предполагает проектирование программы “сверху вниз” (top – down programming), когда, на каждом шаге детализации для каждой задачи составляется программа в терминах выделенных в ней подзадач 5, 8. Данный метод применяется при разработке сложных алгоритмов и программ, а также их комплексов.

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

    Таким образом, отладка программного комплекса начинается с основной программы или главного модуля и в любой момент разработки имеется действующий вариант. Тестирование и отладка отдельных программных модулей и комплекса в целом ведется по ходу его проектирования [6, 7].

    Одним из средств реализации модульной структуры в языках программирования являются процедуры и функции, каждой из которых отведена роль решения конкретной подзадачи. Для удобства работы рекомендуется их делать небольшими. Это позволит легче модифицировать программные комплексы и эффективнее тестировать. Программный модуль (или подпрограмма) должен решать самостоятельную задачу; иметь собственную спецификацию (формализованное описание свойств, характеристик и функций 9); иметь один вход и один выход; возвращать управление тому программному модулю, который его вызвал.

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

    При реализации курсового проекта можно выделить три части:

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

    Р азработка программного комплекса начинается с главной программы. Примером проектирования такого комплекса является разработка программы для курсового проекта по дисциплине «Программирование» в соответствии со схемой алгоритма рис.1.1. В ней пока не отражено, сколько математических задач решается.



    Иначе


    Рисунок 1.1– Схема основного алгоритма

    Пусть задач будет две, тогда структуру проектируемого программного комплекса можно изобразить схемой рис.1.2.
    У ровень I


    Уровень II



    Уровень III
    Рисунок 1.2 – Схема программного комплекса для курсового проекта
    Для тестирования и отладки основной программы необходимо иметь программные модули второго уровня, но так как они еще не спроектированы, то вместо них используются имитаторы – заглушки. Назначение заглушек – это возможность реализации (выполнения) программного модуля верхнего уровня, поэтому они должны быть достаточно простыми (возможно лишь выдавать сообщение о функциях подключаемого в данном месте программного модуля).

    Таким образом, при тестировании главного программного модуля, схема отладки программного комплекса преобразуется в вид рис.1.3, т.е. тестируется только управляющая программа, а схема алгоритма для отлаживаемой программы примет вид рис 1.4.



    Рисунок 1.3 – Схема отладки программы I уровня
    После того, как главный программный модуль “управляющий алгоритм” протестирован и программа для него отлажена, программируется графическая заставка. Программные модули при этом для решения математических задач и игровой программы, по-прежнему, остаются замененными заглушками. В результате на данном этапе схема тестирования преобразуется в рис.1.5,а.
    1   2   3   4


    написать администратору сайта