Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Информатика.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
738.82 Кб
Скачать

1. Структура подпрограмм

Структура подпрограмм на ПАСКАЛЕ имеет вид:

PROCEDURE (либо FUNCTION) <имя> - заголовок;

LABEL - раздел описания меток

CONST - раздел описания констант

TYPE - раздел описания типов

VAR - раздел описания переменных

BEGIN

<оператор>

END;

Как видно отсюда, она аналогична структуре основной программы. Отличие лишь в заголовке и в том, что программный модуль заканчивается точкой с запятой ”;”, а не точкой, как в основной программе.

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

2. Функция

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

2.1. Структура функции

Функция состоит из заголовка функции и ее тела. Заголовок функции имеет вид:

FUNCTION имя (P1:T1; ... Pn:Tn):TR;

FUNCTION - ключевое слово;

имя - имя функции, задаваемое пользователем;

Pi - необязательный список формальных параметров (исходных данных); в списке формальные параметры, в качестве которых могут быть использованы имена переменных, других подпрограмм, перечисляются через запятую.

Ti - тип параметров( REAL, INTEGER и т.п.);

TR - тип результата (тип имени функции).

Пример 1

FUNCTION FI (X,Y:REAL; R:INTEGER):REAL;

Заголовок функции с именем FI, тип функции задан ключевым словом REAL; формальные параметры X и Y описаны как переменные вещественного типа, параметр R как переменная целого типа.

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

Общая структура функции может быть записана так:

FUNCTION имя (P1:T1; P2:T2;. Pn:Tn):TR;

. . .

разделы описаний

. . .

BEGIN

оператор

. . .

оператор

имя := результат;

END;

2.2. Обращение к функции

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

Структура обращения к функции имеет вид

имя(b1, b2,... bn);

где имя - имя вызываемой функции, b1, b2,... bn - список фактических параметров, численные значения которых передаются в функцию.

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

Пример 2

PROGRAM AL;

VAR A,B,C:REAL;

FUNCTION FI (X :REAL):REAL;

BEGIN

F:=X*X-2*X+1.5;

END;

BEGIN

READ (A,B,C);

Z:=(F(A)+F(B))/F(C);

WRITE (Z);

END.

В программе описана функция с именем F, вещественного типа (REAL). В качестве формального параметра использована переменная X , вещественного типа. Обращения к функции F(A),F(B) и F(C) выполнены в операторе присваивания, здесь A,B,C -фактические параметры. В результате выполнения этого оператора переменной Z будет присвоено численное значение выражения:

A2-2A+1,5+B2-2В+1,5

C2-2C+1,5

При выполнении происходит замещение формальных параметров фактическими значениями