![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Для удобства передачи данных в процедуру и получения из нее результатов используются параметры, которые бывают формальными и фактическими.
Формальные параметры описываются в заголовке и используются при записи алгоритма в описании процедуры.
Фактические параметры указываются при вызове процедуры. При выполнении процедуры они подставляются в алгоритм на место формальных параметров.
Формальные и фактические параметры должны соответствовать друг другу по количеству, типу и порядку следования.
Формальные параметры, описанные в заголовке процедуры, больше нигде не описываются. Их описание похоже на описание данных в разделе переменных и может также содержать слово var. Существуют параметры-значения и параметры-переменные.
Параметры-значения описываются без слова var. Для их хранения на время выполнения подпрограммы выделяются дополнительные ячейки в памяти. При вызове подпрограммы значения фактических параметров копируются в ячейки формальных параметров и алгоритм подпрограммы обращается именно к этим копиям. После окончания работы подпрограммы доступ к этим ячейкам теряется. Следствиями этого для параметров-значений являются следующие факты:
в качестве фактического параметра при вызове подпрограммы в общем случае может быть выражение, в частности, переменная или константа;
если фактическим значением параметра была переменная, то изменение значения формального параметра при выполнении подпрограммы не влечет за собой никакого изменения значения фактического параметра;
параметры-значения могут использоваться только для передачи в подпрограмму исходных данных.
Параметры-переменные описываются со словом var. Для их хранения на время выполнения подпрограммы в памяти не выделяются дополнительные ячейки. При работе алгоритма подпрограммы переменные – формальные параметры – используют ячейки памяти фактических параметров и обращаются непосредственно к ним. Следствиями этого для параметров-переменных являются следующие факты:
в качестве фактического параметра при вызове подпрограммы может быть только переменная;
изменение значения формального параметра при выполнении подпрограммы приводит к такому же изменению значения фактического параметра;
параметры-переменные могут использоваться как для передачи в подпрограмму исходных данных, так и для передачи результата из подпрограммы в вызывающую программу.
Напишем новую программу, решающую задачу 1 с использованием подпрограммы с параметрами. Исходные данные подпрограммы (x, y) могут быть описаны как параметры-значения, а результат (z) должен быть описан как параметр-переменная.
Program Min2;
// Описание переменных
Var a,b,c, // исходные данные задачи
z: real; // результат процедуры и результат задачи
// Описание процедуры
Procedure Min (x,y: real; var z:real);
Begin
If x < y then z:= x
else z:= y
End;
Begin
// Ввод исходных данных задачи
Writeln(‘Введите три числа’);
Readln(a,b,c);
// Первый вызов процедуры
Min (a,b,z);
// После вызова процедуры z=min (a,b)
// Второй вызов процедуры
Min (z,c,z);
// Вывод результата
Writeln (‘Наименьшее из введенных чисел - ’, z);
End.
Пример
Найти разность R между максимальным и минимальным элементами массива
Дата публикования: 2014-12-08; Прочитано: 217 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!