Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_ответы.docx
Скачиваний:
14
Добавлен:
22.09.2019
Размер:
138.16 Кб
Скачать

7. Способы передачи параметров. Формальные и фактич. Параметры.

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

Передача параметров:

  1. Вычисляются выражения, стоящие на месте фактических параметров.

  2. В памяти выделяется место под формальные параметры в соответствии с их типами.

  3. Формальным параметрам присваиваются значения фактических

  4. Проверка типов ( при их несоответствии выдается диагностическое сообщение)

Классификация

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

Подпрограмма работает с копиями фактических параметров, и доступа к исходным значениям аргументов у неё нет.

Могут быть использованы только в качестве входных данных подпрограммы.

  1. Параметры-переменные (var-параметры)

Для передачи параметров используется ключевое слово var, помещаемое в список параметров процедуры или функции.

Подпрограмма обращается к адресам фактических параметров.

Могут быть использованы в качестве входных и выходных данных.

  1. Параметры-константы

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

8. Параметры – значения. Механизм работы.

Формальные параметры, которые входят в группы, не содержащие слова VAR, называются формальными параметрами-значениями, при вызове им может соответствовать произвольное выражение.

Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передается подпрограмме. Важно учесть, что даже если в качестве фактического параметра указано простейшее выражение в виде переменной или константы, все равно подпрограмме будет передана лишь копия переменной (константы).

Таким образом, назначение параметра-значения – передача данных из программы в подпрограмму. Любые возможные изменения в подпрограмме параметра-значения никак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменение параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе. При параметрах-значениях, подпрограмма работает с копиями фактических параметров, и доступа к исходным значениям аргументов у неё нет. Они могут быть использованы только в качестве входных данных подпрограммы.