Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 13--18.doc
Скачиваний:
25
Добавлен:
24.04.2019
Размер:
558.08 Кб
Скачать
  1. Порядок создания и использования функций

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

  • любого порядкового типа;

  • любого вещественного типа;

  • стандартного типа String;

  • любого указателя, в том числе и типа PСhar.

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

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

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

При объявлении описание функции производится в следующем виде:

(Function <заголовок> ([список формальных параметров]: <тип возвращаемого параметра>

<[раздел описаний функции]>

<Тело функции>);

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

Пример. Функция вычисляет сумму двух действительных чисел, передаваемых в функцию в виде фактических параметров.

Объявление функции:

Function Summ (Const A,B: Real): Real;

Begin Summ:=A+B;

End;

Использование функции в основной программе: в первой строке переменной Х присваивается сумма константы, представленной цифрой 4 и значения переменной Y, а во второй строке переменной Z присваивается сумма значений переменных Y и X:

X:= Summ (4,Y);

Z:=Summ(Y,X); .

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

При изучении процедур и функций были использованы два термина «формальные параметры» и «фактические параметры»:

Формальные параметры – показывают, в какой ФОРМЕ будут передаваться параметры в подпрограмму;

Фактические параметры – реальные параметры, имеющие ФАКТИЧЕСКИЕ значения, передаваемые в подпрограмму или возвращаемые из нее.

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

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

  • Параметры – переменные (передаются через адрес, поэтому могут изменяться, VAR);

  • Параметры – константы (передаются через адрес, но контроль от изменения, CONST);

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

При объявлении каждого формального параметра следует указать имя и, как правило, тип, а в случае параметра переменной или параметра-константы – его категорию.

Имена параметров могут быть любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недоступным для непосредственного использования подпрограммой.

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

Например, нельзя записать

Function Max(A: array[1..100] of real): real;

Чтобы правильно записать этот заголовок, следует в основной программе ввести тип массив, а затем использовать его в заголовке:

Type tArr = array[1..100] of real;

..

Function Max(A:tArr): real;

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

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