68981

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

Лекция

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

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

Украинкский

2014-09-28

30 KB

4 чел.

Лекція №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);


 

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

31130. Базис языка UML 249.01 KB
  Словарь UML образуют 3 разновидности строительных блоков это предметы отношения и диаграммы. Предметы – это абстракции основные элементы в модели отношения связывают предметы а диаграммы группируют коллекции предметов. Структурные предметы это существительные в UML моделях статические части. Предметы поведения Предметы поведения – это динамические части глаголы модели поведение объектов во времени.
31131. Унифицированный процесс разработки программных систем 45.19 KB
  Прецеденты должны быть основным артефактом на основании которого устанавливается желаемое поведение системы проверяется и подтверждается правильность выбранной системной архитектуры производится тестирование. Системная архитектура является решающим фактором при разработке концепций конструировании управлении и развитии создаваемой системы. Итеративным называется процесс который предполагает управление потоком исполняемых версий системы. Разработка стабильной базовой архитектуры продукта которая позволяет решать поставленные перед...
31132. Основы объектно-ориентированного представления программных систем 169.01 KB
  Сцепление модулей. Сцепление – это мера взаимозависимости модулей по данным внешняя характеристика модуля которую желательно уменьшить. Измеряется сцепление степенью сцепления. Выделяют 6 видов степени сцепления: Сцепление по данным; Сцепление по образцу; Сцепление по управлению; Сцепление по внешним ссылкам; Сцепление по общей области; Сцепление по содержанию.
31133. Статические модели объектно-ориентированного представления программных систем 142.29 KB
  Диаграмма классов это набор классов и связей между ними. Диаграммы классов используются: в ходе анализа – для указания ролей и обязанностей сущностей которые обеспечивают поведение системы; в ходе проектирования – для фиксации структуры классов которые формируют системную архитектуру. Отношения в диаграммах класса. Ассоциации отображают структурные отношения между экземплярами классов.
31134. Динамические модели объектно-ориентированного представления программных систем: автоматы 336.98 KB
  Динамические модели обеспечивают представление поведения системы путем отображения изменения состояний в процессе работы системы в зависимости от времени. Автомат – описывает поведение в терминах последовательности состояний через которые проходит объект в течение своей жизни. Диаграмма схем состояний – отображает конечный автомат выделяя поток управления от состояния к состоянию. Конечный автомат – поведение определяющее последовательность состояний в ходе существования объекта.
31135. Динамические модели объектно-ориентированных программных систем: диаграммы взаимодействия Use Case 14.52 KB
  Диаграмма сотрудничества – это диаграмма взаимодействия выделяющая структурную организацию объектов посылающих и принимающих сообщения. Иначе диаграмму сотрудничества называют диаграмма кооперации. Диаграмма последовательности это диаграмма взаимодействия отображающая сценарий поведения в системе и обеспечивающая более наглядное представление порядка передачи сообщений. Графически диаграмма последовательности – это разновидность таблицы которая показывает объекты размешенные вдоль оси икс и сообщения упорядоченные во времени вдоль оси...
31136. Модели реализации объектно-ориентированных программных систем 34.82 KB
  Модели реализации обеспечивают представление системы в физическом мире рассматривая вопросы упаковки логических элементов в компоненты и размещения компонентов в аппаратных узлах. Рисунок 1 – обозначение компонента Сходные характеристики: наличие имени; реализация набора интерфейсов; участие в отношения зависимости; возможность быть вложенными; наличие экземпляров экземпляры у компонентов только у диаграмм размещения № Описание различий 1 Классы – логические абстракции компоненты – физические предметы. 2 Компоненты являются...
31137. Стандартные методы совместного доступа к базам и программам в сложных информационных системах 150.16 KB
  ODBC – это программный интерфейс PI доступа к базам данных разработанный фирмой X Open. ODBC – это широко распространенный комплекс драйверов фирмы Microsoft для связи с разнородными базами данных удовлетворяющий стандартом ISO. Технологии связи с разнородными базами данных в условиях архитектуры клиент – сервер с использованием ODBC. Клиентская часть состоит из: Управляющий модуль ODBC.
31138. Проектирование интегрированных ИС 68.03 KB
  Требование к корпоративным информационным системам: Функциональная часть: это функциональная интеграция и полнота; функциональная локализация; мониторинг функционирования. Организационное обеспечение: модульность; интеграция структуры; информационная безопасность. Применительно к промышленному предприятию состав систем составляющих корпоративную информационную систему во взаимосвязи с пользователями на различных уровнях управления может быть представлен в следующем виде: Интеграция функциональной части системы – предполагает решение...