Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
5
Добавлен:
04.11.2018
Размер:
7.76 Mб
Скачать

Var I: Word;

Begin

WriteLn(‘i=’,i); неопределенное значение переменной i

WriteLn(‘n=’,n);

n:= n + k;

Func:=n;

End;

Переменной i будет присвоено заранее неизвестное значение. При первом обращении к функции переменная n, определенная в CONST, будет равна нулю, и при каждом последующем обращении она будет увеличиваться на k.

  • время жизни такой переменной – время работы всей программы: значения этой переменной сохраняются между вызовами подпрограммы,

  • область действия такой переменной – подпрограмма, в которой она описана, то есть вне подпрограммы к этой переменной обратиться нельзя,

10. локальные и глобальные переменные могут совпадать по имени; в этом случае в функции работают локальные переменные,

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

в качестве формальных параметров функций нельзя использовать конкретные значения (числа, символы), элементы массивов, поля записей, выражения и стандартные функции,

12. в качестве фактических параметров функций можно использовать константы, переменные, имена и элементы массивов, множеств, файлов, имена и поля записей, комбинированных структур, а также выражения, стандартные функции и имена ранее описанных функций,

13. значения входных (фактических) параметров функций не изменяются, даже если соответствующие им формальные параметры изменяются внутри функции; такие не изменяющиеся функцией входные переменные называются параметрами-значениями. При использовании параметров-значений в функцию передаются не сами фактические параметры, а их копии. Поэтому сами параметры остаются всегда неизменными:

Program Primer;

Uses CRT;

Var a, b, c : Integer;

Function Sum(x, y : Integer) : Integer; x, y – параметры-значения

Begin

x := x + 1; изменение значений формальных

y := y + 1; параметров в функции

Sum := x + y;

End;

Begin

a := 1;

b := 1;

c := Sum(a, b);

WriteLn(‘a=’, a, ‘ b=’, b);

ReadLn;

End.

Входные значения фактических параметров x = 1, y = 1. После выполнения программы они останутся теми же, хотя внутри функции соответствующие им формальные параметры изменились,

  1. в качестве входных переменных можно использовать параметры переменные; их значения могут изменяться функцией, и эти изменения сохраняются при выходе из функции. Они описываются в списке формальных параметров функции с добавлением слова Var:

Program Primer;

Uses CRT;

Var a, b, c : Integer;

Function Sum(Var x, y : Integer) : Integer; x, y – параметры-переменные

Begin

x := x + 1; изменение значений формальных

y := y + 1; параметров в функции

Sum := x + y;

End;

Begin

a := 1;

b := 1;

c := Sum(a, b);

WriteLn(‘a=’, a, ‘ b=’, b);

ReadLn;

End.

Входные значения фактических параметров x = 1, y = 1. После выполнения программы они изменятся и примут значения x = 2, y = 2.

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

Зачастую использование параметров-переменных может тоже привести к непредсказуемым результатам вычислений:

Program Primer;

Uses CRT;