翻出了大学的第一次大物实验

时光的河,入海流,终于我们分头走

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#include "stdio.h"
#include "math.h"

using namespace std;
int main()
{
	double score[5][4] = { 0 };

	double sum[4] = { 0 };
	for (int i = 0; i < 5; i++)
		for (int j = 0; j < 4; j++)
			cin >> score[i][j];
			
	for (int i = 0; i < 4; i++)
		for (int j = 0; j < 5; j++)
			sum[i] += score[j][i];


	double average[4] = {0};
	for (int i = 0; i < 4; i++)
	{
		average[i] = (1.0 / 5.0) * (sum[i]);
		printf("\n第%d列,平均值:%lf \n",i+1, average[i]);
	}
	
	
	printf("\n\n");
	double sum5[4] = { 0 };
	for (int i = 0; i < 4; i++)
	{
		printf("\n第%d列数据\n",i + 1);
		for (int j = 0; j < 5; j++)
		{
			sum5[i]+= (score[j][i] - average[i]) * (score[j][i] - average[i]);
			printf("平均差      :%lf\n",(score[j][i] - average[i]));
			printf("平均差的平方:%lf\n", (score[j][i] - average[i]) * (score[j][i] - average[i]));
		}
		    printf("平均差的总和:%lf\n\n", sum5[i]);
		
	}
	/*
	16.00   32.08   58.98   9.910
	15.70   32.06   59.00   9.905
	15.80   32.12   58.82   9.912
	15.74   32.02   58.90   9.903
	15.96   32.00   59.16   9.988
		*/
	double U_ad[4] = {0};
	double U_bd[4] = { 0.02 / sqrt(3),0.02 / sqrt(3),0.02 / sqrt(3),0.004 / sqrt(3) };

	for (int i = 0; i < 4; i++)
	{ 
		U_ad[i] = sqrt(((1.00 / (double)(5 * 4)) * sum5[i]));
		printf("第%d列U_ad%d:  %lf\n",i+1, i + 1, U_ad[i]);
		printf("第%d列U_bd%d:  %lf\n\n", i + 1, i + 1, U_bd[i]);
	}
	printf("\n\n");
	 

	 double U_d[4] = { 0 };
	 for (int i = 0; i < 4; i++)
	 {
		 U_d[i]=sqrt((U_ad[i] * U_ad[i] + U_bd[i] * U_bd[i]));
		 printf("第%d列U_d%d:  %lf\n", i + 1, i + 1, U_d[i]);
	 }


	 double ZeroFix[4] = { 0 };
	 for (int i = 0; i < 3; i++)
	 {
		 ZeroFix[i] = average[i] + 0;
		 printf("第%d组,零点修正:D=average-D_0=%lf\n",i+1, average[i]);
	 }
	  ZeroFix[3] = average[3] + 0.01;
	  printf("第%d组,零点修正:D=average-D_0=%lf\n", 4, average[3]+0.001);

	 printf("\n\n结果:\n\n");

	 double D[4] = { 0 };
	 double E[4] = { 0 };
	 for (int i = 0; i < 4; i++)
	 {
		 
		 U_d[i] += 0.005;
		 U_d[i] *= 100;
		 U_d[i] = int(U_d[i]);
		 U_d[i] /= 100;
	  
		 printf("D[%d]===%lf  正负  %.3lf\n", i+1, ZeroFix[i],U_d[i]);
		 E[i] = U_d[i] / ZeroFix[i];
		 D[i] = ZeroFix[i];
		 printf("E%d===%lf    % \n", i + 1, E[i]);
	 }
	 
	 printf("\n\n\n体积:\n\n\n");


	 double V = ((3.1415926 /4.0)* (double)(D[1] * D[1] - D[0] *D[0]))* D[2];
	 printf("d2  =%lf d1=%lf   H=====%lf  V======%lf m*m*m\n\n",D[1],D[0],D[2], V);

	 printf("\n\n\n相对不确定度:\n\n\n");
	 double M = ((2 * D[0]) / (D[1] * D[1] - D[0] * D[0]) * U_d[0]);
	 M *= M;
	 double N = (2 * D[1] / (D[1] * D[1] - D[0] * D[0]) * U_d[1]);
	 N *= N;
	 double U_H = U_d[2] / D[2];
	 U_H *= U_H;

	 double VE = sqrt(M+N+U_H);
	 double U_v = V * VE;
	 printf("\n不确定度  U_v==V*E===%lf      mm\n", U_v);
	 printf("\n\nV===正负U_v==%lf正负U_v%lf  mm\n", V, U_v);
	 printf("\n\nE===U_v/V==%lf     %\n", U_v / V);
	
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门提示: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

metabit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值