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

Глобальные и локальные переменные

При введение подпрограмм переменные разделяются глобальные и локальные переменные .

Глобальные переменные – объявляются в блоке переменных программы и видны во всей программе .

Локальные переменные – объявляются в блоке переменных подпрограмм и видны в момент выполнения подпрограммы .

Наряду со свойствами локальных переменных процедуры и функции могут модифицировать глобальные переменные . Глобальные переменные должны в этом случае быть описаны выше подпрограмм .При совпадении имен глобальных и локальных переменных (типов , констант ) сильнее по значению локальные переменные (типы, константы) и они будут модифицированы внутри подпрограмм . При одинаковых именных глобальных и локальных переменных могут модифицироваться глобальные переменные : «имя программы ». «имя переменной ».

Вызов подпрограмм .

« Имя »( «фактический параметр 1», «фактический параметр 2», …);

При вызове процедур в стек сохраняются данные переменных процедур JMP «подпрограмма » и переменных переходящих по адресу в подпрограмму ,где выполняется последовательность команд . Последовательно выполняется все вызовы подпрограмм команда возврата IRET извлекает из стека (данные основной программы ) и переходит в основную программу в подстроку команды подпрограммы .

Формальные и фактические параметры .

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

Пример .

Процедуры подсчета суммы элементов ,определение в массивах А и В . Процедуры вывода массива и суммы .

Type

Massiv_1=array[1..5] of byte ;

Const

A:massiv_1 = (1,2,3,4,5);

B:massiv_1 = (5,6,7,8,9);

Var

Sum :word;

I:byte;

Procedure Out_mas (p0:massiv-1);

Var

I:byte;

Begin

For i:=1to 5 do

Write (p0[i]:4);

Writeln;

Writeln(‘Сумма ’, sum:4);

End;

Procedure sum_mas (p1:massiv_1; pi:boolean);

Var

I:byte ;

Begin

Sum :=0;

For i:=1to 5 do

S

Если в процедуре убрать var i:byte; то {5} , так как в процедуре перемещает бы глобальную переменную и цикл прошел , а в глобальную переменную запишется 5

um:=sum +p[i];

If p2 =true then

Out_mas(p1);

End;

Begin

I:=20;

Sum_mas (a, true);

Sum_mas(b, false);

Write(i); {20}

End.

Параметры подпрограмм.

Параметры подпрограмм разделяются на параметры - значений , параметры – переменных , параметры – констант , (в предыдущем примере были применены параметры – значения ).