Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль,правила локалізації рекурсія файли проц...docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
35.3 Кб
Скачать

Передача параметрів

У стандарті мови Паскаль передача параметрів може здійснюватися в два способи – по значенню і по посиланню. Параметри, що передаються по значенню, називають параметрами-значеннями, що передаються по посиланню - параметрами-змінними. Останні відрізняються тим, що в заголовку процедури (функції) перед ними ставиться службове слово var.

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

Якщо використовується другий спосіб (передача по посиланню) всі зміни, що відбуваються в тілі процедури (функції) з формальними параметрами, призводять до негайних аналогічним змінам відповідних їм фактичних параметрів. Зміни відбуваються із змінними блоку викликів, тому по посиланню передаються вихідні параметри. В разі виклику відповідні їм фактичні параметри можуть бути тільки змінними.

Вибір способу передачі параметрів при створенні процедури (функції) відбувається у відповідності до сказаного вище: вхідні параметри потрібно передавати за значенням, а вихідні - по посиланню. Практично це зводиться до розстановки в заголовку процедури (функції) зарезервованого слова var перед всіма параметрами, які позначають результат роботи підпрограми. Однак, у зв'язку з тим, що функція повертає тільки один результат, в її заголовку використовувати параметри-змінні не рекомендується.

Поняття рекурсії. Поняття підпрограми тісно пов’язане з одним методом розв’язання задач, яке має назву рекурсія. Рекурсія – це метод визначення чи вираження функції, процедури, мовної конструкції чи рішення задачі за допомогою тієї ж функції, процедури та т.п. Слово рекурсивний, рекурентний вийшло від латинського “recurro” (бігти назад, вертатися). Якщо відомо алгоритм розвязку задачі для найпростіших даних, та як звести розв’язок до більш простих даних в інших випадках, має сенс використати рекурсію. Співвідношення, в яких для обчислення поточного значення використовуються значення, отримані на попередніх етапах обчислення називають рекурентними. Рекурсією називається така ситуація, коли підпрограма (процедура або функція) викликає сама себе.

Будь-яке рекурсивне визначення складається з двох частин. Одна частина визначає поняття через нього ж, інша частина - через інші поняття. Будь-яке рекурсивне визначення складається з двох частин. Одна частина визначає поняття через нього ж, інша частина - через інші поняття.

Рекурсивні процедури і функції

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

Зауважимо, що при непрямому обертанні всі процедури в ланцюжку - рекурсивні.

Все сказане про процедури цілком відноситься і до функцій. Повернемося до рекурсивного визначення факторіала. Достатньо записати його на Паскалі й утвориться опис рекурсивної функції.

Function Factorial (N: Integer) : Integer;

Begin

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

Зауважимо, що при непрямому обертанні всі процедури в ланцюжку - рекурсивні.

Все сказане про процедури цілком відноситься і до функцій. Повернемося до рекурсивного визначення факторіала. Достатньо записати його на Паскалі й утвориться опис рекурсивної функції.

Function Factorial (N: Integer) : Integer;

Begin

  If N=0 Then Factorial:=1 Else Factorial:=Factorial(N-1)*N

End;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]