#include <iostream>
#include <math.h>
using namespace std;
double Virogenie( double x, int n) //value=znachenie
{
double Ans;
int Schet;
Ans = 0 ;
for ( Schet = 1 ; Schet <= n; Schet++ )
Ans + = ( ( 2 * Schet + 1 ) / ( sin ( Schet* x) ) ) * pow ( x, Schet - 1 ) ;
return Ans;
}
void Virogenie( double * x, int * n, double * Ans) //pointer=ykazatel’
{
int Schet;
* Ans = 0 ;
for ( Schet = 1 ; Schet <= * n; Schet++ )
* Ans + = ( ( 2 * Schet + 1 ) / ( sin ( Schet** x) ) ) * pow ( * x, Schet - 1 ) ;
}
void Virogenie( double & x, int & n, double & Ans) //reference=ssylka
{
int Schet;
Ans = 0 ;
for ( Schet = 1 ; Schet <= n; Schet++ )
Ans + = ( ( 2 * Schet + 1 ) / ( sin ( Schet* x) ) ) * pow ( x, Schet - 1 ) ;
}
int main( )
{
double Step, x, Ans, NachOts, KonOts;
int n;
cout << "Input a, b, h, n: \n " ;
cin >> NachOts >> KonOts >> Step >> n;
cout << "\n \t Value" << setw( 18 ) << "Pointer" << setw( 23 ) << "Reference\n " ;
x = NachOts;
do {
cout << setw( 5 ) << x << setw( 10 ) << Virogenie( x, n) ;
Virogenie( & x, & n, & Ans) ;
cout << setw( 10 ) << x << setw( 10 ) << Ans;
Virogenie( x, n, Ans) ;
cout << setw( 10 ) << x << setw( 10 ) << Ans << endl;
x + = Step;
} while ( x <= KonOts + Step / 2 ) ;
cout << endl;
//system("pause");
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSBWaXJvZ2VuaWUoZG91YmxlIHgsIGludCBuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlPXpuYWNoZW5pZQp7CmRvdWJsZSBBbnM7CmludCBTY2hldDsKQW5zID0gMDsKZm9yIChTY2hldCA9IDE7IFNjaGV0IDw9IG47IFNjaGV0KyspCiAgQW5zICs9ICgoMiAqIFNjaGV0ICsgMSkgLyAoc2luKFNjaGV0KngpKSkqcG93KHgsIFNjaGV0IC0gMSk7CnJldHVybiBBbnM7Cn0KCgp2b2lkIFZpcm9nZW5pZShkb3VibGUgKngsIGludCAqbiwgZG91YmxlICpBbnMpICAgICAgICAgICAgICAgICAgICAvL3BvaW50ZXI9eWthemF0ZWzigJkKewppbnQgU2NoZXQ7CipBbnMgPSAwOwpmb3IgKFNjaGV0ID0gMTsgU2NoZXQgPD0gKm47IFNjaGV0KyspCiAgKkFucyArPSAoKDIgKiBTY2hldCArIDEpIC8gKHNpbihTY2hldCoqeCkpKSpwb3coKngsIFNjaGV0IC0gMSk7Cn0KCnZvaWQgVmlyb2dlbmllKGRvdWJsZSAmeCwgaW50ICZuLCBkb3VibGUgJkFucykgICAgICAgICAgICAgICAgIC8vcmVmZXJlbmNlPXNzeWxrYQp7CmludCBTY2hldDsKQW5zID0gMDsKZm9yIChTY2hldCA9IDE7IFNjaGV0IDw9IG47IFNjaGV0KyspCiAgQW5zICs9ICgoMiAqIFNjaGV0ICsgMSkgLyAoc2luKFNjaGV0KngpKSkqcG93KHgsIFNjaGV0IC0gMSk7Cn0KCmludCBtYWluKCkKewpkb3VibGUgU3RlcCwgeCwgQW5zLCBOYWNoT3RzLCBLb25PdHM7CmludCBuOwpjb3V0IDw8ICJJbnB1dCBhLCBiLCBoLCBuOiBcbiI7CmNpbiA+PiBOYWNoT3RzID4+IEtvbk90cyA+PiBTdGVwID4+IG47Cgpjb3V0IDw8ICJcblx0VmFsdWUiIDw8IHNldHcoMTgpIDw8ICJQb2ludGVyIiA8PCBzZXR3KDIzKSA8PCAiUmVmZXJlbmNlXG4iOwp4ID0gTmFjaE90czsKCmRvewpjb3V0IDw8IHNldHcoNSkgPDwgeCA8PCBzZXR3KDEwKSA8PCBWaXJvZ2VuaWUoeCwgbik7CgpWaXJvZ2VuaWUoJngsICZuLCAmQW5zKTsKY291dCA8PCBzZXR3KDEwKSA8PCB4IDw8IHNldHcoMTApIDw8IEFuczsKClZpcm9nZW5pZSh4LCBuLCBBbnMpOwpjb3V0IDw8IHNldHcoMTApIDw8IHggPDwgc2V0dygxMCkgPDwgQW5zIDw8IGVuZGw7Cgp4ICs9IFN0ZXA7Cn0gd2hpbGUgKHggPD0gS29uT3RzICsgU3RlcCAvIDIpOwoKY291dCA8PCBlbmRsOyAKLy9zeXN0ZW0oInBhdXNlIik7CnJldHVybiAwOwp9