Inmatr ( matr, rows , cols);

// Обчислення середнього значення стовпців матриці

Srcols (matr , rows , cols);

Return 0;

}

5.2.3 Використання функції як параметра значень

Іноді приходиться як формальні аргументи (параметрів) функції використовувати інші функції. Така ситуація виникає, якщо в деякій функції при звертанні до неї, треба викликати іншу функцію.

Параметр - функція записується у вигляді прототипу, тобто вказується тип функції, її ім'я й у дужках перелік типів формальних аргументів, або типів і імен формальних аргументів.

Приклад 5.4Скласти програму c використанням функціїобчислення інтегралів методом трапецій (точність обчислення е =10-3 ).

Inmatr ( matr, rows , cols); - student2.ru

// P5_4.CPP – обчислення інтеграла методом трапеції

//використання функції як параметра значення

#include <math.h>

#include < iostream >

Using namespace std;

const float e =1 e-3;

float fn1 (float x ) //підінтегральна функція 1-го інтеграла

{

return sgrt (1 +log (x));

}

float fn2 ( float x ) //підінтегральна функція 2-го інтеграла

{

return log (1 +pow (x,2)) / (1+pow (x,2));

}

float ft (int n, float a ,float b , float fun( float )) //функція методу трапецій

{

Int i;

float s1 ,h, s=0;

Do

{ s1 =s;

h = (b -a ) /n;

s = ( fun (a) +fun (b) ) / 2;

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

s += fun ( a + i *h );

s *= h; n *= 2;

} while ( fabs ( s-s1 ) > e );

return s; }

Int main ( )

{

Float y;

y = ft ( 20 , 2 , 2, 3.0, fn1 ) +ft ( 20, 0, 1.0, fn2 );

cout << "y=" << y << endl;

Return 0;

}

Результат виконання програми :

y = 1.29012

5.2.4 Звертання до функції і передача результату

Для звертання до функції досить написати її ім'я й у дужках записати значення або перелік фактичних аргументів. Фактичні аргументи повинні бути записані в тій же послідовності, що і формальні і мати відповідний тип (крім аргументів за замовчуванням і перевантаженими функціями). Якщо формальними аргументами функції є параметри значення й у ній не використовуються глобальні змінні, то функція може передати в програмуб яка Ії викликає, лише одне значення, що записується в операторі return . Це значення передається в місце виклику функції. Фрагмент програми, що підтверджує вищевикладене може мати вигляд :

Double sgr (double);

Main( )

{

cout << "Квадрат числа=" << sgr ( 10 ) << endl;

}

Double sqr (double p)

//Повернення за значенням

{

return p*p;

}

У результаті буде виведено:

Квадрат числа = 100.

Використовуючи оператор return можна також організувати достроковий вихід з функції. Якщо з функції треба передати не одне, а кілька значень, то можна або використовувати передачу параметрів за покажчиком, або використати посилання, глобальні змінні, або масиви.

Ім'я функції ¾ це константа - покажчик на функцію, що вказує на адресу місця входу (адреса першої машинної команди) функції. Слід зазначити, що можливо також опис і покажчиків перемінних на функції. Для цього використовується операція разіменувания "*", функції описані в такий спосіб повинні повертати покажчик на тип, тобто його адреса.

Приклад 5.5 Обчислити функцію загального вигляду для заданого значення аргументу xз використанням функції, у яку коефіцієнти a, bі cможуть бути введені за замовчуванням.

// P5_5.CPP ¾ обчислення квадратної функції

//коефіцієнти квадратної залежності можуть

// вводитися у функцію"за замовчуванням"

#include < iostream >

Using namespace std;

float ur ( float x, float а=0., floatb b =0.,float c=0.);

Int main ( )

{

float а =1., b = 2., c = 3., x = 0.5, y;

cout << " Уведені всі аргументи " << endl;

y = ur ( x, a, b, c);

cout << " y = "<< y << endl;

cout << " Введені аргументи x, a, b " << endl;

y =ur ( x, a, b);

cout << " y = "<< y << endl;

cout << " Введений аргумент x " << endl;

y =ur ( x );

cout << " y = "<< y << endl;

}

// Функція обчислення квадратної функції

Наши рекомендации