Читайте также:
|
|
{ // тело функции, оно включает описание переменных и //инструкции, описывающие алгоритм
}
список формальных параметров- определяет имена и типы переменных, которые формально называют входные и выходные параметры алгоритма функции; в списке они разделены запятыми, для каждого указываются имя и тип.
Тип_результата- тип возвращаемого функцией значения, он м.б. любой, кроме массивов и функций. Если функция не должна возвращать значение, указывается тип void.
Возврат результата из функции реализуется в языке оператором
return [выражение];
Этих операторов м.б. несколько по ходу алгоритма (определяется потребностью алгоритма). Если у функции тип void, выражение в операторе return не указывается, да и сам return в конце тела функции м.б.опущен.
Например, описание функции, вычисляющей НОД двух чисел: {1}вариант- функция получает на входе два числа и возвращает наибольший общий делитель - результат целого типа.
int nod (int a, int b)
{int r0,r1,r2;
r1=abs(a); r2=abs(b);
while (r2>0)
{r0=r1; r1=r2; r2=r0 % r1;
}
return r1;
}
nod(20,12)=nod(12,8)=nod(8,4)=nod(4,0)=4
20 12 8 4 0
Здесь строится последовательность a,b, и остатков, пока не получится остаток =0, т.е. нужны 3 рабочие переменные.
Вызов функции - выполняет конструкция
имя_функции (список фактических параметров (или аргументов)) В языке эта конструкция является выражением типа возвращаемого функцией значения. Например, nod (20, 12);
список фактических параметров – фактические значения параметров, для которых должна выполняться функция. Эти значения передаются функции при вызове.
имя_функции – указывает, какой функции передается управление. Вызов функции может находиться в любом месте программы, где допустимо выражение того типа, который формирует функция, в этом месте это значение будет получено и будет использоваться.
Конструкция вызова выполняет ещё одну функцию, она запоминает адрес возврата – это адрес оператора, стоящего за вызовом функции, и по окончании выполнения алгоритма функции по этому адресу передаётся управление.
Все переменные, описанные в функции и её формальные параметры – есть локальные переменные, их область действия –
блок в теле функции.
Пример использования функции nod (int a, int b):
int main()
{int x,y,z;
cout<<”à x,y\n”;
cin>>x>>y;
cout<< nod(x,y)<<endl;
//либо z= nod(x,y);cout<<z<<endl;
//либо if (nod(x,y)==1) cout <<x<<”и”<<y<<”-взаимно просты”<<endl;
Return 0;
}
Как сформировать программу?
#include<iostream>
using namespace std;
Дата добавления: 2014-12-20; просмотров: 58 | Поможем написать вашу работу | Нарушение авторских прав |