Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Экзаменационные вопросы по информатике + Ответы на Экзаменационные вопросы / Ответы на вопросы по информатике прошлых лет / 17. Процедуры и функции в Паскале способы обмена данными между вызывающей программой и процедурой или функцией

.doc
Скачиваний:
82
Добавлен:
10.05.2014
Размер:
26.62 Кб
Скачать

17. Процедуры и функции в Паскале: способы обмена данными между вызывающей программой и процедурой или функцией.

В Паскале подпрограммы делятся на процедуры и функции:

Синтаксически процедуры и функции состоят из заголовка (содержащего ключевое слово procedure или function, имени, за которым может следовать описание передаваемых параметров в скобках, тип возвращаемого значения через символ двоеточия для функций и точки с запятой), после заголовка следует тело, после которого ставится символ ;.

program mine(output);

var i : integer;

procedure print(var j: integer);

function next(k: integer): integer;

begin

next := k + 1

end;

begin

writeln('Всего: ', j);

j := next(j)

end;

begin

i := 1;

while i <= 10 do

print(i)

end.

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

Причём содержимое секций описания переменных, типов, констант, внешнего тела (процедуры, функции, программы), расположенных перед описанием процедуры/функции, доступны внутри неё. Также, в большинстве диалектов из процедуры можно обращаться к параметрам внешней процедуры.

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

Для обмена информацией между основной программой и процедурой используется один или несколько параметров вызова.

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

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

Нестандартные процедуры и функции необходимо описать, чтобы компилятор мог установить связь между оператором вызова и теми действиями, которые предусмотрены в процедуре (функции). Описание процедуры (функции) помещается в разделе описаний и внешне выглядит как программа, но вместо заголовка программы фигурирует заголовок процедуры (функции).

Соседние файлы в папке Ответы на вопросы по информатике прошлых лет