Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на экзамен по информатике.docx
Скачиваний:
5
Добавлен:
19.04.2019
Размер:
132.23 Кб
Скачать

26. Процедури та функції у мові Turbo Pascal. Формальні та фактичні параметри. Локальні та глобальні об’єкти. Поняття рекурсії.

В мові Паскаль виділяють два види підпрограм: процедура (PROCEDURE); функція (FUNCTION).

Принципи побудови Паскаль-програми, процедури і функції ідентичні і відрізняються тільки заголовками. Форма заголовків: Procedure <ім’я> (список параметрів) Function <ім’я> (список параметрів)

У випадку, коли одна й та сама послідовність дій (операторів) повинна виконуватися багаторазово на різних етапах обробки даних, раціонально (із погляду технології структурного програмування) використовувати підпрограми (тобто допоміжні програми). У мові Turbo Pascal виділяють два види підпрограм - процедури та функції. Крім того вони поділяються на стандартні (зберігаються в стандартних бібліотечних модулях компілятора мови Turbo Pascal) та нестандартні (розроблені користувачами), які в свою чергу класифікуються як внутрішні (оголошені та зберігаються в самій програмі) та зовнішні (оголошені та зберігаються за межами програми).

Загальний вигляд заголовка процедури наступний: procedure Ім’я_процедури (Список параметрів); Список параметрів - перелік імен для позначення вхідних даних і результатів роботи процедури з указівкою їхніх типів. Константи, змінні, типи, описані в блоці program, є глобальними стосовно підпрограми, на відміну від локальних, описаних у самій підпрограмі. Допускається розробка процедур, в яких відсутній Список параметрів.

Оператор виклику процедури має вигляд:Ім’я_процедури (Список параметрів);

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

function Ім’я_функціі (Список параметрів) : Тип_результату;

Оператор, що виконується останнім у функції завжди є оператором присвоєння. Він має структуру Ім’я_функціі : = вираз; . Тобто, обчислюється вираз і його значення стає значенням функції.Як правило, виклик функції здійснюється у операторі присвоєння або до функції звертаються безпосередньо за ім’ям . Параметри, перераховані при описуванні процедури (функції) в Списку параметрів, називаються формальними. Параметри, що містяться в Списку параметрів при виклику процедури (функції), називаються фактичними.

Усі об’єкти, що оголошені в основній програмі є по відношенню до будь-якої підпрограми називаються глобальними. Об’єкти, оголошені у підпрограмі називають локальними, бо вони діють у межах цієї підпрограми. Підпрограми, самі можуть вміщувати інші, вкладені підпрограми, й навіть звертатися (передавати управління) під час роботи до самих себе (насправді до своєї копії) - рекурсивні підпрограми. Під час взаємодії основної програми та підпрограми використовується відділ пам’яті, що має назву стек (це динамічна структура даних, що організована за принципом “Останній прийшов, першим обслуговується”). У ньому компактно зберігаються дані основної програми в той час, коли управління передається підпрограмі. Враховуючи можливість використання вкладених підпрограм (різних рівнів вкладеності), стек має багаторівневу організацію. Розміри його обмежені, але є можливість їх зміни, наприклад, за допомогою спеціальної директиви компілятора. У мові Turbo Pascal існує можливість створення користувачем власних бібліотечних модулів – програм з жорсткою структурою. Заголовок починається службовим словом unit замість program; далі йде розділ interface, де записаний перелік заголовків підпрограм, до яких дозволений доступ ззовні; далі йде розділ implementation, де розміщуються повні тексти включених до модуля підпрограм; далі йде розділ реалізації begin end. (як правило пустий). Модулі мають бути відкомпільовані зовнішнім компілятором tpc.exe (перетворені на готовий до використання tpu-файл). Практично оволодівши використанням підпрограм при розв'язанні задач набагато легше зрозуміти зміст таких понять обєктно-орієнтованого програмування, як клас, метод та ін.