Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




 

Параметр переменная указывается в заголовке подпрограммы аналогично параметру - значению, но только перед именем параметра записывается слово Var. Действие слова Var распространяется до ближайшей точки с запятой, т.е. в пределах одной группы.

Например: Procedure F(i: integer; Var k,l: real; a: real);.

В этом примере i, a - параметры значения, k, l - параметры - переменные.

При передаче подпрограмме фактического параметра - переменной, ей передается адрес параметра, т.е. подпрограмма получает доступ к памяти вызывающей программы. Поэтому если в процессе выполнения подпрограммы значение такого фактического параметра будет изменено, изменение коснется данных основной программы.

Выходные параметры процедур всегда должны быть параметрами - переменными, иначе результаты вычислений не будут доступны вызывающей программе.

 

Параметр - массив

 

Массив это производный тип данных. Поэтому для того чтобы передать массив в качестве параметра в подпрограмму, необходимо в разделе типов программы ввести новый тип, задающий требуемый массив. Именем этого типа описываются формальный параметр в заголовке подпрограммы и соответствующий ему фактический параметр. Рассмотрим такой параметр на примере функции, определяющей максимальный элемент в одномерном массиве.

Program MAXIM;

{ задание нового типа - одномерного массива из 100

вещественных чисел }

Type vect = array[ 1..100 ] of real;

Var x: vect;

K: integer;

V: real;

{ функция, находящая значение максимального

элемента в массиве }

{ входной параметр a - исходный массив, n - число

элементов в нем }

Function Max(a: vect; n: integer): real;

Var I: integer;

S: real;

Begin

s:= a[1];

For i:= 1 to n Do

If a[i] > s Then s:= a[i];

Max:= s

End;

{ раздел операторов программы }

Begin

{ ввод массива x }

Writeln(‘введите массив’);

For k:= 1 to 100 Do

Readln(x[k]);

{ обращение к функции Max }

v:= Max(x, 100);

Write(‘max x = ‘, v)

End.

Функция Max из рассмотренного примера может быть вызвана только для массива, описанного типом vect.

Как написать подпрограмму, применимую для любого массива, рассмотрим в следующем разделе.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных