Выбор, или ветвление, или условная инструкция.
Следование, или цепочка, или составная инструкция.
Структурное программирование
Технологии программирования.
Основные подходы к программированию:
- структурный, модульный;
- функциональный;
- логический;
- объектно-ориентированный;
- смешанный (некоторые подходы возможно комбинировать);
- компонентно-ориентированный (программный проект рассматривается как множество компонент, такой подход принят, в частности, в.NET);
- чисто объектный (идеальный с математической точки зрения вариант, который пока не реализован практически).
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
Основная теорема структурного программирования утверждает, что любой алгоритм можно преобразовать к структурному виду.
|
|
Тремя элементарными структурными алгоритмами являются следующие:
В 1981 году Дональд Кнут разработал концепцию «грамотного программирования» как альтернативу «структурному программированию» при разработке системы компьютерной вёрстки. Несмотря на доказанную эффективность, данная концепция не получила распространения из-за непонимания.
Сутью структурного программирования является возможность разбиения программы на составляющие элементы.
Структурное программирование предполагает:
§ точно обозначенные управляющие структуры,
§ программные блоки,
§ отсутствие инструкций безусловного перехода (GOTO),
§ автономные подпрограммы,
§ поддержка рекурсии и локальных переменных.
В соответствии с методологией структурного программирования:
1 Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
- последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
- ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
- цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
2 Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
|
|
3 Разработка программы ведётся пошагово, методом «сверху вниз».
4 Документация должна создаваться одновременно с программированием в виде комментариев к программе.
Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию: программирование «сверху вниз» и программирование «снизу вверх».
Достоинства структурного программирования:
1 повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);
2 повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);
3 в структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой);
4 уменьшается время и стоимость программной разработки;
5 улучшается читабельность программ (значительно сокращается число вариантов построения программы по одной и той же спецификации, это снижает сложность программы и облегчает понимание её другими разработчиками).
Структурное программирование эффективно используется для решения различных математических задач, имеющих алгоритмический характер.