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

cout << Fact1 << "  " << Fact2 <<  "  "                                     <<Fact3  << endl;

return 0;

}

long  Iter_Fact (int n)                        //определение функции

{ long  f=1;

for (int i=2; i<=n; i++)

f*= i;

return (f);

}

Приведенные вызовы функции показывают различные способы задания аргумента; при этом значения, возвращаемые функцией Iter_Fact, присваиваются переменным Fact1, Fact2, Fact3.

#include <iostream.h>

voidIter_Fact (int, long*);         //прототип функции

main()

{ int i;

long Fact1, Fact2, Fact3;      //не инициализированы !!!

Iter_Fact (10, &Fact1);              //вызов функции

i= 10;          Iter_Fact (i, &Fact2);                  //вызов функции           Iter_Fact (5+ 5, &Fact3);            //вызов функции

cout << Fact1 << “  “ << Fact2 <<  “  “ << Fact3 << endl;

return 0;

}

void Iter_Fact (int n, long*f)      //определение функции

{ *f  = 1;

for (int i=2; i<=n; i++)

*f  *= i;

}

 
Передадим параметры другим способом:

И еще одним способом:

#include <iostream.h>

voidIter_Fact (int, long&);         //прототип функции

main()

{ int i;

long Fact1, Fact2, Fact3;       //не инициализированы !!!

Iter_Fact (10, Fact1);              //вызов функции

i= 10;   Iter_Fact (i, Fact2);                  //вызов функции   Iter_Fact (5+ 5, Fact3);            //вызов функции

cout << Fact1 << “  “ << Fact2 <<  “  “ << Fact3 << endl;

return 0;

}

void Iter_Fact (int n, long&f)      //определение функции

{ f  = 1;

for (int i=2; i<=n; i++)

f  *= i;

}

 


Пример 3. Опишем функцию stepen (x, n) от вещественного х и натурального n, вычисляющую через умножение величину хn, и используем ее для вычисления  b=2.7 k + (a+1) –k.

#include <iostream.h>

double stepen (double, unsigned);      //прототип функции main ()

{

double  a =7.1, b;

unsigned  k=5; b=stepen(2.7, k) +1/stepen(a+1, k);   //вызов функции

cout << b << endl;

return 0; }

double stepen (double x, unsigned  n)      //определение функции

{  double  y=1;  for (unsigned  i=1; i<=n; i++)

y=y*x;   return  y; }

Пример 4. Опишем функцию maxmin, присваивающую параметру х большее из двух вещественных чисел, а параметру  y – меньшее. С помощью данной функции необходимо перераспределить значения вещественных переменных а, b, c так, чтобы стало  a >= b >= c.

#include <iostream.h>

#include <conio.h>

void maxmin (double *, double *);               //прототип функции

int main ()

{ double a, b, c;

cin >> a >> b >> c;

  maxmin (&a, &b);

maxmin (&a, &c);                                       //a  получает максимальное значение 

maxmin (&b, &c);                                        //c получает максимальное значение 

cout << a  <<"  " << b << "  "  << c << endl;

getch ();

return 0;

}

void maxmin (double *px, double *py)                 //определение функции

{double r;

if(*px <*py) { r =*px; *px=*py; *py=r;}

}

Заметим, что объявление и определение функции могли быть сделаны иначе:

#include <iostream.h>

#include <conio.h>

void maxmin (double &, double &);     //прототип функции main ()

{ double  a, b, c;

cin >> a >> b >> c;