Рекурсивна процедура - велика енциклопедія нафти і газу, стаття, сторінка 1
рекурсивна процедура
Рекурсивні процедури мають багато переваг і є потужним засобом при створенні оптимальних програм в таких завданнях, як переклад з мови на мову, в тому числі при трансляції, в доказах теорем і ін. Привести простий приклад, що показує техніку рекурсивних процедур і демонструє очевидну вигоду перед нерекурсівние варіантом процедури, не представляється можливим. [1]
Рекурсивні процедури (recursive procedure) - це процедури, які викликають самі себе. Їх складність визначається дуже тонким способом. Складність багатьох рекурсивних алгоритмів залежить саме від кількості ітерацій рекурсії. Рекурсивна процедура може здаватися досить простий, але вона може дуже серйозно ускладнювати програму, багаторазово викликаючи саму себе. [2]
Рекурсивна процедура може виконуватися побічно, викликаючи другу процедуру, яка, в свою чергу, викликає першу. [3]
Рекурсивні процедури та рекурсивні звернення до процедур не допускаються. [4]
Рекурсивні процедури зазвичай працюють за допомогою стека - схеми пам'яті, яка виділяє окрему область пам'яті для змінних, пов'язаних з кожним зверненням до процедури. [6]
Рекурсивні процедури іноді призводять людей в замішання. Але насправді вони зовсім нескладні. Просто параметри поміщаються в стек, і викликається процедура. [7]
Рекурсивна процедура search обробляє каталог, відкриваючи його, а потім зчитуючи його записи по одній за допомогою функції readdir, поки ця функція не поверне значення NULL. Це означає, що в каталозі більше немає записів. Якщо запис являє собою каталог, він також обробляється рекурсивним викликом процедури search. Якщо ж це виконуваний файл, він заражається процедурою infect, якої у вигляді параметра передається ім'я файлу. Для використання символьних посилань потрібно більш складна програма. [8]
Рекурсивна процедура має ту особливість, що звертається сама до себе. Рекурсивні процедури зручні, але вони можуть виявитися неефективними. [9]
Рекурсивні процедури та функції (модулі) мають одну з двох форм: пряму рекурсію і непряму рекурсію. У першому випадку модуль містить оператор виклику цього ж модуля, як у наведеній вище процедурі REVERSE. У другому випадку один мо дуль викликає будь-якої іншої модуль, який або сам або за допомогою інших модулів викликає вихідний модуль. [10]
Рекурсивна процедура search (4.87), як і раніше, слід схемою основного алгоритму включення в двійкове дерево. Додається третій параметр h, він вказує, змінюється чи ні поддерево з коренем р, і повністю відповідає параметру h в програмі пошуку в Б - дереві. Однак потрібно вказати і на наслідки подання сторінок у вигляді пов'язаних списків: будь-яка сторінка проходить за допомогою одного або двох звернень до процедури пошуку. Необхідно розрізняти такі випадки: виросло поддерево (вказане вертикальної посиланням) або братська вершина (зазначена горизонтальної посиланням) отримала ще одного брата і, отже, потрібно поділ сторінки. [11]
Рекурсивна процедура search обробляє каталог, відкриваючи його, а потім зчитуючи його записи по одній за допомогою функції readdir, поки ця функція не поверне значення NULL. Це означає, що в каталозі більше немає записів. Якщо запис являє собою каталог, він також обробляється рекурсивним викликом процедури search. Якщо ж це виконуваний файл, він заражається процедурою infect, якої у вигляді параметра передається ім'я файлу. Для використання символьних посилань потрібно більш складна програма. [12]
Рекурсивні процедури. зокрема, можуть бути з успіхом застосовані в різних областях обчислювальної математики. Наприклад, з їх допомогою зручно обчислювати кратні інтеграли, для че про в фортране зазвичай доводиться використовувати кілька різних підпрограм з пакета типових підпрограм. [13]
Аналогічно рекурсивним процедурам можуть бути і рекурсивні функції. Білі ідентифікатор функції зустрічається в правій частині оператора, привласнення, то це означає рекурсивне звернення до функції. [14]
Рекурсивними процедурами називаються такі процедури, в тілі яких є звернення до самих себе безпосередньо або за допомогою іншої процедури. [15]
Сторінки: 1 2 3 4