📄 integral.cpp
字号:
// Integral.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdlib.h>
int main(int argc, char* argv[])
{
if(argc == 1)
{
printf("命令提示: intergal <INTARG> <NUM>\n");
printf("第二个参数为积分上限(必须为整数),第三个为计算的次数控制参数,大于1为计算次数,小于1为计算精度\n");
return 0;
}
double ftX_Pos = 0.0,ftY_Pos = 0.0;
double ftResult = 0.0;
int nMeet = 0;
if(atoi(argv[2]) >= 1)
{
for(int i = 0;i < atoi(argv[2]);i++)
{
ftX_Pos = (double)atoi(argv[1]) * ((double)rand()/32767);
ftY_Pos = (double)atoi(argv[1]) * (double)atoi(argv[1]) * ((double)rand()/32767);
if((double)ftY_Pos <= (double)ftX_Pos * (double)ftX_Pos)
nMeet++;
}
ftResult = (double)((double)atoi(argv[1]) * (double)atoi(argv[1]) * (double)atoi(argv[1]) * nMeet/atoi(argv[2]));
}
else
{
double ftResult1 = 0.0, ftResult2 = 0.0;
int nSum = 1;
ftX_Pos = atoi(argv[1]) * ((double)rand()/32767);
ftY_Pos = atoi(argv[1]) * atoi(argv[1]) * ((double)rand()/32767);
if(ftY_Pos <= ftX_Pos * ftX_Pos)
nMeet++;
ftResult2 = atoi(argv[1]) * atoi(argv[1]) * atoi(argv[1]) * nMeet/nSum;
double temp = 0;
double t = atof(argv[2]);
while(temp < atof(argv[2]))
{
ftX_Pos = atoi(argv[1]) * ((double)rand()/32767);
ftY_Pos = atoi(argv[1]) * atoi(argv[1]) * ((double)rand()/32767);
if(ftY_Pos <= ftX_Pos * ftX_Pos)
nMeet++;
nSum++;
ftResult1 = ftResult2;
ftResult2 = atoi(argv[1]) * atoi(argv[1]) * atoi(argv[1]) * nMeet/nSum;
temp = ftResult2 - ftResult1;
if(temp < 0)
temp = - temp;
if(temp > atof(argv[2]))
{
temp = - temp;
t = - t;
}
}
ftResult = ftResult2;
}
printf("积分结果:%f\n",ftResult);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -