Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структурное программирование. Практика программирования показала необходимость научно обоснованной методологии разработки и документирования алгоритмов и программ




Практика программирования показала необходимость научно обоснованной методологии разработки и документирования алгоритмов и программ. Эта методология должна касаться анализа исходной задачи, разделения её на достаточно самостоятельные части и программирования этих частей по возможности независимо друг от друга. Такой методологией, зародившейся в начале 70-х годов и

получившей в последнее время широкое распространение, является структурное программирование. По своей сути оно воплощает принципы системного подхода в процессе создания и эксплуатации программного ЭВМ. В основу структурного программирования положены следующие достаточно простые положения:

1. Алгоритм и программа должны составляться поэтапно (по шагам).

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

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


Использование этих положений позволяет внести определённую систему в труд программиста и составлять удобочитаемые алгоритмы (и программы), которые легко изучать и проверять. Фундаментом структурного программирования является теорема о структурировании. Эта теорема устанавливает, что, как бы сложна ни была задача, схема соответствующей программы всегда может быть представлена с использованием весьма ограничен­ного числа элементарных управляющих структур. Элементарные структуры могут соединяться между собой, образуя более сложные структуры, по тем же самым элементарным схемам. Базовыми элементарными структурами являются структуры, изображенные на рис. 1.3. Они обладают функциональной полнотой, т. е. любой алгоритм может быть реализован в виде композиции этих трёх конструкций. Каждая из конструкций имеет свое название.

 

Рис.1.3 Базовые элементарные структуры.

Так, первая из них (рис. 1.3, а) называется структурой типа последовательность (или просто после­довательностью), вторая (рис. 1.3, б) — структурой выбора (разветвлением), третья (рис. 1.3, в) — структурой цикла с предусловием. При словесной записи алгоритма указанные структуры имеют соответственно следующий смысл: «выполнить S; выполнить S», «если P, то выполнить S, иначе выполнить S», «до тех пор, пока Р, вы­полнять S», где Р — условие; S, S, S— действия.

Рассматривая схему программы, можно выделить в ней части (фрагменты), достаточно простые и понятные по структуре. Представление этих фрагментов укрупнен­ными блоками существенно облегчает восприятие алго­ритма (а в дальнейшем и программы) в целом. Достаточно часто структурное программирование подразумевает использование более трех базисных структур. Применительно к языку Паскаль, в котором наиболее полно нашли свое отражение идеи структурного программирования, целесообразно при проектировании алгоритмов дополнительно использовать еще четыре элементарные структуры: сокращенную запись разветвления (рис. 1.4 а); структуру варианта (рис. 1.4 б); структуру повторения или цикла с параметром (рис. 1.4 в); структуру цикла с постусловием (рис. 1.4 г). Каждая из структур, показанных на рис. 1.3 и 1.4, имеет один вход и один выход. В языке Паскаль имеются средства (опе­раторы), позволяющие непосредственно реализовать в программе любую из этих структур, поэтому правильное использование типовых структур в процессе разработки

алгоритма обеспечивает упрощение последующих этапов решения задачи на ЭВМ.

В качестве примера структурного подхода к проектированию алгоритма рассмотрим задачу табулирования функции, т. е. вычисление некоторой функции z =z(x) одной переменной х, изменяющейся от начального значения x с постоянным шагом h до конечного значения x -сокращенно обозначается х= х(h) x.

Пусть функция z(x) имеет вид

z(x)=,

sin x, если х ≤ а,

где у = x , если а < х < b,

если х ≥ b;

х = -3; h =1;

x= 10; а= 0; b= 3,85.

 

Рис. 1.4 -Д ополнительные элементарные структуры.

 

Рис. 1.5 - Нисходящее проектирование схемы алгоритма табулирования функции z = z(х)

 

Процесс нисходящего проектирования схемы алгоритма табулирования функции z = z(х) показан на рис. 1.5. На первом уровне детализации схема (блоки 1.1—1.5) отражает процесс табулирования функции в наиболее общем виде. Для этого используются структуры типов последовательность и цикл с постусловием (подробнее о проектировании алгоритмов и программ циклической структуры см. § 3.2). Далее осуществляется детализация блока 1.3, который представляется в виде последовательности блоков 2.1-2.3 второго уровня. Так как функция у = у(х), входящая в качестве аргумента в определение функции z = z(х), является сложной, то она определяется разветвляющейся структурой, детализация которой осуществлена на 3-м и 4-м уровнях. Проведенную детализацию блоков, осуществляющих определение функции у = у(х), можно пояснить с помощью зависимостей

y = sinx, если х ≤ а,

y(x), если х > а,

 

где y= х, если х < b,

, если х ≥ b,

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

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

 

 

 

Рис. 1.6 - Схема алгоритма табулирования функции z = z(x)

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 574; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.