C++

ramzko95

New member
02.03.2014
3
0
#1
По заданию лабораторной работы №3 написать программу расчета выбранной функции Y(x), или S(x) (желательно и |Y(x)–S(x)|), вид которой в свою очередь передается в качестве параметра в функцию вывода (Out_Rez).
 

Вложения

  • 101.9 КБ Просмотры: 26

ramzko95

New member
02.03.2014
3
0
#4
Вот код но шибку выдает
Прошу помощи!
Задача - написать программу расчета выбранной функции Y(x), или S(x) (желательно и |Y(x)–S(x)|), вид которой в свою очередь передается в качестве параметра в функцию вывода (Out_Rez).

С горем пополам написал код
Но тем не менее выдаёт ошибку при линковке

Код:

//---------------------------------------------------------------------------

#include <vcl.h>
#include "math.h"
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#include "math.h"
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}

//------------ Декларация типа указателя на функции -------------------------
typedef double (*TFun)(double,double);
//------------Декларации прототипов функций Пользователя ---------------
double fun1(double,double);
double fun2(double,double);
double fun3(double,double);
void Out_Rez(TFun, double, double, double, double, TMemo*);
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="1";
Edit3->Text="10";
Edit4->Text="0,2";
Memo1->Clear(); Memo2->Clear(); Memo3->Clear();
RadioGroup1->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double a, b, x, h, r, s, y, d;
int n,k;
a = StrToFloat(Edit1->Text);
b = StrToFloat(Edit2->Text);
n = StrToInt(Edit3->Text);
h = StrToFloat(Edit4->Text);
switch(RadioGroup1->ItemIndex) {
case 0: Out_Rez (fun1,a,b,n,h,Memo1); break;
case 1: Out_Rez (fun2,a,b,n,h,Memo2); break;
case 2: Out_Rez (fun3,a,b,n,h,Memo3); break;
}
}
//---------- Реализации функций Пользователя ---------------------------------
double fun1(double x){
return ((1+pow(x,2))/2)*atan(x)-x/2;
}
double fun2(double s) {
double a, b, h, r, y, x;
int n, zn = -1, k;

for(x = a; x<=b; x+=h)
r = s = 1;
for(k = 1; k<=n; k++) {
r = zn*r*x/k;
s+=r; }
return s;
}
double fun3(double y, double s) {
double d;
d=fabs(y-s);
return d;
}
void Out_Rez (TFun f,double xn,double xk,double h,TMemo *mem)
{
double s,d;
for(double x=xn; x<=xk; x+=h)
mem->Lines->Add("y= "+FloatToStrF(x,ffFixed,8,5)+
"s= "+FloatToStrF(s,ffFixed,8,5)+
"|y-s|= "+FloatToStrF(d,ffFixed,8,5));
}


Буду признателен,если устраните ошибочку и программа наконец заработает!