Код программы

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

// Прототипы функций

double Summa (double, int); // Передача параметров по значению

void Summa (double*, int*,double*); // Передача параметров по указателю

void Summa (double&, int&,double&); // Передача параметров по ссылке

int main()

{ // Начало главной функции

double s, x, a, b, h;

int k;

cout << "Vvedite a, b, h, k:\n";

cin >> a >> b >> h >> k; // Ввод значений:: 0.1 1 0.1 20

// Вывод строки заголовка таблицы

cout << "\n Value" << setw(20) << "Pointer" << setw(24) << "Reference\n";

x=a;

do // Начало цикла по x

{ // Вывод таблицы

// Передача параметров по значению

cout << setw(5) << x << setw(10) << Summa(x, k);

Summa(&x, &k,&s); // Передача параметров по указателю

cout << setw(10) << x << setw(10) << s;

Summa(x, k, s); // Передача параметров по ссылке

cout << setw(10) << x << setw(10) << s << endl;

x += h; // Изменение значения x на величину шага h

} while (x <= b + h / 2); // Проверка условия продолжения цикла по x

cout << endl; // Переход на новую строку

return 0;

}

double Summa (double x, int k) // Передача параметров по значению

{

double s = 0;

int i;

s = 0; // Начальное значение при k=0

for (i = 1; i <= k; i++) // Вычисление суммы

{

s += pow(x, i - 1) / (2 * i + 1);

}

return s; // Передача результата s в главную функцию

}

// Передача параметров по указателю

void Summa (double *x, int *k, double *s)

{

int i;

*s = 0; // Начальное значение при k = 0

for (i = 1; i <= *k; i++) // Вычисление суммы

{

*s += pow(*x, i - 1) / (2 * i + 1);

}

}

// Передача параметров по ссылке

void Summa (double &x, int &k, double &s)

{

int i;

s = 0; // Начальное значение при k = 0

for (i = 1; i <= k; i++) // Вычисление суммы

{

s += pow(x, i - 1) / (2 * i + 1);

}

} // Конец главной функции


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



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