定步长求积分.cpp

来自「用C++实现的多个算法」· C++ 代码 · 共 49 行

CPP
49
字号
#include<iostream.h>
#include<math.h>
#include<iomanip.h>

double fna(double x);
double fna(double x)
{
	double y1;
	y1=sin(x)/x;
	return y1;
}

void main()
{
	double a,b,h,s;
	int n,i,j,k,right;
	double y[100];
	cout<<"right=0时表示函数,right=1时表示表格!"<<endl;
	cout<<"请输入区间下限a,上限b,n和right的值:"<<endl;
	cout<<"a=";
	cin>>a;
	cout<<"b=";
	cin>>b;
	cout<<"n=";
	cin>>n;
	cout<<"right=";
	cin>>right;
	h=(b-a)/n;
	if(right==0)
	{
		s=(fna(a)+fna(b))/2.0;
		for(i=1;i<=n;i++)
			s=s+fna(a+i*h);
	}
	else
	{
		cout<<"请输入数组y[j]的值:"<<endl;
		for(j=0;j<=n;j++)
		{
			 cin>>y[j];
		}
		s=(y[0]+y[n])/2.0;
			for(k=1;k<=n-1;k++)
			s=s+y[k];
	}s=s*h;
	cout<<"在区间["<<a<<","<<b<<"]上的积分的近似值s="<<setprecision(8)<<s<<endl;
}
			
		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?