Структура программы — искусственно выделенные программистом взаимодействующие части программы. Использование рациональной структуры устраняет проблему сложности разработки; делает программу понятной людям; повышает надежность работы программы при сокращении срока ее тестирования и сроков разработки вообще.
Часто некоторую последовательность инструкций требуется повторить в нескольких местах программы. Чтобы программисту не приходилось тратить время и усилия на копирование этих инструкций, в большинстве языков программирования предусматриваются средства для организации подпрограмм. Таким образом, программист получает возможность присвоить последовательности инструкций произвольное имя и использовать это имя в качестве сокращенной записи в тех местах, где встречается соответствующая последовательность инструкций. Подпрограмма — некоторая последовательность инструкций, которая может вызываться в нескольких местах программы.
Вряд ли стоило подробно говорить о столь простой форме записи, если бы за ней не скрывались важные и основополагающие понятия. В действительности процедуры и функции, называемые подпрограммами, являются одним из тех немногих фундаментальных инструментов в искусстве программирования, которые оказывают решающее влияние на стиль и качество работы программиста.
Структуры в C++ | struct C++. Разница между структурой и классом. Изучение С++ для начинающих.#129
Процедура — это не только способ сокращения программного текста, но и, что более важно, средство разложения программы на логически связанные, замкнутые элементы, определяющие ее структуру. Разложение на части существенно для понимания программы, особенно если программа сложна и трудно обозрима из-за большой длины текста. Разложение на подпрограммы необходимо как для документирования, так и для верификации программы. Поэтому желательно оформлять последовательность инструкций в виде подпрограммы, даже если подпрограмма используется однократно и, следовательно, отсутствует мотив, связанный с сокращением текста программы.
Дополнительная информация о переменных (которые передаются и используются в процедуре) или об условиях, которым должны удовлетворять аргументы, задается в заголовке процедуры. О полезности процедуры, в частности о ее роли при структуризации программы, неоспоримо свидетельствуют еще два понятия в программировании. Некоторые переменные (их обычно называют вспомогательными или локальными переменными), используемые внутри процедуры, не имеют смысла за ее пределами. В программе существенно проще разобраться, если явно указаны области действия таких переменных. Процедура выступает как естественная текстовая единица, с помощью которой ограничивается область существования так называемых локальных переменных.
Вероятно, наиболее общая тактика программирования состоит в разложении процесса на отдельные действия: функционального описания на подфункции, а соответствующих программ — на отдельные инструкции. На каждом таком шаге декомпозиции нужно удостовериться, что решения частных задач приводят к решению общей задачи; выбранная последовательность отдельных действий разумна; выбранная декомпозиция позволяет получить инструкции, в каком-либо смысле более близкие к языку, на котором будет реализована программа.
СТРУКТУРЫ — ТВОЯ ГЛАВНАЯ ОШИБКА
Последнее требование исключает возможность прямолинейного продвижения от первоначальной постановки задачи к конечной программе, которая должна получиться в конечном итоге. Каждый этап декомпозиции сопровождается формулированием частных подпрограмм. В процессе этой работы может обнаружиться, что выбранная декомпозиция неудачна в том смысле хотя бы потому, что подпрограммы неудобно выражать с помощью имеющихся средств. В этом случае один или несколько предыдущих шагов декомпозиции следует пересмотреть заново.
Если видеть в поэтапной декомпозиции и одновременном развитии и детализации программы постепенное продвижение вглубь, то такой метод при решении задач можно охарактеризовать как нисходящий (сверху вниз). И наоборот, возможен такой подход к решению задачи, когда программист сначала изучает имеющиеся в его распоряжении вычислительную машину и/или язык программирования, а затем собирает некоторые последовательности инструкций в элементарные процедуры, типичные для решаемой задачи. Элементарные процедуры затем используются на следующем уровне иерархии процедур. Такой метод перехода от примитивных машинных команд к требуемой реализации программы называется восходящим (снизу вверх).
На практике разработку программы никогда не удается провести строго в одном направлении (сверху вниз или снизу вверх). Однако при конструировании новых алгоритмов нисходящий метод обычно доминирует. С другой стороны, при адаптации программы к несколько измененным требованиям предпочтение зачастую отдается восходящему методу.
Оба метода позволяют разрабатывать программы, которым присуща структура — свойство, отличающее их от аморфных линейных последовательностей инструкций или команд машины. И чрезвычайно важно, чтобы используемый язык в полной мере отражал эту структуру. Только тогда окончательный вид полученной программы позволит применить систематические методы верификации.
Источник: litresp.ru
V2: Понятие о структурном программировании.
S: При проектировании программного обеспечения используются подходы:
I: > Понятие о структурном программировании-2; KT=; MT=;
S: Укажите структуры, которые не допускается использовать в программе при структурном программировании
-: Последовательное выполнение двух и более операций
I: > Понятие о структурном программировании-3; KT=; MT=;
S: Основная идея структурного программирования состоит в том, что основными для написания программ являются три типа операторов:
+: линейный, ветвление, организация цикла
-: структура системы описывается в терминах объектов и связей между ними, а поведение системы — в терминах обмена сообщениями между объектами
-: используется инкапсуляция и наследование объектов
-: при написании программ не используются подпрограммы
I: > Понятие о структурном программировании-4; KT=; MT=;
S: Правила композиции, используемые при структурном подходе к составлению алгоритмов:
а) альтернативный выбор
I: > Понятие о структурном программировании-5; KT=; MT=;
S: Процедура ABCD
||писать (‘ВВЕДИТЕ ЗНАЧЕНИЕ A, B, C, D’);
реализует алгебраическое выражение вида…
+:
-:
-:
-:
I: > Понятие о структурном программировании-6; KT=; MT=;
S: Данная блок-схема программы …
+: производит сложение 9 подряд идущих натуральных чисел начиная с введенного и выводит результат
-: производит сложение 10 подряд идущих натуральных чисел начиная с введенного и выводит результат
-: возводит введенное число в 10 степень и выводит результат
-: возводит введенное число в 9 степень и выводит результат
I: > Понятие о структурном программировании-7; KT=; MT=;
S: Структурное программирование по-другому называют программированием без…
I: > Понятие о структурном программировании-8; KT=; MT=;
S: Дан массив целых чисел i>, где i=1,2,3,…,M. Пусть M равно 15. Программа вычисляет произведение сумм некоторых элементов этого массива. В программе введены следующие константы: G=1; W=12; T=8; L=15.
||НЦ ДЛЯ I:=I1 ДО I2
||ПИСАТЬ (‘ВВЕДИТЕ ЗНАЧЕНИЯ МАССИВА A:’ );
||P:=SUMMA (G, W)*SUMMA(T, L);
||ПИСАТЬ (‘ПРОИЗВЕДЕНИЕ РАВНО:’, P:6)
Работу программы описывает следующее алгебраическое выражение :
+:
-:
-:
-:
I: > Понятие о структурном программировании-9; KT=; MT=;
S: Процедура KLMN
||ПИСАТЬ(‘ВВЕДИТЕ ЗНАЧЕНИЕ K, L, M, N’);
реализует следующее алгебраическое выражение …
+:
-:
-:
-:
I: > Понятие о структурном программировании-10; KT=; MT=;
S: Программирование, основанное на модульной структуре программного продукта и типовых управляющих структурах алгоритмов называется…
I: > Понятие о структурном программировании-11; KT=; MT=;
S: Основной целью структурного программирования является…
+: организация программного обеспечения с минимальными взаимосвязями между его модулями
-: решение задач, для которых нет явного алгоритма решения
-: организация программного обеспечения с максимальными взаимосвязями между его модулями
-: исключение использования подпрограмм
I: > Понятие о структурном программировании-12; KT=; MT=;
S: Основой метода структурного программирования являются…
а) принцип модульности разработки сложных программ
б) использование композиции трех базовых элементов – линейной, ветвления и циклической структур
в) использование композиции двух базовых элементов – ветвления и циклической структур
д) использование большого количества подпрограмм
I: > Понятие о структурном программировании-13; KT=; MT=;
S: Основой метода структурного программирования являются…
а) использование композиции двух базовых элементов – ветвления и циклической структур
б) использование большого количества подпрограмм
в) принцип модульности разработки сложных программ
д) использование композиции трех базовых элементов – линейной, ветвления и циклической структур
Источник: studfile.net
Структурное программирование
Аннотация: Теоретические предпосылки структурного программирования. Локальность действий и условий, требования к программным структурам. Призраки и подпорки. Сеть данных и совместность. Циклический и рекурсивный варианты.
— Учитель,- проговорил Сунь У-кун.- Я человек простой и вашего городского языка не понимаю. Что значат подпорки к стене?
— Когда люди начинают строить дом и хотят сделать его прочным и крепким, то между стенами они ставят подпорки. Но проходит время, и здание рушится, а это значит, что подпорки сгнили.
У Чэн-энь. «Путешествие на Запад», глава 2
Общая характеристика структурного программирования
На самом деле изложение структурного стиля не может уместиться в рамки одной лекции. Но данный стиль программирования (вернее, его вариант, основанный на циклах и массивах, слегка пополненный рекурсивными процедурами) описывается и навязывается как единственно возможный во всех ныне предлагаемых учебных пособиях по программированию на традиционных языках. В связи с этим мы имеем право предположить, что обучающийся знаком с ним (более того, знаком только с ним, и мы надеемся, что он еще не потерял способность воспринимать другие стили). И хотя Вы считаете, что с этим вариантом структурного стиля уже освоились, особенности, опускаемые в традиционных изложениях, могут полностью изменить Ваш взгляд на данный стиль.