Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Параметры-переменные в заголовке подпрограмм предваряются словом VAR, например,
Procedure PRIM (var x,y:real);
Здесь формальные параметры х и у – параметры-переменные.
В этом случае значение параметров возвращаются после выполнения процедуры основной программе. Или, говоря другими словами, являются выходными параметрами.
!!!Тип фактического параметра-переменной должен совпадать с типом формального параметра.
Возможна смешенная форма.
Procedure PRIM (var x,y:real; z: real);
Здесь необходимо обратить внимание на то, что параметры различных этапов разделяются в заголовке точкой с запятой, а параметры одного типа – запятой.
Итак, разработке подпрограмм программисту предстоит решить, сколько и какие параметры требуется описать в процедуре или функции, а также какого типа должен быть каждый параметр: параметром-значением или параметром-переменной.
Для того, чтобы принять правильное решение необходимо подумать, будет ли в основной программе использоваться значение параметра, вычисленное в подпрограмме. Если будет, то результат необходимо будет вернуть основной программе, следовательно, параметр должен быть параметром-переменной.
Поясним это на примерах.
Пример
Необходимо в виде подпрограммы оформить вывод элементов одномерного массива на экран.
Рассуждения
1. Так как подпрограмма будет осуществлять именно набор действий (вывод элементов массива), а не производить вычисление, то оформлять подпрограмму следует в виде процедуры, а не функции.
2. Параметрами процедуры будут имя массива и количество элементов массива. Оба параметра необходимо подать процедуре на вход, то есть сообщить ей имя массива и количество его элементов. В основную программу не надо будет возвращать никаких значений. Все действия будут выполнены внутри процедуры. Следовательно, параметры процедуры будут параметрами-значениями.
Type
mas: array[1…100] of real;
….
procedure Vivod (A:mas, kol:byte);
{напомним, что здесь необходимо предварительное описание типа Массив}
Begin
for i:=1 to kol do
write(A[i]:5:2,’ ‘);
End;
Пример
Необходимо в виде подпрограммы оформить ввод элементов одномерного массива.
Рассуждения.
1. Так как подпрограмма будет осуществлять именно набор действий (ввод элементов массива), а не производить вычисление, то оформлять подпрограмму следует в виде процедуры, а не функции. Кроме того, результатом функции не может быть массив.
2. Параметрами процедуры будут имя массива и количество элементов массива. Количество элементов массива введем в основной программе, поэтому этот параметр необходимо подать на вход (передать) процедуре. Имя массива также необходимо передать процедуре. Однако, если количество элементов известно основной программе (так как ввод этого значения произведется в основном блоке), то значения элементов массива необходимо будет вернуть (передать) в основную программу процедуры. Следовательно, параметр – количество элементов массива – должен быть параметром-значением, а параметр – массив параметром-переменной.
Type
mas: array[1…100] of real;
….
procedure Vivod (A:mas; kol:byte);
{обратим внимание, здесь параметры различных типов в отличии от предыдущего примера разделены точкой с запятой}
Begin
for i:=1 to kol do
Begin
write(‘ Ведите‘, i, ‘элемент массива’);
readln(A[i]:5:2,’ ‘);
End;
End;
……
{ Основная программа }
……..
write(‘ Ведите количество элементов массива’);
Дата публикования: 2014-11-18; Прочитано: 198 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!