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

4.4 Контрольні питання

  1. Коли доцільно використовувати підпрограми?

  2. Перерахуйте відмінності функцій від процедур.

  3. Що таке локальні та глобальні змінні?

  4. З чого складаються і де розташовані описи підпрограм?

  5. Як викликаються процедури?

  6. Назвіть способи передачі параметрів у підпрограму.

  7. Як узгоджуються формальні і фактичні параметри?

  8. Чи може бути заданий фактичний параметр константою?

5 Підпрограми-функції

Мета роботи - оволодіння навичками написання підпрограм-функцій та звернення до них.

5.1 Підготовка до лабораторної роботи

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

5.2 Теоретичні відомості

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

Загальний вигляд запису функції:

Function <ім'я> (<список формальних параметрів>): <тип функції>;

<розділи описів і оголошень функції>;

begin

<розділ операторів функції, де повинен бути оператор:

ім'я: = вираз>

end;

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

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

FUNCTION F(S1:T1;S2:T2):T;

< описова частина >

BEGIN

. . .

F:=< вираз >

END;

де F- ім'я функції;

S1,S2 - імена формальних параметрів;

T1,T2 - типи параметрів;

T- тип функції.

При виклику ім'я функції разом з фактичними параметрами використовується у вирази. Наприклад, у правій частині оператора присвоювання К: = F (A, B), операторі виведення - WRITELN (F (A, B)) або в умовному операторі – IF F(A,B)> 0 THEN …

Приклад. Знайти cуму елементів квадратної матриці A (n, n).

Програма має вигляд:

PROGRAM LAB;

TYPE

AR=ARRAY[1..10,1..10] OF INTEGER;

VAR

A:AR; {массив А}

N: INTEGER; { }

{функція обчислення суми }

FUNCTION SUM(B:AR; M: INTEGER): INTEGER;

VAR

K, L: INTEGER; {індекси рядків, стовпців }

P: INTEGER; { сума }

BEGIN

P:=0; {початкове значення результату }

FOR K:=1 TO M DO

FOR L:=1 TO M DO

P:=P+B[K,L];

SUM:=P

END; { PR }

PROCEDURE VVOD(VAR B:AR; VAR M: INTEGER);

VAR

K, L: INTEGER; {індекси рядків, стовпців }

BEGIN

WRITELN(‘Введіть розмірність матриці’);

READLN(M);

FOR K:=1 TO M DO

FOR L:=1 TO M DO

B[K,L]:= RANDOM(20)-10;

END;

PROCEDURE OUT(CONST B:AR; M: INTEGER);

VAR

K, L: INTEGER; {індекси рядків, стовпців }

BEGIN

FOR K:=1 TO M DO

BEGIN

FOR L:=1 TO M DO

WRITE (B[K,L]:4);

WRITELN;

END;

END;

{ головна програма }

BEGIN

VVOD(A, N);

OUT(A, N);

WRITELN(‘ P=‘,PR(A,N):3); {вивід результату множення }

END.