68981

Рекурсивні функції і процедури, параметри-процедури

Лекция

Информатика, кибернетика и программирование

Тобто це є визначенням функції через цю саму функцію, У мові Паскаль рекурсивний опис функції полягає в тому, що в тілі такої функції міститься звертання до цієї ж функції. Наведемо рекурсивний опис функції п...

Украинкский

2014-09-28

30 KB

6 чел.

Лекція №10

Тема: Рекурсивні функції і процедури, параметри-процедури

План заняття:

1. Рекурсивні функції і процедури

2. Параметри процедури

Рекурсивні функції і процедури

Деякі функції можна визначати рекурсивно. Наприклад, f(n)=n! можна визначити так:

n!=

Тобто це є визначенням функції через цю саму функцію, У мові Паскаль рекурсивний опис функції полягає в тому, що в тілі такої функції міститься звертання до цієї ж функції. Наведемо рекурсивний опис функції п!:

function FACT2(n: integer): integer;

 begin

if n=0

then FACT2:=1

else FACT2:=n*FACT2(n-1)

end;

Зазначимо, що в лівій частині оператора присвоєння FACT2 не означає рекурсивності. Рекурсія є в правій частині, де наявне звертання до функції FACT2 з параметром п-1.

Під час обчислення FACT2(3), наприклад, відбувається послідовне вираження FАСТ3(3) через FACT2(2). FACT2(2) через FACT2(1), FACT2(1) через FACT2(0)=1. Тоді FACT2(1)=1; FACT2(2)=2*1=2; FACT2(3)=3*2=6;

У цьому випадку неявно вводяться додаткові змінні. Використання рекурсії робить програму компактнішою, однак потребує додаткового машинного часу і пам'яті.

Як і функції, рекурсивними можуть бути процедури. Ім'я рекурсивної процедури міститься в її тексті. Тобто процедура є рекурсивною, якщо вона викликає саму себе. Такий виклик процедур і функцій може виникнути внаслідок або рекурсивного опису, або рекурсивного звертання.

Рекурсивний опис полягає в тому, що у виконуваній частині процедури або функції міститься звертання до неї самої. Прикладом рекурсивного опису є розглянута функція обчислення факторіала. У випадку рекурсивного опису потрібна наявність базової частини опису, яка забезпечувала б завершення рекурсивних викликів функції або процедури. В наведеному прикладі такою базовою частиною, що забезпечує досягнення ситуації, коли FACT(n) не залежить від FACT(n-1), є визначення функції FACT(0)=1 при n=0.

Прикладом рекурсивного звертання може бути такий оператор:

J:=TR(N1 ,А1, B1,TR(N2, А2, В2, FN));

Тут ім'я функції TR використано як операнд в операторі присвоєння, а також як фактичний параметр цієї функції. Застосування рекурсивних процедур і функцій робить програму в цілому гнучкішою і наочнішою, однак часто менш ефективною.

Параметри-процедури

Як формальні параметри в мові Паскаль, крім параметрів-значень і параметрів-змінних, використовують також імена процедур і функцій.

Параметри-процедури в списку формальних параметрів в авторській версії Паскаль зазначають після службового слова procedure. Наприклад

procedure PR(i, j: integer; varz: real; procedure P);

Приклад використання параметрів-процедур (схематично)

program R;

var ar, br, cr: real;

procedure P(x, y: real);

begin

……

end; {P}

procedure Q(k, g: real);

begin 

……

end; {Q}

Тут результат від процедур Р і Q повинен передаватися через глобальні змінні:

procedure T(procedure S(p, g: real); var a, b: real);

var c,d: real

begin

……

S(c+1,d/2)

……

end {T}

begin {R}

……

T(P, ar, br);

……

T(Q, br, cr);

……

end.{R}

У Турбо Паскалі використання параметрів-процедур дещо інше, зокрема, потрібно попередньо визначити процедурний тип:

type

Proc=procedure(T: real);


 

А также другие работы, которые могут Вас заинтересовать

7108. СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ И ПРОГРАММИРОВАНИЕ 99.72 KB
  Нисходящее проектирование В результате этого проектирования строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций, которая носит название функциональная структура алго...
7109. Философия. Курс лекций 167.96 KB
  МИРОВОЗЗРЕНИЕ, ЕГО ИСТОРИЧЕСКИЕ ФОРМЫ. СТРУКТУРА МИРОВОЗЗРЕНИЯ СПЕЦИФИКА ФИЛОСОФСКИХ ПРОБЛЕМ И СТРУКТУРА ФИЛОСОФСКОГО ЗНАНИЯ ФИЛОСОФИЯ И КУЛЬТУРА ФИЛОСОФИЯ ДРЕВНЕГО КИТАЯ ФИЛОСОФИЯ ДРЕВНЕЙ ИНДИИ ОСНОВН...
7110. ЧТО ТАКОЕ ФИЛОСОФИЯ 192.5 KB
  Л. Е. БАЛАШОВ ЧТО ТАКОЕ ФИЛОСОФИЯ? 2-е издание, с изменениями и дополнениями, М.: ACADEMIA, 1999 - Из цикла Философские беседы(Электронный текст книги с исправлениями и дополнениями - 2001 г.) АННОТАЦИЯ В брошюре обосновывае...
7111. Организация и управления работой флота и портов 155 KB
  Организация и управления работой флота и портов Конспект лекций Структура управления предприятием, принципы планирования Любое предприятие, в том числе и транспортное включает в себя три относительно самостоятельных, но взаимосвязанных общих ц...
7112. БУХГАЛТЕРСКИЙ ФИНАНСОВЫЙ УЧЕТ ПРАКТИКУМ 449.5 KB
  Общие сведения об организации Сквозная задача рассматривает деятельность малого предприятия - общества с ограниченной ответственностью Мебель. На предприятии один цех основного производства, который выпускает мягкую мебель (диваны). ИНН...
7113. Бухгалтерский учет с нуля 3.6 MB
  Андрей Витальевич Крюков Бухгалтерский учет с нуля Аннотация Профессия бухгалтера была и сегодня остается достаточно популярной. Все знают, что в каждой фирме обязательно работает хотя бы один бухгалтер. Вы тоже решили стать бухгалтером, но, впервые...
7114. Пособие инженеру ПТО по исполнительной документации 2.08 MB
  Пособие инженеру ПТО по исполнительной документации (Пособие молодой канцелярской крысы на объекте версия 6.0) Страница, зарезервированная для выходных типографских данных. Публикуемые материалы являются достоянием гостарбайтеров, по какой п...
7115. Звіт з навчальної практики в с. Любомирка 5.36 MB
  Звіт з навчальної практики в с. Любомирка 1. Системи і способи керування тракторів. Підготовка тракторів до роботи. Система керування трактором включає в себе такі підсистеми: управління двигуном: регулювання потужності, час...
7116. Основные методы оценки экономической эффективности инвестиций на транспорте 77.5 KB
  Основные методы оценки экономической эффективности инвестиций на транспорте. Содержание Введение 3 Инвестиции на транспорте 4 Особенности методов оценки инвестиций 6 Заключение 11 Список использованной литературы 12 Введение. Транспорт относится к ч...