Підпрограми
Rand1 := t
end;
function NextRand;
begin
if First then
begin First := false; V := Rand1 end
else V := ( a*V+ c ) mod m;
NextRand := V
end;
Begin First := true
End.
Як бачимо, змінні V та First стали глобальними в модулі і доступними в його підпрограмах, але за його межами їх "не видно". Можна сказати, що їх означення локалізовані в модулі.
7. Підпрограми як параметри
У мові Паскаль параметрами підпрограм можуть бути не тільки змінні, але й підпрограми.
Розглянемо приклад. Нам потрібно надрукувати три таблиці значень трьох математичних функцій на заданому відрізку [a; b], де a>0, у точках, розташованих із заданим кроком h. Функції такі:
sh(x) = (ex-e-x)/2, ch(x) = (ex+e-x)/2,
th(x) = (ex-e-x)/(ex+e-x) = (e2x-1)/(e2x+1) .
У програмі можна записати функції з іменами sh, ch і th, що задають необхідні обчислення, та означити змінні a, b, h, n, k, x. Тоді оператори тіла програми можуть мати такий вигляд:
Readln(a, b, h);
n:= trunc((b-a)/h);
for k:=0 to n do
begin x:=a+k*h; writeln(x, ' ', sh(x)) end;
for k:=0 to n do
begin x:=a+k*h; writeln(x, ' ', ch(x)) end;