Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція_проц_ф_ї.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
73.73 Кб
Скачать

Процедури з параметрами

У процедурі можна оголошувати константи, змінні, інші процедури і функції. Розділ опису в процедурах має таку саму структуру, як і в основній програмі.

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

Змінні, які використовуються в процедурі, але описані поза нею, назива­ються глобальними по відношенню до даної процедури. Будь-які зміни зна­чень глобальних змінних всередині процедури змінюють значення цих змінних поза процедурою.

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

Program LOKALIZACIA;

Var A,B: integer;

procedure LOKAL;

var A,X:char;

begin

А:='!';

Х:='?';

В:=В+1;

end;

begin

А:=0;

В:=100;

LOKAL;

writeln('a=',A,' b=',B);

end.

Змінна X — локальна для процедури LOKAL, тому головна програма не може змінити її значення або звернутись до неї.

Змінна В — глобальна для процедури LOKAL, вона відома і в програмі, і в процедурі. Поскільки в процедурі немає іншого оголошення для змінної В, то всі зміни, які відбуваються зі значенням В в процедурі, зберігаються і після виходу з неї.

Змінна А в основній програмі належить до цілого типу, але в процедурі LOKAL є своя власна змінна А, яка належить до типу char. Змінна А з голов­ної програми недоступна в процедурі LOKAL. Всі зміни, які відбуваються зі значенням А в процедурі, втрачають свій зміст при виході з неї.

Отже, в результаті виконання програми LOKAL на екран будуть виведені два числа: а=0 і b= 101.

В Турбо-Паскалі введено розширення мови, завдяки чому в процедурі можуть бути доступними як локальні відносно неї змінні, так і змінні з таки­ми ж іменами, які описані в основній програмі. Для того, щоб реалізувати таку можливість, звернення до змінних в процедурі виконується таким чи­ном. До локальних змінних звернення реалізується просто по їх імені (тобто як в стандартній мові). Для звернення до змінних, які однойменні з локаль­ними, але введені в основній програмі, використовується така форма:

ім'я програми. ім'я змінної

ім'я програми — ім'я програми, яке вказано в заголовку програми "program ..."

ім'я змінної — ідентифікатор змінної, вказаний в розділі опису змінних — "var ...."

З врахуванням цього програму LOKALIZACIA можна перетворити так, щоб в процедурі LOKAL були доступні однойменні змінні, описані як в самій процедурі, так і в основній програмі.

Звернення до процедур і функцій

Program LOKALIZACIA 1;

Var A,B: integer;

procedure LOKAL;

var A,X: char;

begin

A:= '!';

X:= '?';

B:=B+1;

LOKALIZACIAl.A:=LOKALIZACIA1.A+12;

end;

begin

A:=0;

B:=100;

LOKAL;

writeln('a=‘,A,‘b=‘,b);

end.

В результаті виконання програми Lokalizacial на екрані появляться такі значення змінних: а=12 і b=101.