![]() ТОР 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. Как написать подпрограмму, применимую для любого массива, рассмотрим в следующем разделе. Не нашли, что искали? Воспользуйтесь поиском:
|