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


 

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

802. Режимы движения жидкости 61.5 KB
  Определить режимы движения жидкости методом визуализации картин течения на установке Рейнольдса. Определить режим движения по значениям критерия Рейнольдса.
803. Растения, содержащие алкалоиды 232.17 KB
  Алкалоиды с азотом в боковой цепи - эфедрин из различных видов эфедры, сферофизин из травы сферофизы солонцовой, колхицин и колхамин из клубнелуковиц безвременников. Алкалоиды с конденсированными пирролидиновыми и пиперидиновыми кольцами (производные тропана) - гиосциамин, атропин, скополамин из красавки, белены, дурмана.
804. Теория и особенности познания 235.5 KB
  Познание как предмет философского анализа. Структура знания. Чувственное и рациональное познание. Теория истины. Понятие как основная форма рационального познания.
805. Экоинформационные системы как инструмент комплексного маниторинга окружающей среды 284.5 KB
  История возникновения экоинформатики. Задачи решаемые экоинформационной системой. Информационное обеспечение подготовки и принятия управленческих решений по охране природы и здоровья человека. Обмен информации о состоянии окружающей среды об других экоинформационных системах.
806. Радиальная скорость 234.5 KB
  Несущая частота сигнала наземного передающего пункта. Релятивистские частотно-фазовые соотношения между параметрами сигналов. Геоцентрические радиус-векторы передающего пункта, космического аппарата и приемного пункта .
807. Зоогигиена с проектированием и строительством животноводческой фермы 230.5 KB
  Роль конструктивных решений животноводческих помещений в формировании оптимального микроклимата и комфортных условий для животных. Характеристика площадки для строительства. Состав основных производственных зданий. Взаимное расположение построек на участке.
808. Исследование линейного четырехполюсника 222.5 KB
  Измерение Z-параметров линейного пассивного четырехполюсника и экспериментальные исследования по косвенной проверке результатов измерений. Схема подключения приборов для измерения параметров Z21 и Z12.
809. Проектирование механического привода конвейера для транспортирования сухих сыпучих материалов 182 KB
  Определение мощности и выбор электродвигателя. Определение общего передаточного отношения привода и разбивка передаточного числа редуктора по ступеням. Определение вращающих моментов на валах редуктора. Проверочный расчет передач на контактную прочность. Уточненный расчет промежуточного вала.
810. ППП Евфрат 231.5 KB
  Удобный инструмент для адаптирования системы конкретно под нужды и структуры организации, позволяет создать полный маршрут движения определенного типа документа, что в процессе работы позволяет экономить время и ресуры, затрачиваемые на обработку документа.