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

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

8.7.3. Пример для самостоятельного анализа

В настоящем разделе приводится пример программы с рекурсивными процедурами, который предлагается для самостоятельного анализа. Про­грамма предназначена для распечатки всех последовательностей, состав­ляемых из символов "1", "2" и "3", среди которых знаком "+" помечаются удовлетворяющие некоторому условию, которое Вам предстоит выяснить самим.

Для решения задачи выбран рекурсивный алгоритм, но это не означает, что ее нельзя решить без использования рекурсии.

§ 8.8. ПРОЦЕДУРЫ В РАЗНЫХ МОДЕЛЯХ ВЫЧИСЛЕНИЙ

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

Даже самое близкое к структурному стилю программирование от состо­яний приводит к несколько отличному от устоявшегося понятию процеду­ры. Этому случаю оказывается противопоказана рекурсия. В самом деле, с точки зрения модели вычислений, программирование от состояний есть конечный автомат, которому не нужны понятия экземпляров процедур, ло­кального контекста и др., тогда как для структурного понимания процедуры они необходимы. То, что это действительно так, подтверждается ранними языками программирования FortranIV и Basic, которые в большей степени, чем все их наследники, соответствуют данному стилю. Предписываемые в них механизмы реализации подпрограмм явно указывают на то, что о рекур сивности здесь речи нет. В Basicстиль программирования от состояний поддерживается наиболее последовательно: нет не только рекурсии, но и са­мо понятие процедуры подменено командами GOSUBи RETURN, которые выполняются, соответственно, как переход по метке с запоминанием адреса возврата и как переход по этому запомненному адресу. С точностью до ис­пользования специальных регистров это именно то, что делается в обычном ассемблерном коде.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама