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

3.2. Функции.

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

<функция TPascal> ≡ FUNCTION <идентификатор> [(<список формал. параметров>)]:

<тип результата>;

<блок>;

<Идентификатор> – имя функции; <список формальных параметров> – перечень имен для обозначения аргументов функции с указанием их типа; <тип результата> – определение типа (скалярного) возвращаемого значения.

Описание функции в языке QBasic:

<функция QBasic> ≡ FUNCTION <идентификатор> [(<список формал. параметров>)]

<оператор>

{<оператор>}

<идентификатор> = <выражение>

END FUNCTION

Такое описание допускается размещать как до, так и после основной программы.

Если описание функции в программе на языке Бейсик помещается после окончания основной программы, то заголовок функции может быть объявлен в начале программы с помощью оператора объявления процедуры или функции, имеющего вид:

DECLARE FUNCTION <идентификатор> [(<список формальных параметров>)]

где <список формальных параметров> содержит имена аргументов функции с указанием их типов.

Обращение к функции в Паскале – идентификатор функции, за которым в скобках перечисляются фактические параметры (т.е. аргументы):

<идентификатор> [(<список фактических параметров>)]

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

Замена формальных параметров фактическими осуществляется в порядке их следования слева направо. Число и типы формальных и фактических параметров должны совпадать!

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

Пример 3.2.1.

Решим задачу из примера 3.1.1., используя вместо процедур функции.

Программа на QBasic:

FUNCTION St (X AS SINGLE, K AS INTEGER)

DEFINT I

DEFSNG P

P = 1

FOR I = 1 TO K

P = P*X

NEXT I

St = P

END FUNCTION

DIM A AS SINGLE, N AS INTEGER, Y AS SINGLE

INPUT “Введите основание и показатель: ”; A, N

IF N>0 THEN

Y = St (A, N)

ELSE

IF N<0 THEN Y = St (1/A, -N) ELSE Y = 1

END IF

PRINT A; “ в степени ”; N; “ = “; Y

END

Программа на TPascal:

VAR

A,Y: REAL;

N: INTEGER;

FUNCTION St (X: REAL; K: INTEGER): REAL;

VAR

I: INTEGER;

BEGIN

P:= 1;

FOR I:= 1 TO K DO

P:= P*X;

St:= P

END;

BEGIN

WRITE (‘Введите основание и показатель: ‘);

READLN (A, N);

IF N>0 THEN

Y:= St (A, N)

ELSE

IF N<0 THEN Y:= St (1/A, -N) ELSE Y:= 1;

WRITELN (A, ‘ в степени ‘, N, ‘ = ‘, Y)

END.

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