Відмінності функції від процедур
Метою роботи функції, по-загально кажучи, є обчислення деякої величини. Метою роботи процедури є виконання самої послідовності дій, що становлять процедуру.
Припустимо, наприклад, що в нашій програмі часто потрібно визна-лять площа трикутника, знаючи координати його вершин. Оскільки результатом роботи є обчислення єдиної величини - площі трикутника - природно оформити наші дії у вигляді функції.
Припустимо також, що нам часто потрібно малювати трикутник на екрані па його вершин. Оскільки в цьому випадку результатом роботи є сам процес виконання, а не обчислення будь-якої величини, то логічно створити вже не функцію, а процедуру малювання трикутника на екрані.
У заголовку функції визначається її ім'я, параметри (якщо вони име-ються) і тип результату.
Для виклику функції необхідно вказати її ім'я і параметри (якщо вони є). Ім'я може використовуватися у виразах. При обчисленні виразу ім'я функції замішаний обчисленим значенням.
У тілі функції хоча б один оператор повинен імені функції привласнити деяке значення, інакше значення, що повертається функцією, залишиться невизначеним. Якщо операторів, які присвоюють імені функції значення, неяк-до, то результатом функції є останнім присвоєне значення.
function Func: Real;
WriteLn ( 'Квадрат синуса цього числа дорівнює', Rez); end.
Наступна програма обчислює суму геометричних середніх все-можливих комбінацій двох цілих чисел від 1 до 20. При обчисленні використовується функція, яка повертає геометричне середнє двох даних чисел (квадратний корінь з їх твори).
for i: = 1 to 20 do
for j: = 1 to 20 do
На відміну від імені процедури, ім'я функції може використовуватися у виразах.
Більш того, функцію можна викликати, тільки використовуючи се ім'я в ка-кого-небудь вираженні. В останньому прикладі ім'я функції SR присут-ствовало в вираженні S: = S + SR (i, j); Значення SR (i, j) автоматично підраховується кожен раз і використовувалося при обчисленні правій частині.
Подпрограмма- це блок операторів виконують дії або обчислює значення будь-якого виразу, найбільш часто використовуваний в програмі.
Підпрограма є основою модульного програмування. Розбиваючи завдання на частини і формуючи логічно відокремлені модулі підпрограми (процедури і функції), програміст реалізує основні принципи широко пользуемя в практиці системного підходу і методів спадного програмування.
Ось як виглядає в загальному вигляді структура процедури: