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);


 

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

6372. Фундаменталізація та індивідуалізація підготовки фахівців з вищою освітою 52 KB
  Фундаменталізація та індивідуалізація підготовки фахівців з вищою освітою 1.Індивідуалізація навчання як важлива умова реформування вищої освіти. Індивідуалізація навчання - це надання можливості тому, хто навчається, самостійно обирати рівень...
6373. Поняття про екосистеми 135 KB
  Поняття про екосистеми Поняття виду і популяції. Структура та характеристика популяції. Визначення поняття екосистема. Характеристики біоценозу та біотопу. Динаміка екосистем. Штучні екосистеми - агр...
6374. Організація науково-дослідної роботи в Україні 138 KB
  Організація науково-дослідної роботи в Україні План Організаційна структура науки. Пріоритетні напрями розвитку науки в Україні. Система підготовки наукових і науково-педагогічних кадрів. Науково-дослідна робота студентів. Організацій...
6375. Організація навчального процесу у вищому навчальному закладі 108.5 KB
  Організація навчального процесу у вищому навчальному закладі 1.Європейська кредитно-трансферна та системанакопичення - ECTS У положенні використано терміни, що надані у Законах України Про вищу освіту від 17.01.2002 р. № 298...
6376. Дидактика вищої школи. Зміст освіти у ВНЗ 63.5 KB
  Дидактика вищої школи.Зміст освіти у ВНЗ План Сутність поняття дидактика вищої школи, іі мета, функції та завдання. Зміст освіти у вищій школі. Поняття про зміст освіти вищої школи та його проектування. Характеристика н...
6377. Графічна репрезентація даних статистичних досліджень 45.5 KB
  Тема 3. Графічна репрезентація даних статистичних досліджень. ПРИКЛАД 1. Спостерігали за 35 підлітками (а згодом - молодими людьми) у віці від 10 до 18 років, щороку фіксуючи, на скільки кожний з них виріс. Після цього визначили вік, протягом я...
6378. Захисник при перегляді судових рішень в порядку виключного провадження 77.5 KB
  Захисник при перегляді судових рішень в порядку виключного провадження План: Загальна характеристика та підстави перегляду судових рішень в порядкувиключного провадження. Поняття нововиявлених обставин та їххарактеристика. Захис...
6379. Бізнес-план в умовах ринкової системи господарювання 33.15 KB
  Бізнес-план в умовах ринкової системи господарювання Цілі: Особливості господарювання виноробних підприємств З'ясувати сутність і призначення бізнес-плану Визначити цілі розробки бізнес-плану Визначити види та о...
6380. Структура, послідовність розробки та оформлення бізнес-пл 25.77 KB
  Структура, послідовність розробки та оформлення бізнес-плану Цілі лекції: Ідентифікувати чинник, що впливають на зміст бізнес-плану. Визначити логіку опрацювання бізнес-плану. Засвоїти основні правила оформлення бізнес-плану. ...