Непейвода Н.Н. Программирование. Раздел 1

Непейвода Н.Н. Программирование. Страница 112

[1] Так что, применяя теоретический результат, всегда интересуйтесь не только его формули­ровкой, но и доказательством, желательно в работе авторов.

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

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

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

Внимание!

Не используйте рекурсивный вызов процедуры внутри цикла! Рекурсия и циклы должны быть «территориально разделены»!

Хотя данное правило пригодно в подавляющем большинстве случаев, но, тем не менее, иногда бывают исключения. Рассмотрим, например, схему поиска вглубь на дереве.

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

Для стиля мышления при структурном программировании характерно стремление к локальности и иерархическое разбиение задачи на подзадачи — так называемое нисходящее программирование. Нисходящее программиро­вание часто рассматривали (и рассматривают) как общий способ декомпо­зиции действий. Причины тому следующие:

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама