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

6.3 Локальні та глобальні змінні

Локальні змінні − це змінні, які описуються всередині підпрограми і можуть бути використані тільки цією підпрограмою.

Глобальні змінні − це змінні, які описуються в головній програмі і можуть бути використані як головною програмою, так і будь-якою з підпрограм.

Розглянемо приклад програми, яка використовує функцію.

Приклад 6.3.1. Обчислити математичний вираз , результат вивести на друк.

program Pr_631;

var a, b, c, s, t: integer; {опис глобальних змінних}

function StepN (a, n: integer): integer;

var an, i: integer; {опис локальних змінних}

begin

an:= l;

for i:=l to n do an:= an*a;

StepN:= an

end;

begin

writeln('a, b, s, t: ');

read (a, b, s, t);

c:= StepN(a, s)+StepN(b, t)+StepN((a+b)3);

write('с=', c:5:2)

end.

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

У прикладі 6.3.1 а і n − формальні параметри. Фактичні параметри вказуються при кожному зверненні до функції StepN. Тип фактичних параметрів визначається типом формальних параметрів. Перед обчисленням функції формальним параметрам присвоюються значення фактичних параметрів. Фактичними параметрами можуть бути не лише константи і змінні, але також і вирази.

Наведемо ще один приклад підпрограми-функції.

Приклад 6.3.2. Написати підпрограму-функцію для обчислення гіперболічного косинуса: ch(ехр(х)+ехр(-х))/2.

function Ch (Т: real) : real;

begin

Ch:=(exp(T)+exp(-T))/2

end;

6.4 Процедури

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

Загальний вигляд опису процедури:

PROCEDURE <ім'я процедури> (<формальні параметри: тип);

Розглянемо приклад підпрограми-функції.

Приклад 6.4. Написати процедуру знаходження max і min елемента з двох цілих чисел а і b.

procedure minmax (aa, bb: integer; var min, max: integer);

begin

if aa>bb then

begin

min:= bb;

max:= aa;

end

else

begin

max:= aa;

min:= bb;

end

end.

Тут aa і bb − параметри-значення; a min, max − параметри-змінні.

Серед параметрів процедури виділяють параметри-значення і параметри-змінні. Параметри-значення виконують роль вхідних параметрів процедури. Вони можуть набувати значень фактичних параметрів, але не можуть передавати свої значення фактичним параметрам. Параметри-змінні виконують роль як вхідних, так і вихідних параметрів процедури. Вони можуть набувати значень фактичних параметрів, змінювати їх у процедурі та повертати нові значення фактичним параметрам. Для виділення параметрів-змінних перед ними ставиться слово VAR у формальних параметрах [1].

Приклад 6.5. Написати процедуру, яка обчислює квадрат і квадратний корінь суми трьох змінних речового типу а, b, c і присвоює отримані результати формальним змінним x і y відповідно.

procedure expres (a, b, c: real; var х, у: real);

var z: real;

begin

z:=a+b+c;

x:=sqr(z);

y:=sqrt(z);

end;

Цю процедуру можна викликати таким чином: expres(25.4, 53.6, 30, xl, yl).

В даному випадку процедура expres вичислить квадрат і квадратний корінь суми трьох змінних 16.4, 53.6, 30 і результати присвоїть фактичним змінним xl і у1 відповідно.

Допускається однакове позначення фактичних і формальних параметрів. Тип фактичних параметрів повинен відповідати типу формальних параметрів.

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

Приклад 6.6. Написати процедуру, яка міняє місцями значення змінних а і b. В даному випадку параметри-змінні а і b виконують роль як вхідних, так і вихідних параметрів:

procedure excheng (var a, b: integer);

var t: integer;

begin

t:=a;

a:=b;

b:=t;

end;