Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
33
Добавлен:
04.06.2015
Размер:
7.33 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;