Під час виконання роботи потрібно розробити дві аналогічні програми, згідно свого варіанту. Одна програма провинна бути реалізована за допомогою підпрограм-процедур, інша за допомогою підрограм-функцій. Ці підпрограми називаються програми користувача.
Часто під час розв`язку задачі потрібно проводити однакові розрахунки, тобто одну і туж задачу, потрібно виконати багато разів з різними параметрами. У такому випадку використовують підпрограми. Підпрограма – це іменована, логічна закінчена група операторів, яку можна викликати для виконання по імені необхідну кількість раз з різних місць програми з різними даними.
В паскалі є два види підпрограм: процедури та функції. Процедури та функції, в свою чергу, бувають: стандартні та визначені користувачем.
Стандартні підпрограми є частиною мови програмування та можуть викликатися без попереднього опису. Прикладами стандартних підпрограм є – cos(x), sin(x), sqrt(x), pos(str1,str), delete(str,2,3) та інші.
Підрограми, визначені користувачем, розробляються програмістом та потребують попереднього опису. Структура любої підпрограми користувача аналогічна структурі всієї програми і відрізняється від головної програми заголовком. Підпрограма повинна бути описана в блоці опису до того, як вона буде використана в програмі або в іншій підпрограмі.
|
|
Дані передаються в підпрограму за допомогою параметрів. Параметри поділають на дві групи: локальні та глобальні, а також фактичні та формальні.
Локальні та глобальні параметри розрізняють в залежності від меж їх використання:
- локальні параметри, описані в середині підпрограми і доступні тільки в межах цієї підпрограми;
- глобальні параметри, описані в головній програмі і доступні як програмі, так і підпрограмі.
Параметри також діляться на фактичні та формальні:
- список формальних параметрів задається в заголовку підпрограми (процедури та функції). Цей список вказується після імені підпрограми і береться в круглі дужки. Список параметрів може бути відсутній.
- при зверненні до підпрограми (виклику підпрограми) вказуються фактичні параметри, значення яких передаються формальним параметрам в підпрограму.
Кількість, тип та порядок написання фактичних та формальних параметрів має співпадати.
ПРОЦЕДУРИ КОРИСТУВАЧА
Процедура – іменована частина програми, призначена для виконання певних дій. Підрограма складається із заголовка та тіла. Заголовок складається з зарезервованого слова Procedure, ідентифікатора (імені, унікального в межах даної програми) процедури та необов’язкового списку формальних параметрів. Формальні параметри записуються у круглих дужках через кому. Для кожного параметра вказується тип даних. Перед параметрами, які повинні повернути результат виконання процедури, пишеться слово var, такі параметри називаються параметри-змінні.
|
|
Формат:
Procedure <ім’я>{(формальні параметри; var формальні параметри-змінні)};
<розділ описів>
Begin
<розділ операторів>
end;
Приклади:
Procedure Korresp;
Procedure Sspr (i,j:integer, a:real);
Procedure Sspr1 (i,j:integer, a:real; var S:real);
Оператор виклику процедури складається з ідентифікатора процедури та списку фактичних параметрів. Виклик процедури – окремий оператор.
Формат:
<ім’я процедури> {(фактичні параметри)};
Приклади:
Korresp;
Sspr (5, k1, az);
Sspr1 (i1, n, 55, Sm);
Після виконання процедури програма продовжує працювати з наступного оператора, розташованого за викликом процедури.
ФУНКЦІЇ КОРИСТУВАЧА
Функції найчастіше використовуються тоді, коли в результаті виконання підпрограми повертається лише одне значення. Змінна-результат передається через ім’я функції, тому в заголовку функції через дві крапки описують тип функції, тобто, тип результату. Результат функції може бути тільки скалярного (цілого, дійсного, символьного, строкового, бульовського) типу.
Формат:
Function <ім’я> {(формальні параметри)}: <тип результату>;
<розділ описів>
Begin
<розділ операторів>
<ім’я функції>:= <результат виконання функції>;
end;
Приклади:
Function Llog:boolean;
Function Aspr1 (i,j:integer, a:real):real;
Виклик функції реалізується по імені функції та задання списку фактичних параметрів. Виклик функції завжди є частиною виразу або оператору.
Формат:
<ім’я функції> {(фактичні параметри)};
Приклади:
F:=Llog;
Sm:= Aspr1 (i1, n, 55);
Smp:= 77+sin(x)+Aspr1 (i1, n, 55);