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


 

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

14228. Бах. Бранденбургский концерт №4 24 KB
  Лекция двенадцатая. Тема: Бах. Бранденбургский концерт №4. Первая часть. Скрипка и две флейты оркестр традиционный струнный с чембало. Ядро 6 тактов. Первый каденционный участок в начале 23 такта. 57 такт проведение в Соль мажоре. 83 такт завершение темы соло ...
14229. Бах. Бранденбургский концерт № 3 23 KB
  Лекция пятнадцатая. Тема: Бах. Бранденбургский концерт № 3. Третья часть Двухчастная форма TD первая часть DT вторая часть Ядро двутактовое и развертывание Ядро в G 17 такт ядро в e 20 такт ядро в h 37 такт ядро в С потом в G As и h II ХТ...
14230. Александр Сергеевич Даргомыжский (1813-1869) 15.1 KB
  Александр Сергеевич Даргомыжский 1813-1869 Его творчество новый этап в развитии музыки. Продолжатель дела Глинки; новатор; открыватель новых путей неохваченных Глинкой. Был критическим реалистом и главной темой были представители низших сословий и их жизнь. В 1835 год...
14231. Музыкальная ритмика 21.05 KB
  Музыкальная ритмика представлена в качестве приема работы по формированию и коррекции произносительной стороны речи слабослышащих детей. Цели которые определяют основные направления в занятиях по музыкальной ритмике заключаются в том чтобы: соединить работу
14232. Музыкальное искусство средневековья 23.73 KB
  Музыкальное искусство средневековья. Урсу Полина ДВЭ2 Средневековье большая эпоха человеческой истории время господства феодального строя. Периодизация культуры: Раннее Средневековье V X вв. Зрелое Средневековье XI XIV вв. В 395 г. Римская империя расп
14233. Музыкальный и литературный ряд на уроках изобразительного искусства 17.87 KB
  Конспект занятия по Методике преподавания изобразительного искусства в школе. Тема: Музыкальный и литературный ряд на уроках изобразительного искусства. Задачи: Знакомство с основными целями и задачами использования музыкального и литературного ряда на уроках ...
14234. Музыкальный импрессионизм и творчество Дебюсси 15.43 KB
  Музыкальный импрессионизм и творчество Дебюсси 1 Дебюсси вывел франц. музыку в лидеры Париж музыкальный центр. 2 Дебюсси основоположник антиромантизма отсутствие тем исповедальности борьбы одинокого героя отсутствие автобиографичности 3 Дебюсси первы...
14235. Музыкальный стиль 37.71 KB
  Музыкальный стиль Содержание Введение Становление понятия стильного исполнения Исполнительский стиль Пианист ХХI века: к новой духовности исполнителя Заключение Список литературы Введение Музыкальный стиль понимаемый в виде истор...
14236. Музыкальные хиты Сербии и Хорватии: зеркало мировоззрений двух наций 164 KB
  Музыкальные хиты Сербии и Хорватии: зеркало мировоззрений двух наций В пору бытности частями Югославии Сербия и Хорватия были самыми крупными и культурно значимыми странами на Балканском полуострове в которых национальная культура формировалась столетиями. Совреме...