Як зазначалося вище, процедура може не мати результатів, а може мати один або більше результатів. Якщо процедура має один результат, то зручніше її оформити і викликати як функцію користувача.
Функція користувача, як і процедура користувача – це відокремлена частина програми, яка має своє ім’я і яка може бути викликана для виконання в будь-якій іншій частині програми.
Відрізняється функція від процедури таким:
1. Рядок заголовка функції виглядає так:
function <ім’я> (<списки аргументів з їхніми типами>): <тип результату >;
2. Значення, яке функція повинна повернути (передати) команді, яка її викликає, в тексті самої функції має бути присвоєно змінній, ім’я якої збігається з іменем функції.
3. Функція може бути викликана або в правій частині команди присвоювання, або в команді виведення.
Якщо обчислення НСД оформити як функцію, то програма виглядатиме так (рис. 2.61):
Рис. 2.61. Програма додавання двох звичайних дробів з використанням функції НСД
| |
Зверніть увагу не тільки на відмінності в оформленні процедури і функції, а й на відмінності в їх виклику і використанні в програмах, наведених на рис. 2.59 і 2.61 (табл. 2.3):
Таблиця 2.3. Відмінності у виклику процедури і функції
1. Використання процедури МCD
| 2. Використання функції МCD
|
3. MCD(den1, den2,z);
4. den := den1*den2/z;
| 5. den := den1*den2/ MCD(den1, den2);
|
6. MCD(den, nom, k);
| 7. k :=MCD(den, nom);
|
Процедури користувача і функції користувача називаються підпрограмами користувача.