CCCPaste

物理-探究A (不確定度計算)

//物理-探究A
#include <iostream>
#include <cmath>
#include <iomanip>
#include <vector>

using namespace std;

int main() {

double n = 0;
double average = 0;
double SD = 0;
double u = 0;

int Language = 0;

double sum = 0;

vector<double> database;

cout<<"English type 1\n"<<"繁體中文選 2\n"<<"Language (type 1 or 2): ";
cin>>Language;

if (Language == 1){
cout<<"how much data: ";
}else{
cout<<"幾組數據: ";
}


cin>>n;

for (int i = 1; i <= n; i += 1){
double n2 = 0;

if (Language == 1){
cout<<"data "<<i<<": ";
}else{
cout<<"數據 "<<i<<": ";
}

cin>>n2;

database.push_back(n2);
average += n2;
}

average /= n;

for (int i = 0; i < database.size(); i += 1){
double n2 = database[i];
sum += (n2 - average) * (n2 - average);
}

SD = sqrt(sum / (n - 1));

u = round(SD / sqrt(n) * 10) / 10;
cout<<"--------------------"<<"\n";
if (Language == 1){
cout<<"Average: "<<average<<"\n";
cout<<"σ: "<<SD<<"\n";
cout<<"u: "<<u<<"\n";
cout<<"Best estimate: "<<round(average * 10) / 10<<"\n";
cout<<"Result: "<<round(average * 10) / 10<<" ± "<<u<<"\n";
}else{
cout<<"平均值: "<<average<<"\n";
cout<<"標準差: "<<SD<<"\n";
cout<<"不確定度: "<<u<<"\n";
cout<<"最佳估計值: "<<round(average * 10) / 10<<"\n";
cout<<"測量結果: "<<round(average * 10) / 10<<" ± "<<u<<"\n";
}


return 0;
}