- •Основні стандартні функції мови Pascal. Навести приклади виразу деяких функцій користувача через основні функції в програмах мовою Pascal.
- •16.Використання в програмах мовою Pascal складеної команди та команди безумовного переходу. Наведіть приклади їх використання.
- •18.Організація циклічного обчислювального процесу в програмах мовою Pascal. Наведіть приклади блок-схем таких алгоритмів.
- •21.Організація масивів даних(види масивів, операції з масивами). Опис та використання їх в програмах (навести приклади).
- •23.Підпрограми, їх призначення та види підпрограм в мові Pascal.
- •26.Рекурсивні функції та їх використання.
- •27.Поняття модулів. Їх види та використання в програмах.
- •28.Модулі користувача (правила створення).
- •30.Поняття файлу. Програмна модель файлу. Типи файлів. Способи доступу.
- •32.Стандартні процедури і функції для файлів прямого доступу
- •32.Використання текстових файлів в програмах. Обробка текстового файлу в програмах мовою Pascal.
- •34.Поняття динамічної пам’яті, вказівники та динамічні змінні. Поняття стека та черги.
- •35.Загальна характеристика типів даних мови Паскаль
- •36.Використання графіки в програмах мовою Pascal.
- •37.Стандартні процедури та функції для графічних побудов. Наведіть приклади їх використання в програмах мовою Pascal.
26.Рекурсивні функції та їх використання.
Підпрограми в Паскалі можуть звертатися самі до себе. Таке звернення називається рекурсією .
Для того щоб таке звернення не було нескінченним , в тексті підпрограми повинна бути умова , з досягнення якого подальше звернення до підпрограми не відбувається.
Приклад .
Розглянемо математичну головоломку з книги Ж. Арсак «Програмування ігор і головоломок ».
Побудуємо послідовність чисел таким чином: візьмемо ціле число i > 1 . Наступний член послідовності дорівнює i / 2 , якщо i парне , і 3 i +1 , якщо i непарне . Якщо i = 1 , то послідовність зупиняється.
Математично кінцівку послідовності незалежно від початкового i не доведена , але на практиці послідовність зупиняється завжди .
Застосування рекурсії дозволило вирішити завдання без використання циклів , як в основній програмі , так і в процедурі .
Приклад програми з використанням рекурсії
Program
Arsac ;Var first : word ;
Procedure posledov ( i : word ) ;
Begin
Writeln ( i ) ;
If i = 1 then exit ;
If odd ( i ) then posledov ( 3 * i +1 ) else posledov ( i div 2 ) ;
End ;
Begin
Write ( 'введіть перше значення ');
readln ( first ) ;
Posledov ( first ) ;
Readln ;
End.
Програміст розробляє програму , зводячи вихідну завдання до простішим . Серед цих завдань може виявитися і первісна , але в спрощеній формі. Наприклад , для обчислення F (N) може знадобитися обчислити F ( N- 1 ) . Іншими словами , частиною алгоритму обчислення функції буде обчислення цієї ж функції.
Будь-яке рекурсивне визначення складається з двох частин. Одна частина визначає поняття через нього ж , інша частина - через інші поняття .
Процедура є рекурсивної , якщо вона звертається сама до себе прямо або побічно (через інші процедури) .
Зауважимо , що при непрямому зверненні всі процедури в ланцюжку - рекурсивні .
Все сказане про процедури цілком відноситься і до функцій .
Приклад рекурсивної функції обчислення факторіала
Function factorial ( N: integer ) : longint ;
Begin
If N = 0 then Factorial : = 1
Else Factorial : = factorial ( N- 1 ) * N
рекурсивна функція для обчислення степеня числа буде мати наступний вигляд:
Function Step(x:real; n:integer):real:
Begin
If n = 0
then Step:=1
else Step:=Step(x,n-1)*x;
End;
27.Поняття модулів. Їх види та використання в програмах.
Модуль (UNIT -модуль, одиниця) - автономно (окремо) що компілюється програмна одиниця, яка містить компоненти розділу описів (міток, констант, типів змінних, процедур, функцій), а також може містити оператори ініціалізуючої частини.
пСам модуль не є програмою, а призначений для використання іншими програмами і модулями.
У Турбо Паскаля є стандартні модулі : DOS, CRT (Cathode Ray Tube, электронно-променева трубка), Printer, Graph, System та інші.
Структура модуля
Модуль має наступну структуру:
UNIT <ім'я модуля>
INTERFACE
<розділ інтерфейсний>
IMPLEMENTATION
<розділ реалізації>
BEGIN
<розділ ініціалізації>
END.
У Паскалі є ряд стандартних модулів , в яких описано велику кількість вбудованих констант , типів , змінних і підпрограм. Кожен модуль містить пов'язані між собою ресурси .
модуль System
Модуль містить базові засоби мови , які підтримують введення-виведення , роботу з рядками , операції з плаваючою точкою і динамічний розподіл пам'яті. Цей модуль автоматично використовується у всіх програмах , і його не потрібно вказувати в операторі uses . Він містить всі стандартні і вбудовані процедури , функції , константи і змінні Паскаля .
модуль Crt
Модуль призначений для організації ефективної роботи з екраном , клавіатурою і вбудованим динаміком. При підключенні модуля Crt що виводиться інформація посилається в базову систему введення-виведення ( ВIОS ) або безпосередньо в відеопам'ять .
Модуль Graph містить багатий набір графічних процедур і функцій: проведення ліній, робота з кольором, виклик графічних примітивів, робота з текстом в графічному режимі, зафарбування замкнутих областей і т.п. Екран в графічному режимі розглядається як набір пікселів. Модуль Printer служить для виведення інформації на принтер.
