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

Вычислить значение: 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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: