Язык блок-схем – это язык формального графического представления алгоритмов.
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
Только один элемент блок-схемы – «начало» – может иметь только выход, только один элемент – «конец» – может иметь только вход, и только один элемент – «условие» – может иметь два выхода, выбор из которых осуществляется с помощью условия.
Дополнительные элементы блок-схем:
|
![]() |
|
![]() |
|
![]() |
Элемент «узел» имеет два входа, но в каждый момент времени выполнение алгоритма идёт только одним путём, соответственно, используется только один из входов.
Принципы структурного программирования:
Все циклы позволяют осуществлять повтор некоторых действий.
Обратите внимание на то, что в цикле с постусловием тело цикла всегда выполняется хотя бы один раз, тогда как в цикле с предусловием возможно, что условие сразу же будет ложным, и тело цикла не выполнится ни разу.
Набор из следования, ветвления и цикла «пока» называется базисом Дейкстры, а набор из следования, ветвления и цикла «до» называется базисом Вирта. Базисы обладают свойствами полноты (любой алгоритм может быть реализован только из структур одного из базисов) и независимости (каждая из базисных структур не может быть представлена комбинацией 2-х других). Избыточный набор структур введён для удобства разработки программ.
Возможно любое количество вложенных циклов.
Задание. Придумайте другие комбинации управляющих структур (не забывайте про следование).
При нисходящем проектировании мы начинаем с общей задачи, разбиваем её на более простые подзадачи, которые в свою очередь, разбиваются на ещё более мелкие подзадачи – до тех пор, пока мы не сможем подзадачу очередного уровня выразить оператором языка программирования.
Достоинство нисходящего проектирования состоит в том, что оно позволяет разработчикам сосредоточиться на основных для данного этапа проблемах и отложить принятие всех тех решений, которые не должны приниматься на данном этапе проектирования. Нисходящее проектирование требует с самого начала ставить и решать наиболее фундаментальные задачи, откладывая частные вопросы для последующего рассмотрения.
Существует и противоположный подход, называемый восходящим проектированием. При восходящем проектировании алгоритм собирается из уже имеющихся кирпичиков-подзадач.
Нисходящее и восходящее проектирование обладают своими достоинствами и недостатками. Так, при нисходящем проектировании возможно появление требований, впоследствии оказывающихся нереализуемыми по технологическим, экологическим или иным соображениям. При восходящем проектировании возможно получение объекта, не соответствующего заданным требованиям. В реальной жизни, вследствие итерационного характера проектирования, оба его вида взаимосвязаны.