1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > sinx加expx定积分计算c语言 写一个定积分的通用函数 分别求sinx cosx e^x.

sinx加expx定积分计算c语言 写一个定积分的通用函数 分别求sinx cosx e^x.

时间:2023-10-03 21:58:58

相关推荐

sinx加expx定积分计算c语言 写一个定积分的通用函数 分别求sinx cosx e^x.

/**************************************************************

* Copyright (c) , 西华师范大学计算机学院

* All rights reserved.

* 作 者: 曾舜尧

* 完成日期: 年 05 月 12 日

* 工 具:VC6.0

*

* 输入描述:

* 问题描述:写一个定积分的通用函数,分别求sinx,cosx,e^x.

* 程序输出:

* 问题分析:此题写一个通用函数,无非是用一个函数调用fun1,fun2……等,

* 何不就用switch来匹配,再直接调用……

* 算法设计:略

**************************************************************/

#include

#include

#include

#include

/*#define Density 0.00001*/

static double Density=0.0000001;/*定义全局变量 Density(精度)并赋值值*/

int main()

{

void fun1(double a,double b);

void fun2(double a,double b);

void fun3(double a,double b);

int check(int sel,double a,double b);

void info();

int sel;

double a,b;

char ch;

info();

printf("精度默认为0.0000001,是否设置精度(y/n)?:");

scanf("%c",&ch);

if (ch=='y'||ch=='Y')

{

printf("\n请输入您的精度:");

scanf("%lf",&Density);

}

do

{

printf("\n请输入您选择的番号、下线和上线:");

scanf("%d%lf%lf",&sel,&a,&b);

if(check(sel,a,b))

{

switch(sel)

{

case 1:fun1(a,b);break;

case 2:fun2(a,b);break;

case 3:fun3(a,b);break;

//default :printf("输入错误!\n");

}

}

else

{ printf("\n输入有误,请检查后再次输入。。。!\n");}

printf("\n是否继续(y/n):");

ch=' ';/*此处清空ch,以免影响for语句*/

for (;ch!='N'&&ch!='y'&&ch!='Y'&&ch!='n';ch=getchar());

printf("\n");/*为了便于查看*/

}while((ch=='y')||(ch=='Y'));

printf("程序结束!感谢您的光顾!\n");

getch();

system("pause");

return 0;

}

/*sinxdx[0~1]*/

void fun1(double a,double b)

{

double result=0;

for (;a<=b;a+=Density)

result=result+sin(a) * Density;

printf("理论值为:%.2lf\n",result);

return;

}

/*cosxds[0~1]*/

void fun2(double a,double b)

{

double result=0;

for (;a<=b;a+=Density)

result=result+cos(a) * Density;

printf("理论值为:%.2lf\n",result);

return ;

}

/*e^xdx[0~1]*/

void fun3(double a,double b)

{

double result=0;

for (;a

result=result+exp(a);

printf("理论值为:%.2lf\n",result);

return ;

}

int check(int sel,double a,double b)

{

if ((sel==1)||(sel==2)||(sel==3))

{

if(b-a>Density)

return 1;

else

return 0;

}

else

return 0;

}

void info()

{

printf("本程序可以计算下列3个函数的定积分\n");

printf("函数1\t函数2\t函数3\nsinx\tcosx\te^x\n");

printf("示例:\n");

printf("\t计算sinx从0到1的定积分,\n\t输入:1 0 1\n");

printf("注:下限应至少比上限小%.*f\n",Density);

return ;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。