Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_2.doc
Скачиваний:
6
Добавлен:
08.11.2018
Размер:
324.61 Кб
Скачать

Процедуры и функции

В языке Паскаль существуют подпрограммы двух видов: процедуры и функции. Структура подпрограммы аналогична структуре всей программы. Имя подпрограммы обязательно. Заканчивается подпрограмма end; .

Подпрограмма должна быть описана (объявлена) до того, как она будет вызвана (использована) в программе или другой подпрограмме.

Все параметры, используемые в подпрограмме, делятся на локальные и глобальные. Первые объявлены внутри подпрограммы и доступны только ей самой. Вторые объявлены в программе и доступны как программе, так и всем её подпрограммам.

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

Глобальные параметры могут использоваться в подпрограмме двояким образом:

  • непосредственное обращение к глобальным параметрам (по имени, идентификатору);

  • использование механизмов формальных параметров.

Процедуры

Процедура предназначена для выполнения некоторой законченной последовательности действий. Начинается с заголовка, он обязателен. Состоит из зарезервированного слова procedure, за ним следует имя процедуры, далее в круглых скобках - список формальных параметров.

procedure <имя процедуры> (<список формальных параметров>);

Пример

type

tarr=array [1..100] of integer;

procedure InpInt( var mas:tarr; n:integer);

var

i: integer ; { локальный параметр}

begin

writeln(‘введите ’,n,’ целых чисел’);

for i:=1 to n do

read(mas[i]);

end;

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

Пример Вызов процедуры InpInt для ввода k целых чисел в массив m.

InpInt(m, k);

k-параметр целого типа, m-массив типа tarr.

Функции

Функции предназначены для вычисления какого-либо параметра. Отметим два основных отличия от процедуры

  • заголовок состоит из зарезервированного слова function, за ним в круглых скобках – список формальных параметров, затем через двоеточие записывается тип функции - тип возвращаемого параметра;

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

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

Пример Функция вычисления факториала числа n.

function factorial (n: Byte): longint;

var fact:longint;

i:byte;

begin

fact:=n;

for i:=n-1 downto 2 do

fact:=fact*i;

factorial:=fact;

end;

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

Пример

Part: =sqr (t)/factorial (i),

где

sqr (t) – вызов стандартной функции возведения в квадрат с фактическим параметром t;

factorial (i) - вызов функции, вычисляющей факториал с фактическим параметром i.