Рефераты | Рефераты по информатике, программированию | Рекурсия | страница реферата 3 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Рис. 16.4. Схема организации цикла вида while do

    и его рекурсивного эквивалента.

    Обратите внимание, что в правой части рис. 16.4 возможно зацикливание! Надо быть очень осторожным и всякий раз, применяя рекурсивную поцедуру или функцию, убедиться в их корректном завершении. Рассмотрим пример. На рисунке 16.5 приведен алгоритм Евклида, с которым мы познакомились на лекции 1, для вычисления НОД (наибольшего общего делителя) в форме обычной и рекурсивной функции на языке Pascal.

    Function НОД (a, b : integer) : integer ;

    begin  repeat

    b then a:=a-b

                else b:=b-a

             untile a = b;

             НОД:=a

    end

    begin  if a = b then НОД:=a;

    b then НОД:=НОД(a-b, b);

                    else НОД:=НОД(b-a , a);

    end

    Рис. 16.5. Циклическая и рекурсивная функции

    для вычисления НОД.

    Как видно из приведенных примеров на рисунках 16.1 и 16.5, итерация, т.е. цикл всегда может быть заменен его рекурсивным аналогом по схеме, показанной на рисунке 16.4.

       С обратным утверждением о замене рекурсии итерацией все сложнее. На рисунке 16.6 приведен пример рекурсивной функции, где по схеме (рис. 16.4) рекурсию итерацией заменить не удается.

    в остальных случаях

    Рефераты | Рефераты по информатике, программированию | Рекурсия

    Рис. 16.6. Рекурсивная функция Аккермана.

    Способы повторного использования процедур и функций.

    Итак, процесс абстракции в форме процедуры состоит из трех шагов:

    Именование. Присвоить рутинному алгоритму уникальное имя, которое затем будем использовать как имя соответствующей процедуры.

    Определить пред- и постусловия для создаваемой процедуры или функции в соответствии с контекстом их использования в основной программе.

    Параметризиовать процедуру. (Везде далее, если явно не оговорено, говоря о процедурах, будем иметь в виду также и функции). Для этого часть предусловия и постусловия в спецификации оформить в виде параметров соответствующего типа, часть из которых будет доставлять исходные данные, а другая часть - результаты работы процедуры.


    Рекомендуем скачать другие рефераты по теме: реферат книга, доклад по обж.



    Предыдущая страница реферата | 1  2  3  4 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •