Реферат по теме:

Метод пошаговой детализации в программировании


Принцип нисходящего проектирования алгоритмов и программ (метод проектирования сверху вниз)

Для создания “хороших” программ необходимо придерживаться определенных правил программирования. В связи с этим представляет интерес рассмотреть новый подход к разработке программ, получившей достаточно широкое распространение в последние годы - структурное программирование.

Идеи структурного программирования были высказаны Э. Дейкстрой еще в 1965 г. Позже им были изложены основные положения структурного программирования в работе “Заметки по структурному программированию”. С тех пор термин “структурное программирование” широко используется, но в разных смыслах и без строгого определения.

Структурное программирование - метод программирования, использование которого снижает вероятность ошибок в процессе составления программ, повышает их надежность, эффективность, упрощает понимание, обеспечивает создание программ, структура которых ясна и неразрывно связана со структурой решаемых задач.

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

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

Иначе его еще называют методом пошаговой детализации.

Нисходящее проектирование программы, когда первоначально программа рассматривается, как совокупность действий, каждое из которых затем детализируется и представляется как последовательность более простых и конкретных действий и т.д. Вплоть до отдельных операторов языка; такой подход позволяет реализовать наличие двух видов подпрограмм в языке – процедур и функций.

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

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

Если на каждом шаге детализации использовать принципы структурного программирования, то получается хорошая структурированная программа в целом.

Процесс проектирования сверху вниз блок-схемы алгоритма показан на нижеприведенном примере.

Пример. Вычислить значения функции y=f(x) для x, изменяющегося от x 0 до x n с шагом h:

, где

x 0 = –5; x n = 10; h = 1; a = –1; b = 3.5.

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

Любой алгоритм можно представить в виде одного предписания - в виде постановки задачи. Но если исполнитель не обучен исполнять заданное предписание, то возникает необходимость представить данное предписание в виде некоторой совокупности более простых предписаний. Если исполнитель не может выполнить и некоторые из них, то такие предписания вновь представляются в виде совокупности еще более простых предписаний. Объединяя так полученные предписания в единую совокупность выполняемых в определенном порядке предписаний получают выполнение исходного задания в целом.

Достоинства метода пошаговой детализации:

1. Сохраняется концептуальная целостность программы: от сложного к простому.

2. Проектирование программы, кодирование, проверку и документирование можно делать параллельно.

3. В каждый момент времени (даже в начале разработки) имеется работающий вариант программы.

4. Фразы естественного языка, будучи закомментированными, служат хорошим путеводителем по программе.

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

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

1. На первом этапе описываются решения поставленной перед программой задачи, выделяются подзадачи.

2. В последующих этапах описывается решение каждой подзадачи, выделяя при этом новые подзадачи. Так происходит до тех пор, пока решение подзадач не будет очевидным. Рекомендовано решение каждой задачи описывать при помощи 1 - 2 конструкций не более, чтобы более четко представлять структуру программы.

Например: Требуется разработать программу, которая с определенной точностью eps находит значение аргумента x по заданному значению функции y при известном значении n

Где: n>1, x>0

При n>1 функция является монотонно возрастающей, значение аргумента x можно определить с помощью метода половинного деления. В чем заключается это метод?

1. Находим отрезок [x1, x2], который удовлетворяет условию: f(x1)<=y<=f(x2).

2. Делим полученный отрезок пополам: xt=(x1+x2)/2 и определеяем в какой половине отрезка находится x. Для этого сравниваем два значения: f(x1) и y.

3. Полученный отрезок вновь делим пополам, процесс повторяется до тех пор, пока разность x1 и x2 не станет меньше заданного значения eps.

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

1 этап. Общая структура программы:

Программа:

Ввести y, n, eps

Определить x

Вывести x, y

Конец.

2 этап. Детализируем операцию определения x:

Определить x

Определить x1 такое, что f(x1)<=y

Определить x2 такое, что f(x2)>=y

Определить x на интервале [x1, x2]

Все.

3 этап. Детализируем операцию определения x1. Значение x1 подбираем таким образом, чтобы выполнялось условие f(x1)<=y. Известно, что x>0, следовательно, берем любое значение x, например x1=1 и будем его пследовательно уменьшать, допустим в 2 раза. Таким образом определим значение x1, удовлетворяющее данному условию:

Определить x1:

x1:=1

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

x1:=x1/2

Все - цикл

Все

4 этап. Детализируем операцию определения x2. Значение x2 определяем аналогично x1, но исходное значение будем последовательно увеличивать в 2 раза.

Определить x2:

x2:=1

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

x2:=x2*2

Все - цикл

Все.


Информация о работе «Метод пошаговой детализации в программировании»
Раздел: Информатика, программирование
Количество знаков с пробелами: 13423
Количество таблиц: 1
Количество изображений: 0

Похожие работы

Скачать
22592
0
4

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

Скачать
5575
0
4

... Детализация псевдокода Вывести результаты ALENA5 дает  следующее: Вывести наибольший отрицательный элемент массива T12 Вывести наименьший положительный элемент массива T12 5. Выполняем структурное программирование с использованием стандартных приемов: BEGIN CLRSCR; {ochicshaem ekran} Writeln('Vvedite 12 elementov vectora T12: '); for i:=1 to 12 do {organizovivaem cikl po ...

Скачать
231244
5
6

... По теореме 9.3 в силу результатов шагов 3 и 8. (Шаг 10). Имеет место свойство (9.4) по теореме 9.5 в силу результатов шагов 1 и 9. Литература к лекции 9. 9.1. С.А. Абрамов. Элементы программирования. - М.: Наука, 1982. С. 85-94. 9.2. М. Зелковец, А. Шоу, Дж. Гэннон. Принципы разработки программного обеспечения. - М.: Мир, 1982. С. 98-105. Лекция 10. ТЕСТИРОВАНИЕ И ОТЛАДКА ПРОГРАММНОГО ...

Скачать
29193
3
0

... профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился на столько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка – Британский стандарт ...

0 комментариев


Наверх