Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Параметры-переменные



Параметры-переменные в заголовке подпрограмм предваряются словом 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...