Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Параметры-значения






Заголовок процедуры может быть устроен так, что некоторые группы формальных параметров не содержат слова var. Например,

procedure str4(a, b, с: real; var r. real);

procedure prim(k: integer; var p: integer);

Формальные параметры, которые входят в группы, не содержащие слова var, называются формальными параметрами-значениями. В первом примере а, b, с -это формальные параметры-значения, a s - это формальный параметр-переменная. Во втором примере k - это формальный параметр-значение, а р - это формальный параметр-переменная.

Фактическим параметром, соответствующим такому формальному параметру-значению, при котором указан тип real, integer или char, может быть не только переменная. Так, если при формальном параметре-значении указан тип real (в первом примере такими формальными параметрами будут а, b, с), то соответствующим фактическим параметром может быть любое выражение, т. е. переменная типа real или integer, число или же более сложная конструкция, возможно, содержащая знаки арифметических операций и функций. Если указан тип integer (во втором примере таким формальным параметром будет k), то соответствующим фактическим параметром может быть любое выражение со значен ием типа integer. К процедуре str4 можно обратиться, например, так:

Str4(3.14 х, sqrt(10-sqr(x)), у)

к процедуре prim, в свою очередь, - так:

Prim(n - i, т)

Фактическим параметром, соответствующим такому формальному параметру-значению, при котором указам тип char, может быть не только переменная типа char, но и конкретный символ, взятый в кавычки, например 'а', '*',.

Пусть в некоторый момент выполнения программы происходит обращение к процедуре, имеющей параметры-значения. Тогда в начало составного оператора следующего в описании процедуры за заголовком (и, возможно, за описаниями локальных меток и локальных переменных) дли каждого формального параметра-значения вставляется оператор присваивания; слева от : = помещается формальный параметр-значение, справа - соответствующий ему фактический параметр. В получившийся составной оператор на место формальных параметров-переменных подставляются переменные, являющиеся фактическими параметрами. После этого оператор выполняется.

Если описанием процедуры str4 служит

procedure str4(a, b, с: real; var s: real);

var p: real;

Begin

p: =(a + b+c)/2;

S: = sqrt(p*(p -a)*(p - b)*(p - c))

End;

то обращение str4(3.1, х, sqrt(10-sqr(x)), у) повлечет выполнение составного оператора

Begin

а: =3.14;

b: = х;

с: = sqrt(10-sqr(x));

р: =(а+b+c)/2;

у: =: = sqrt(p*(p -a)*(p - b)*(p - c))

End

Из общих правил о параметрах-переменных и о параметрах-значениях, а также из приведенных примеров видно, что если некоторый формальный параметр изображает результат выполнения процедуры (как, например, параметр s в рассмотренных вариантах процедуры вычисления площади треугольника), то этот формальный параметр должен быть формальным параметром-переменной. Формальные параметры, при которых указан файловый тип, запрещается объявлять формальными параметрами-значениями, они обязаны быть формальными параметрами-переменными.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.