а програми (не найвдалішою, але це поки неважливо) для обчислення x = (5! + 2!)/(5 +2)! br/>
Program factorial (input, output);
......
{далі нас цікавить опис процедури:}
Procedure FL (L: integer, var z: integer); {оголошення процедури, її ім'я, список формальних параметрів}
Begin
Z: = 1;
While L> 1 do
Begin
Z: = ZxL; {тіло процедури, яка також передбачає, що 0! і 1! = 1}
L: = l-1;
end;
end;
........
begin
........
{тепер розглянемо виклик процедури}
FL (5, a);
FL (2, b);
FL (2 +5, c);
..........
end.
У даному випадку l, z формальні параметри. До слова, їх не треба описувати в розділі глобальних змінних.
Фактичні параметри: 5, а, 2, b, 2 +5, c. В "основному" розділі VAR повинні бути описані а, b, c
При першому виклику процедури фактичний параметр 5 замінить формальний L, фактичний a замінить формальний z, у другому 2 замінить L, b замінить z.
У третьому відповідно 2 +5 замінить L, c замінить z. Для того, щоб остаточно розібратися в програмі, необхідно пояснити, якими бувають види формальних і фактичних параметрів, їх призначення.
Види параметрів.
В
За способом передачі даних параметри можна розділити на кілька категорій.
Будь-який з формальних параметрів підпрограми може бути або параметром-значенням, або параметром-змінною, або параметром-константою. Якщо параметри визначаються як параметри-змінні, перед ними необхідно ставити зарезервоване слово VAR, наприклад:
Procedure tide (var a: real) Тут параметр А - параметр-змінна. Тема процедури може бути влаштований так, що деякі групи формальних параметрів НЕ містять слова VAR. Наприклад:
Procedure qwerty (a, b, c: real; var s: real);
Формальні параметри, які входять до групи, що не містять слова VAR, називаються формальними параметрами-значеннями. p> Визначення формального параметра тим чи іншим способом істотно тільки для викликає програми: якщо формальний параметр оголошений як параметр-змінна, то при виклику підпрограми йому повинен відповідати фактичний параметр у вигляді змінної певного типу; якщо формальний параметр оголошений як параметр-значення, то при виклику йому може відповідати довільний вираз. Контроль за неухильним дотриманням цього правила здійснює компілятором Турбо Паскаля. p> Для того щоб зрозуміти, в яких випадках використовувати параметри значення, а в яких - параметри-змінні, розглянемо, як здійснюється заміна формальних параметрів на фактичні в момент звернення до підпрограми.
Якщо параметр визначений як параметр-значення, то перед викликом підпрограми це значення обчислюється, отриманий результат копіюється в тимчасову пам'ять і передається підпрограмі. Важливо врахувати, що навіть якщо в якості фактичного параметра вказано найпростіше ...