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

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

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

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<<"\nValue"<<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;

int i;

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

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

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

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

}

 

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

{

int i;

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

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

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

}

 

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

{

int i;

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

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

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

}