Система программирования Турбо Паскаль. Воробьева А.П - 48 стр.

UptoLike

Составители: 

97
выполнения процедуры Р
с фактическим результатом. Посколь-
ку в задаче требуется вычислить три раза операцию возведения в
степень (
r1, r2, r3), то в основной программе надо записать три
оператора вызова процедуры.
Program Primer_1;
Var
a, r1, r2, r3, Z: real;
Procedure ST(x: real; n: integer; var P: real);
var
i: integer;
begin
P := 1;
for i := 1 to n do P := Px;
end;
Begin {начало основной программы}
writeln(‘Введите число а’);
read(a);
ST(a, 5, r1);
ST(1/a, 5, r2);
ST(a, 7, r3);
Z := (r1 + r2)/(2r3);
writeln(‘Z=’, Z:6:2);
End.
В заголовке процедуры, заданной именем
ST, в списке фор-
мальных параметров указаны два
входных формальных парамет-
ра (
x, n) и один выходной (P).
В процессе выполнения программы после ввода заданного
числа
a три раза последовательно вызывается процедура ST. При
каждом вызове происходит соответствующая замена формальных
параметров (
x, n) на фактические, и вычисленный в процедуре ре-
зультат через формальный параметр
P присваивается фактиче-
ским переменным
r1, r2, r3 соответственно. Далее вычисляется
значение
Z и выводится на экран.
98
Согласование параметров
Формальные и фактические параметры должны быть согла-
сованы друг с другом по количеству, типу и порядку следования.
Это означает, что количество формальных параметров должно
быть равно количеству фактических параметров и каждый фор-
мальный параметр должен иметь тот же тип и занимать в списке
то же место, что и соответствующий ему фактический
параметр.
Механизм замены параметров
В списке формальных параметров выделяется два вида пара-
метров: параметры-значения и параметры-переменные. Механизм
замены для каждого вида параметров различен.
Параметры-значения играют роль входных параметров.
Фактическим параметром, соответствующим параметру-
значению, может быть константа, переменная или выражение.
Параметры-значения являются локальными переменными для
процедуры. Для них в памяти компьютера временно выделяются
ячейки, в которые передаются копии вычисленных значений фак-
тических параметров. При выполнении процедуры параметры-
значения могут изменяться, однако соответствующие им факти-
ческие параметры остаются без
изменения.
Параметры-переменные являются выходными парамет-
рами процедуры. Перед параметрами-переменными в списке ста-
вится служебное слово
var. В качестве соответствующих им фак-
тических параметров могут быть только переменные. При вызове
процедуры происходит замена имени параметра-переменной на
имя фактической переменной, т.е. в процедуру передается адрес
фактической переменной. Все действия в процедуре выполняются
непосредственно над фактическим параметром, а не его копией.
Поэтому любое изменение формального параметра-переменной
приводит к изменению соответствующего ему фактического па-
раметра.
Рассмотрим два примера, иллюстрирующих понятия пара-
метра-значения и параметра-переменной.
выполнения процедуры Р – с фактическим результатом. Посколь-                          Согласование параметров
ку в задаче требуется вычислить три раза операцию возведения в
                                                                      Формальные и фактические параметры должны быть согла-
степень (r1, r2, r3), то в основной программе надо записать три
                                                                  сованы друг с другом по количеству, типу и порядку следования.
оператора вызова процедуры.
                                                                  Это означает, что количество формальных параметров должно
               Program Primer_1;                                  быть равно количеству фактических параметров и каждый фор-
               Var                                                мальный параметр должен иметь тот же тип и занимать в списке
                a, r1, r2, r3, Z: real;                           то же место, что и соответствующий ему фактический параметр.
               Procedure ST(x: real; n: integer; var P: real);                     Механизм замены параметров
                var
                                                                      В списке формальных параметров выделяется два вида пара-
                    i: integer;
                                                                  метров: параметры-значения и параметры-переменные. Механизм
                begin
                                                                  замены для каждого вида параметров различен.
                    P := 1;
                                                                      Параметры-значения играют роль входных параметров.
                    for i := 1 to n do P := P∗x;                  Фактическим      параметром,    соответствующим     параметру-
                end;                                              значению, может быть константа, переменная или выражение.
               Begin {начало основной программы}                  Параметры-значения являются локальными переменными для
                writeln(‘Введите число а’);                       процедуры. Для них в памяти компьютера временно выделяются
                read(a);                                          ячейки, в которые передаются копии вычисленных значений фак-
                ST(a, 5, r1);                                     тических параметров. При выполнении процедуры параметры-
                ST(1/a, 5, r2);                                   значения могут изменяться, однако соответствующие им факти-
                ST(a, 7, r3);                                     ческие параметры остаются без изменения.
                Z := (r1 + r2)/(2∗r3);                                Параметры-переменные являются выходными парамет-
                writeln(‘Z=’, Z:6:2);                             рами процедуры. Перед параметрами-переменными в списке ста-
               End.                                               вится служебное слово var. В качестве соответствующих им фак-
     В заголовке процедуры, заданной именем ST, в списке фор-     тических параметров могут быть только переменные. При вызове
мальных параметров указаны два входных формальных парамет-        процедуры происходит замена имени параметра-переменной на
ра (x, n) и один выходной (P).                                    имя фактической переменной, т.е. в процедуру передается адрес
     В процессе выполнения программы после ввода заданного        фактической переменной. Все действия в процедуре выполняются
числа a три раза последовательно вызывается процедура ST. При     непосредственно над фактическим параметром, а не его копией.
каждом вызове происходит соответствующая замена формальных        Поэтому любое изменение формального параметра-переменной
параметров (x, n) на фактические, и вычисленный в процедуре ре-   приводит к изменению соответствующего ему фактического па-
зультат через формальный параметр P присваивается фактиче-        раметра.
ским переменным r1, r2, r3 соответственно. Далее вычисляется          Рассмотрим два примера, иллюстрирующих понятия пара-
значение Z и выводится на экран.                                  метра-значения и параметра-переменной.




                                97                                                              98