Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_red._sent2 (2).doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
1.07 Mб
Скачать

Тема 9. Подпрограммы (Процедуры. Функции)

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

В Паскале определяют два типа подпрограмм – процедуры и функции. Любая подпрограмма обладает той же структурой, которой обладает и вся программа.

Основное, не формальное различие между процедурой и функцией состоит в том, что процедура только выполняет какую – либо последовательность действий, не возращая результат работы в основною программу, а функция и выполняет действие и возвращает результат. Например, вызов функции M:=MIN(X,Y) вернет в основную программу значение наименьшего из двух чисел и это значение будет присвоено переменной М.

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

Заголовок процедуры имеет вид:

PROCEDURE < имя > [ (< сп.ф.п.>)];

Заголовок функции :

FUNCTION < имя > [ (< сп.ф.п.>)]: <тип>;

Где < имя > - имя подпрограммы – правильный идентификатор;

< сп.ф.п.> - список формальных параметров;

<тип> - тип, возвращаемого функцией результата.

Описание подпрограммы - функции располагается в разделе описаний программы, другой подпрограммы или модуля и начинается с заголовка:

FUNCTION name of function (arguments_list): type_of_result

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

Внутренняя структура функции аналогична структуре программы – сначала описания, а затем исполняемые операторы. Завершается подпрограмма-функция зарезервированным словом end, за которым следует символ «точка с запятой». В теле функции присутствует оператор присваивания, в левой части которого указано имя функции, а в правой находится выражение. Обращение к подпрограмме – функции производится путем указания ее имени в составе какого-либо выражения, например арифметического, если функция возвращает числовое значение.

Особенность функции в том, что результат ее выполнения – единственное значение, «носителем» которого является ее идентификатор. Допустимыми типами результата являются следующие:

  • все разновидности вещественного типа;

  • строковый тип;

  • скалярный тип (все разновидности целого типа, булев, символьный, перчисляемый тип, отрезок типа);

  • указатель.

Пример 1:

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

Var

X, y : real;

Function Power (a, b: real): real;

Begin {Power}

If a>0 then

Power: = exp (b * ln(a))

Else

if a<0 then

Power: =exp (b * ln (abs (a)))

Else

if b=0 then

Power:=1

Else

Power:=0

End {Power};

begin {main}

repeat

readln (x, y);

writeln (Power (x, y):12:10, power(x,-y):15:10);

until EOF

end {main}.

A, b –формальные параметры;

Х,у при вызове - фактические.

Процедура PROCEDURE < имя > [ (< сп.ф.п.>)];

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

Досрочный выход из подпрограммы возможен только с помощью EXIT.

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

  • параметры – значения (эти параметры в основной программе подпрограммой не изменяются);

  • параметры – переменные (эти параметры подпрограмма может изменить в основной программе);

  • параметры – константы;

  • параметры – процедуры и парметры –функции.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]