Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
    1. Способы передачи параметров. Виды параметров

Список формальных параметров подпрограммы может состоять из параметров-значений, параметров-переменных и параметров-констант, описанных в произвольном порядке.

В языке Pascal реализовано два способа передачи параметров:

  1. передача по значению  для передачи параметров-значений;

  2. передача по ссылке  для передачи параметров-переменных и параметров-констант.

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

  1. Описание формальных параметров-значений: (имя1, имя2, …: имя_типа); Например, function Sum(x,y : integer)

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

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

  4. Подпрограмма может изменять полученное значение фактического параметра, и это никак не отражается на значениях переменных, входящих в выражение фактического параметра.

  5. Формальный параметр-значение используется для передачи в подпрограмму значений выражений.

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

  1. Описание формальных параметров-переменных имеет ключевое слово var: (var имя1, имя2, …: имя_типа);

  2. Фактическим параметром может быть только переменная, тип которой эквивалентен типу формального параметра.

  3. В подпрограмму передается адрес фактического параметра.

  4. Все действия с формальным параметром при выполнении подпрограммы производятся с переменной, которая является фактическим параметром. Изменение параметра-переменной приводит к изменению фактического параметра в вызывающей программе.

  5. Формальный параметр-переменная используется, когда этот параметр является результатом работы подпрограммы.

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

  1. Описание формальных параметров-констант имеет ключевое слово const: (const имя1, имя2, …: имя_типа);

  2. Фактическим параметром может быть переменная или константа, тип которой эквивалентен типу формального параметра.

  3. В подпрограмму передается адрес фактического параметра.

  4. Подпрограмма может брать значение по этому адресу, но присвоить значение по этому адресу не может. Например, в подпрограмме может быть оператор w:=имя1, но не может быть оператора имя1:=выражение.

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

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

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

Параметр-константа

Описание формального параметра в заголовке подпрограммы

имя : имя_типа

var имя : имя_типа

const имя :имя_типа

Фактический параметр

выражение, в частности, переменная или константа

переменная

переменная или константа

Что передается в подпрограмму

значение выражения

адрес переменной

адрес переменной или константы

Возможность изменить фактический параметр при работе подпрограммы

нельзя

Изменяется, если в подпрограмме есть оператор присваивания имя:=выражение или оператор ввода read(имя). В этих случаях изменяется значение фактического параметра

нельзя