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


 

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

52933. Поурочні плани для курсу за вибором «Євроклуб» 762 KB
  Виховання учнів здійснюється через систему особистісних стосунків із новою культурою і процесом оволодіння нею. Виховна мета це виховання в учнів: позитивного ставлення до іноземної мови як засобу спілкування; розуміння сучасних інтеграційних процесів та тенденцій; поваги до народу носія цієї мови толерантного ставлення до його культури звичаїв і способу життя; культури спілкування прийнятої в сучасному цивілізованому світі; емоційноціннісного ставлення до всього що нас оточує; розуміння важливості оволодіння іноземною мовою...
52935. Европа в XVI веке - смена эпох 54 KB
  ЭТАП По историческим местам: о ком идет речь; какое открытие было сделано; в каком году. 2 Этап Рост промышленности. ЭТАП Отличия капиталистической мануфактуры от ремесленной мастерской Вопросы для сравнения Ремесленная мастерская Капиталистическая...
52936. Використання евристик на уроках математики 346.5 KB
  Завдання: Знайдіть графіки функцій змальованих на картині і запишіть ним відповідні формули. Завдання: Які чотирикутники змальовані на картині Перерахуєте їх дайте визначення кожному розкажіть якими властивостями і ознаками вони володіють. Що ви знаєте про вписані багатокутники Біля будьякого чотирикутника можна описати коло Біля яких чотирикутників на картині описані кола Прямокутник квадрат. Які багатокутники називаються описаними біля кола У які чотирикутники можна вписати коло Які описані чотирикутники змальовані на...
52937. Подорож по країні Excel. Введення та редагування даних різного типу. Автозаповнення. Копіювання, переміщення, вилучення, форматування таблиці 205.5 KB
  Домашнє завдання на наступний урок та інструктаж щодо його виконання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка системи електронних таблиць що буде забезпечувати роботу певного магазину і складу при ньому 1 таблиця Прайслист товарів послуг в різній валюті. Д Зберегти виконане завдання до своєї папки з ім'ям Розрахунки Домашнє завдання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка...
52938. Екскурсія до військово – історичного музею Повітряних Сил Збройних Сил України 8.52 MB
  Вінниця 2012 Тема: Екскурсія до військово історичного музею Повітряних Сил Збройних Сил України. Хід екскурсії Сьогодні експозиція музею Повітряних Сил Збройних Сил України нараховує 41 експонат військової техніки а у фонді налічується більше 2000 предметів. Колективом музею створено декілька тематичних експозицій: â€œВінничани Герої Радянського Союзу†“43тя Ракетна армія та Ракетні війська стратегічного призначення†“Історія створення ВійськовоПовітряних Си놓Історія військ Протиповітряної оборон膓Авіаційна...
52939. ЕКСКУРСІЯ ПО МІСТАМ УКРАЇНИ 147.5 KB
  T. The last time we spoke about Zaporizhyan Sich and Zaporizhya, the city closely connected with Zaporizhyan Sich. But in the history of our Motherland there were very many other historical events. Today we’ll start our talk about Ukrainian towns and cities.
52940. Эйдетические формы обучения русскому языку 179.5 KB
  Владимир Троицкий А когда уроки для нас становятся светлыми и радостными праздниками Когда они проходят интересно плодотворно на одном дыхании Наверное когда у вас всё получается когда всё понимаете и запоминаете и эти знания вы можете применить на практике. Уже 17 лет на каждом уроке русского языка я провожу такой эксперемент используя различные формы и методы развития образной памяти и всякий раз убеждаюсь что применение эйдетической...
52941. Перетворюємо навчання у захоплюючу творчу гру 764 KB
  Синий слон Оранжевый арбуз Голубой газета Желтый жук Красный карандаш Зеленый замок Фиолетовый фрукты Белый бант Чёрный часы Учитель называет слова один раз ученики повторяют в такой же последовательности а потом в разброс. Начинают игру словами: Бабушка укладывает в свой чемодан. Заучування вірша за піктограмами і словами вчителя. Етап проектування і покладання мети Давайте пригадаємо: що таке ейдетика Які прийоми ейдетики ми використовуємо щоб краще запамятати слова Цифри Сьогодні використовуючи різні...