⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d6r6.cpp

📁 Visual C++ 常用数值算法集 源代码
💻 CPP
字号:
# include<math.h>
# include<iomanip.h>
# include<iostream.h>
# include<stdlib.h>
# include<string.h>

int cint(double x)
{
	int temp;
	double iprt;
	if (x > 0)
	{
	x = modf(x,&iprt);
		if(fabs(x)<0.5)
			temp = int(iprt);
		else
			temp = int(iprt+1);
	}
	else if(x == 0)
		temp = 0;
	else
	{
		x = modf(x,&iprt);
		if(fabs(x)<0.5)
			temp = int(iprt);
		else
			temp = int(iprt)-1;
	}
		return temp;
}

void main()
{
     //program d6r6
     //driver for routine gasdev
     double dist[22],x;
     char text[51] ;
	 int n,np1,nover2,npts,iscal,llen,idum,j,k,klim,i;
     n = 20;
     np1 = n + 1;
     nover2 = n / 2;
     npts = 10000;
     iscal = 400;
     llen = 50;
     idum = -13;
     for (j = 0; j<=np1; j++)
         dist[j] = 0.0;
     for (i = 1; i<=npts; i++)
	 {
		 j = cint(0.25 * n * gasdev(idum)) + nover2 + 1;
         if ((j >= 1) && (j <= np1)) dist[j] = dist[j] + 1;
     }
     cout<<endl;
     cout<<"Normally distributed deviate of"<<npts<<"points"<<endl;
     cout<<endl;
     cout<<  "   x      p[x]     graph:"<<endl;
     for (j = 1; j<=np1; j++)
	 {
         dist[j] = dist[j] / npts;
         for(k = 1; k<=50; k++)
             text[k] = ' ';
         klim = cint(iscal * dist[j]);
         if (klim > llen ) klim = llen;
         for (k = 1; k<=klim; k++)
             text[k] = '*';
		 x = j / (0.25 * n);
         cout<<setw(5)<<x;
         cout<<setw(10)<<dist[j];
         cout<<"    ";
         for (k = 1; k<=50; k++)
         cout<< text[k];
         cout<<endl;
	 }
}

⌨️ 快捷键说明

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