diff options
author | justanothercatgirl <sotov2070@gmail.com> | 2024-11-24 19:47:38 +0300 |
---|---|---|
committer | justanothercatgirl <sotov2070@gmail.com> | 2024-11-24 19:47:38 +0300 |
commit | 8237f82ebd2299addc6dec837d5f850cc5fd1b5c (patch) | |
tree | 06f32b24512f54a466e4bd6a0e3d51d0bcf68aef /107/main.cpp | |
parent | 33e3d9540237b0faef3c7d9aeab6dedbccbe3707 (diff) | |
parent | fcf77faf19dcb9d75b7842ec7138551bd73418cf (diff) |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to '107/main.cpp')
-rw-r--r-- | 107/main.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/107/main.cpp b/107/main.cpp new file mode 100644 index 0000000..e731a06 --- /dev/null +++ b/107/main.cpp @@ -0,0 +1,46 @@ +#include "include/praktable.hpp" +#include <functional> + +using table = prak::table<double>; + +double mu(const std::vector<double> &ab) { + return ab[0] / ab[1]; +} + +void proc_table(table &t) { + using namespace std::placeholders; + + t.fill_column("sb", 0.003); // 3 millimeters + t.apply(prak::avg<double>, {"a1", "a2", "a3"}, "a"); + t.apply([](const std::vector<double>& args) -> double { + return std::sqrt(std::pow(prak::stddev<double>(args), 2) + 0.003*0.003); + }, {"a1", "a2", "a3"}, "sa"); // error = sqrt(stddev^2 + systerr^2) + t.apply(mu, {"a", "b"}, "mu"); + t.apply([](const std::vector<double> &arg) -> double { + std::vector<double> args = {arg[0], arg[1]}; + std::vector<double> sargs = {arg[2], arg[3]}; + return prak::sigma<double>(mu, args, sargs); + }, {"a", "b", "sa", "sb"}, "smu"); +} + +void ex1(void) { + table t; + t.read("data1"); + proc_table(t); + std::cout << "Таблица для 1 упражнения: " << t; +} +void ex2(void) { + table a1, a2; + a1.read("data21"); + a2.read("data22"); + proc_table(a1); + proc_table(a2); + std::cout << "Таблица для 2.1: " << a1; + std::cout << "Таблица для 2.2: " << a2; +} + +int main() { + ex1(); + ex2(); + return 0; +} |