Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие_С++_new.docx
Скачиваний:
69
Добавлен:
11.04.2015
Размер:
741.96 Кб
Скачать

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

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

<имя функции>(<список фактических параметров>);

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

Пример программы с функцией

Вычислить значение: Z =,

где а - заданное вещественное число.

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

где i – номер шага вычисления (умножения);

n – число шагов.

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

#include "stdafx.h"

float ST(float x, int n) // начало функции ST

{

int i;

float P;

P=1;

for( i=1; i<= n; i++)

P = P*x;

return P;

} // конец функции ST

void main()

{

float a,Z;

printf("Введите число а:");

scanf("%f",&a);

Z = (ST(a, 5) + ST(1/a, 5))/(2* ST(a, 7));

printf("Z=%f\n", Z);

}

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

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

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

Прототип функции по форме аналогичен заголовку функции, в конце которого ставится ";".

Например, рассмотрим предыдущую программу:

#include "stdafx.h"

// прототип функции ST

float ST(float , int );

// функция main

void main()

{ float a,Z;

printf("Введите число а:");

scanf("%f",&a);

Z = (ST(a, 5) + ST(1/a, 5))/(2* ST(a, 7));

printf("Z=%f\n", Z);

}

// функция ST

float ST(float x, int n)

{

int i;

float P;

P=1;

for( i=1; i<= n; i++)

P = P*x;

return P;

}

Согласование параметров

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