Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать

1. Процедури являють собою дію, тому їх можна використовувати в якості окремого оператора в розділі операторів програми.

2. Функції являють собою значення певного типу, крім цього вони можуть використовувати деяку дію, але значення їх є головним. Тому функції використовують як окремі оператори у виразах.

Оголошуються процедури і функції у розділі оголошень, причому оголошення

Формальне оголошення процедур має вигляд:

PROCEDURE <ім’я> (<список формальних параметрів>);

<розділ оголошень>;

<тіло процедури>;

Ім’я процедури формується згідно з правилами побудови ідентифікаторів у Pascal.

Список параметрів містить перелік величин із заданням їхнього типу, що можуть передаватися у підпрограму (вхідні параметри) або повертатися із підпрограми (вихідні).

Розділ оголошень містить описи всіх об’єктів, що використовуються лише у цій підпрограмі.

Тіло підпрограми містить оператори, що об’єднуються операторними дужками.

FUNCTION (<список формальних параметрів> :)<тип результату>;

<розділ оголошень>;

<тіло функції>;

На відмінну від процедур у функції обов’язково задається тип її значення. В якості типу результату можуть бути скалярні типи, рядки, множини, вказівники.

В розділі операторів обов’язково повинен бути присутній хоча б один оператор присвоєння ідентифікатору функції деякого значення, що і буде результатом функції.

Наприклад

Процедура і функція, що обчислюють суму елементів масиву цілих чисел.

CONST n=5;

TYPE

masiv=array[1..n] of integer;

PROCEDURE P_SUMA(a: masiv; m:integer; var suma: integer);

VAR

i: byte;

BEGIN

suma:=0;

for i:=1 to m do

suma:=suma+a[i]

END;

FUNCTION F_SUMA(a:masiv; m:integer): integer;

VAR

i: byte;

s: integer;

BEGIN

s:=0;

for i:=1 to m do

s:=s+a[i];

F_SUMA:=s;

END;

Процедура має три параметри: два вхідні – масив а і кількість т і один вихідний – сума.

Розділ оголошень локальних містить і типу byte.

Тіло процедури складається з двох операторів

Через значення функції типу integer локальне оголошення містить дві змінних. Тіло функції містить оператор присвоєння.

При фактичному виклику оголошених підпрограм результат можна отримати таким чином.

VAR

aa: masiv;

c, j: integer;

BEGIN

for j:=1 to n do

readln(aa[i]);

P_SUMA (aa, n, c);

c:= F_SUMA(aa,n);

Механізм передачі параметрів

При звернені до підпрограми, їм можуть передувати в якості вхідних даних деякі значення, крім того деякі вхідні дані можуть змінювати своє значення в тілі підпрограми і можуть повертатися в якості вихідних.

В Pascal використовується три види параметричних підпрограм;

1. Параметри-значення.

2. Параметри-змінні.

3. Без типові параметри.

Задання виду параметрів здійснюється формальним оголошенням заголовку підпрограм.

  1. Параметри-значення

Параметри-значення виступають в якості вхідних параметрів, тобто їх значення передається у підпрограму і в процесі її виконання не може змінюватися.

Оголошуються такі параметри шляхом переліку формальних ідентифікаторів та заданням їхнього параметру.

Оскільки значення таких параметрів не змінюється, то при фактичному виклику підпрограми в якості фактичних параметрів-значень можуть бути змінні, константи, зображення певного типу.

Наприклад

Програма, що реалізує операції над комплексними числами.

TYPE

Complex=record

Re, Im:real;

END;

PROCEDURE SUMA (a, b: complex; var c:complex);

BEGIN

c:=a.Re +b.Re;

c:=a.Im+b.Im;

END;

BEGIN

a.Re:=2;

a.Im:=2;

b.Re:=1;

b.Im:=-2;

SUMA (a,b,c);

END.

При формальному оголошенні процедури. Перші два параметри є параметрами-значеннями.

В тілі процедури описаний алгоритм у вигляді послідовності операторів. В програмі оголошено три змінні a, b, c, яким надаються двом із них.

При фактичному виклику процедури сума їй передаються в якості вхідних параметрів значення змінних a,b, результат змінна с.

В якості фактичних параметрів можуть використовуватися будь-які ідентифікатори типу complex.

Фактичні параметри можуть бути будь-які об’єкти програми, тип яких відповідає типу формальних параметрів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]