Advertisement
575

main(final)

575
May 15th, 2022 (edited)
965
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <numeric>
  5. #include <algorithm>
  6. #include <fstream>
  7. #include <map>
  8. #include <iomanip>
  9. #include "missile.h"
  10.  
  11.  
  12. bool CheckUnique(std::vector <double> T) {
  13.     std::vector <double> temp = T;
  14.     std::sort(temp.begin(), temp.end());
  15.     auto last = std::unique(temp.begin(), temp.end());
  16.     temp.erase(last, temp.end());
  17.  
  18.     if (temp.size() == T.size())
  19.         return true;
  20.     else
  21.         return false;
  22. }
  23.  
  24. std::map <double, double> MakeDiscreteDistribution(std::vector <double> T) {
  25.     std::vector <double> temp = T;
  26.     std::sort(temp.begin(), temp.end());
  27.     auto last = std::unique(temp.begin(), temp.end());
  28.     temp.erase(last, temp.end());
  29.  
  30.     std::map <double, double> res;
  31.  
  32.     for (int i = 0; i < temp.size(); ++i) {
  33.         double prob = std::count(T.begin(), T.end(), temp[i]);
  34.         prob /= 100;
  35.         res.insert(std::make_pair(temp[i], prob));
  36.     }
  37.     return res;
  38. }
  39.  
  40. double ExpectedValue(std::map <double, double> T) {
  41.     std::map <double, double> ::iterator it = T.begin();
  42.     double res = 0;
  43.     for (it; it != T.end(); ++it) {
  44.         res += it->first * it->second;
  45.     }
  46.     return res;
  47. }
  48.  
  49. //среднее арифметическое (мат ожидание)
  50. double ArithmeticMean(std::vector <double> T) {
  51.     double sum_of_elems = std::accumulate(T.rbegin(), T.rend(), 0.0);
  52.     return sum_of_elems / T.size();
  53. }
  54.  
  55. //дисперсия
  56. double Variance(std::vector <double> T) {
  57.     std::vector <double> squareT;
  58.    
  59.     for (int i = 0; i < T.size(); ++i) {
  60.         //std::cout << T[i] << "\t\t" << std::pow(T[i], 2) << std::endl;
  61.         squareT.push_back(std::pow(T[i], 2));
  62.     }
  63.        
  64.  
  65.     long double E1 = ArithmeticMean(squareT);
  66.     long double E2 = ArithmeticMean(T);
  67.     E2 = std::pow(E2, 2);
  68.  
  69.     return E1 - E2;
  70. }
  71.  
  72. //среднеквадратичное отклонение
  73. double StandartDeviation(std::vector <double> T) {
  74.     return std::sqrt(Variance(T));
  75. }
  76.  
  77.  
  78. //коэффициент корреляции
  79. double СorrelationСoefficient(std::vector <double> X, std::vector <double> Y) {
  80.     double avgX = ArithmeticMean(X);
  81.     double avgY = ArithmeticMean(Y);
  82.     double cov = 0.0;
  83.     double devX, devY;
  84.     double sumX = 0.0;
  85.     double sumY = 0.0;
  86.  
  87.     for (int i = 0; i < X.size(); ++i) {
  88.         devX = X[i] - avgX;
  89.         devY = Y[i] - avgY;
  90.         cov += devX * devY;
  91.         sumX += std::pow(devX, 2);
  92.         sumY += std::pow(devY, 2);
  93.     }
  94.     return cov / std::sqrt(sumX * sumY);
  95. }
  96.  
  97. int main() {
  98.     std::vector <missile_data> data;
  99.     std::ifstream in("1.txt");
  100.     std::ofstream out("output.txt");
  101.  
  102.     for (int i = 0; i < 100; ++i) {
  103.         missile_data temp;
  104.         //1
  105.         in >> temp.n >> temp.pr_c >> temp.epr >> temp.pr_r >> temp.kim >> temp.dov >> temp.rbv;
  106.         //2
  107.         in >> temp.time_to_mp >> temp.rel_v >> temp.beta_ast >> temp.time_start_homing;
  108.         //3
  109.         in >> temp.mis_coord_n.x >> temp.mis_coord_n.y >> temp.mis_coord_n.z >> temp.mis_v_proj_n.x >> temp.mis_v_proj_n.y >> temp.mis_v_proj_n.z;
  110.         //4
  111.         in >> temp.yaw_angle >> temp.pitch_angle >> temp.bank_angle >> temp.angle_of_attack >> temp.flow_angle;
  112.         //5
  113.         in >> temp.v_obj >> temp.path_obj >> temp.pitch_obj >> temp.coord_n_obj.x >> temp.coord_n_obj.y >> temp.coord_n_obj.z;
  114.         //6
  115.         in >> temp.proj_mp_miss.x >> temp.proj_mp_miss.y >> temp.proj_mp_miss.z >> temp.rel_v_n >> temp.tau_kin;
  116.         //7
  117.         in >> temp.nc_y >> temp.nc_z >> temp.t_dov >> temp.t_bv >> temp.t_sbv;
  118.         //8
  119.         in >> temp.proj_nsm_miss.x >> temp.proj_nsm_miss.y >> temp.proj_nsm_miss.z >> temp.delta_V01 >> temp.delta_V02 >> temp.beta_y;
  120.         //9
  121.         in >> temp.from_n_to_apa.c11 >> temp.from_n_to_apa.c12 >> temp.from_n_to_apa.c13 >> temp.proj_dov_miss.x >> temp.proj_dov_miss.y >> temp.proj_dov_miss.z;
  122.         //10
  123.         in >> temp.bank >> temp.pitch >> temp.ant_course >> temp.delta_gamma.inf >> temp.delta_gamma.exec >> temp.delta_gamma.sum;
  124.         //11
  125.         in >> temp.from_n_to_apa.c21 >> temp.from_n_to_apa.c22 >> temp.from_n_to_apa.c23 >> temp.from_n_to_apa.c31 >> temp.from_n_to_apa.c32 >> temp.from_n_to_apa.c33;
  126.        
  127.  
  128.         std::cout << i + 1 << " : " << temp.mis_coord_n.x << "\n";
  129.         data.push_back(temp);
  130.     }
  131.  
  132.     for (int i = 0; i < 100; ++i) {
  133.         data[i].h = std::sqrt(std::pow(data[i].proj_mp_miss.x, 2) + std::pow(data[i].proj_mp_miss.y, 2) + std::pow(data[i].proj_mp_miss.z, 2));
  134.         if (1.0 < data[i].h && data[i].h <= 3.0) {
  135.             data[i].i = 2;
  136.         }
  137.         else {
  138.             if (3.0 < data[i].h && data[i].h <= 6.0) {
  139.                 data[i].i = 3;
  140.             }
  141.             else {
  142.                 if (6.0 < data[i].h && data[i].h <= 9.0) {
  143.                     data[i].i = 4;
  144.                 }
  145.                 else {
  146.                     if (9.0 < data[i].h && data[i].h <= 12.0) {
  147.                         data[i].i = 5;
  148.                     }
  149.                     else {
  150.                         if (12.0 < data[i].h && data[i].h <= 15.0) {
  151.                             data[i].i = 6;
  152.                         }
  153.                         else
  154.                             data[i].i = 1;
  155.                     }
  156.                 }
  157.             }
  158.         }
  159.     }
  160.     int count1 = 0;
  161.     int count2 = 0;
  162.     int count3 = 0;
  163.     int count4 = 0;
  164.     int count5 = 0;
  165.     int count6 = 0;
  166.  
  167.     for (int i = 0; i < 100; ++i) {
  168.         switch (data[i].i)
  169.         {
  170.         case 1:
  171.             count1++;
  172.             break;
  173.         case 2:
  174.             count2++;
  175.             break;
  176.         case 3:
  177.             count3++;
  178.             break;
  179.         case 4:
  180.             count4++;
  181.             break;
  182.         case 5:
  183.             count5++;
  184.             break;
  185.         case 6:
  186.             count6++;
  187.             break;
  188.         }
  189.     }
  190.     std::cout << "1 : " << count1 << std::endl;
  191.     std::cout << "2 : " << count2 << std::endl;
  192.     std::cout << "3 : " << count3 << std::endl;
  193.     std::cout << "4 : " << count4 << std::endl;
  194.     std::cout << "5 : " << count5 << std::endl;
  195.     std::cout << "6 : " << count6 << std::endl;
  196.  
  197.     std::vector <double> current_data;
  198.     std::vector <double> first_set;
  199.     std::vector <double> second_set;
  200.  
  201.     out << std::fixed << std::setprecision(3);
  202.  
  203.  
  204.  
  205.     //1 строка вывода
  206.     for (int i = 0; i < 100; ++i)
  207.         current_data.push_back(data[i].mis_coord_n.x);
  208.     out << ArithmeticMean(current_data) << "\t\t\t\t";
  209.     out << StandartDeviation(current_data) << "\t\t";
  210.    
  211.     current_data.clear();
  212.    
  213.     for (int i = 0; i < 100; ++i)
  214.         current_data.push_back(std::sqrt(std::pow(data[i].mis_coord_n.x, 2)
  215.                                         + std::pow(data[i].mis_coord_n.x, 2)
  216.                                         + std::pow(data[i].mis_coord_n.z, 2)));
  217.     out << ArithmeticMean(current_data) << "\t\t";
  218.  
  219.  
  220.     out << data[0].kim << std::endl;
  221.     current_data.clear();
  222.    
  223.     //2 строка вывода
  224.     for (int i = 0; i < 100; ++i)
  225.         current_data.push_back(data[i].mis_coord_n.y);
  226.     out << ArithmeticMean(current_data) << "\t\t\t\t";
  227.     out << StandartDeviation(current_data) << "\t\t";
  228.     current_data.clear();
  229.     for (int i = 0; i < 100; ++i)
  230.         current_data.push_back(std::sqrt(std::pow(data[i].mis_coord_n.x, 2) + std::pow(data[i].mis_coord_n.z, 2)));
  231.     out << ArithmeticMean(current_data) << "\t\t";
  232.     out << data[0].pr_r << std::endl;
  233.     current_data.clear();
  234.  
  235.     //3 строка вывода
  236.     for (int i = 0; i < 100; ++i)
  237.         current_data.push_back(data[i].mis_coord_n.z);
  238.     out << ArithmeticMean(current_data) << "\t\t\t\t";
  239.     out << StandartDeviation(current_data) << "\t\t";
  240.     current_data.clear();
  241.  
  242.     for (int i = 0; i < 100; ++i)
  243.         first_set.push_back(data[i].coord_n_obj.y);
  244.     for (int i = 0; i < 100; ++i)
  245.         second_set.push_back(std::sqrt(std::pow(data[i].mis_coord_n.x, 2) + std::pow(data[i].mis_coord_n.z, 2)));
  246.     out << ArithmeticMean(first_set) + 7.85 * std::pow(10, -8) * std::pow(ArithmeticMean(second_set), 2) << "\t\t";
  247.     first_set.clear();
  248.     second_set.clear();
  249.  
  250.     //конец Нз
  251.     out << data[0].pr_c << std::endl;
  252.     current_data.clear();
  253.  
  254.     //4 строка вывода
  255.     for (int i = 0; i < 100; ++i)
  256.         current_data.push_back(std::sqrt(std::pow(data[i].mis_v_proj_n.x, 2)
  257.                                         + std::pow(data[i].mis_v_proj_n.y, 2)
  258.                                         + std::pow(data[i].mis_v_proj_n.z, 2)));
  259.     out << ArithmeticMean(current_data) << "\t\t\t\t";
  260.     current_data.clear();
  261.  
  262.     for (int i = 0; i < 100; ++i)
  263.         current_data.push_back(data[i].v_obj);
  264.     out << ArithmeticMean(current_data) << "\t\t";
  265.     current_data.clear();
  266.  
  267.     for (int i = 0; i < 100; ++i)
  268.         current_data.push_back(data[i].rel_v);
  269.     out << ArithmeticMean(current_data) << "\t\t";
  270.     current_data.clear();
  271.     out << data[0].epr << std::endl;
  272.  
  273.     //5 строка вывода
  274.     for (int i = 0; i < 100; ++i)
  275.         current_data.push_back(data[i].proj_nsm_miss.y);
  276.     out << ArithmeticMean(current_data) << "\t\t\t\t";
  277.     out << StandartDeviation(current_data) << std::endl;
  278.     current_data.clear();
  279.  
  280.     //6 строка вывода
  281.     for (int i = 0; i < 100; ++i)
  282.         current_data.push_back(data[i].proj_nsm_miss.z);
  283.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  284.     out << StandartDeviation(current_data) << std::endl;
  285.     current_data.clear();
  286.  
  287.     //7 строка вывода
  288.     for (int i = 0; i < 100; ++i)
  289.         current_data.push_back(std::sqrt(std::pow(data[i].proj_nsm_miss.x, 2)
  290.                                         + std::pow(data[i].proj_nsm_miss.y, 2)
  291.                                         + std::pow(data[i].proj_nsm_miss.z, 2)));
  292.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  293.     out << StandartDeviation(current_data) << "\t\t";
  294.     current_data.clear();
  295.  
  296.     for (int i = 0; i < 100; ++i)
  297.         current_data.push_back(data[i].time_to_mp - data[i].time_start_homing);
  298.     out << ArithmeticMean(current_data) << "\t\t\t";
  299.     out << StandartDeviation(current_data) << std::endl;
  300.     current_data.clear();
  301.  
  302.     //8 строка вывода
  303.     for (int i = 0; i < 100; ++i)
  304.         current_data.push_back(data[i].proj_dov_miss.y);
  305.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  306.     out << StandartDeviation(current_data) << std::endl;
  307.     current_data.clear();
  308.  
  309.     //9 строка вывода
  310.     for (int i = 0; i < 100; ++i)
  311.         current_data.push_back(data[i].proj_dov_miss.z);
  312.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  313.     out << StandartDeviation(current_data) << std::endl;
  314.     current_data.clear();
  315.    
  316.     //10 строка вывода
  317.     for (int i = 0; i < 100; ++i)
  318.         current_data.push_back(std::sqrt(std::pow(data[i].proj_dov_miss.x, 2)
  319.                                         + std::pow(data[i].proj_dov_miss.y, 2)
  320.                                         + std::pow(data[i].proj_dov_miss.z, 2)));
  321.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  322.     out << StandartDeviation(current_data) << "\t\t";
  323.     current_data.clear();
  324.  
  325.     for (int i = 0; i < 100; ++i)
  326.         current_data.push_back(data[i].time_to_mp - data[i].t_dov);
  327.     out << ArithmeticMean(current_data) << "\t\t\t";
  328.     out << StandartDeviation(current_data) << std::endl;
  329.     current_data.clear();
  330.  
  331.     //11 строка вывода
  332.     for (int i = 0; i < 100; ++i)
  333.         current_data.push_back(std::sqrt(std::pow(data[i].proj_mp_miss.x, 2)
  334.                                         + std::pow(data[i].proj_mp_miss.y, 2)
  335.                                         + std::pow(data[i].proj_mp_miss.z, 2)));
  336.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  337.     out << StandartDeviation(current_data) << "\t\t";
  338.     current_data.clear();
  339.  
  340.     for (int i = 0; i < 100; ++i)
  341.         current_data.push_back(data[i].time_to_mp);
  342.     out << ArithmeticMean(current_data) << "\t\t\t";
  343.     out << StandartDeviation(current_data) << std::endl;
  344.     current_data.clear();
  345.  
  346.     //12 строка вывода
  347.     for (int i = 0; i < 100; ++i)
  348.         first_set.push_back(data[i].proj_mp_miss.y);
  349.     for (int i = 0; i < 100; ++i)
  350.         second_set.push_back(data[i].proj_mp_miss.z);
  351.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  352.     first_set.clear();
  353.     second_set.clear();
  354.  
  355.     //13 строка вывода
  356.     for (int i = 0; i < 100; ++i)
  357.         current_data.push_back(data[i].time_to_mp - data[i].t_bv);
  358.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  359.     out << StandartDeviation(current_data) << std::endl;
  360.     current_data.clear();
  361.  
  362.     //14 строка вывода
  363.     for (int i = 0; i < 100; ++i)
  364.         current_data.push_back(data[i].time_to_mp - data[i].t_sbv);
  365.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  366.     out << StandartDeviation(current_data) << std::endl;
  367.     current_data.clear();
  368.  
  369.     //15 строка вывода
  370.     for (int i = 0; i < 100; ++i)
  371.         current_data.push_back(data[i].angle_of_attack);
  372.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  373.     out << StandartDeviation(current_data) << std::endl;
  374.     current_data.clear();
  375.  
  376.     //16 строка вывода
  377.     for (int i = 0; i < 100; ++i)
  378.         current_data.push_back(data[i].delta_V01);
  379.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  380.     out << StandartDeviation(current_data) << std::endl;
  381.     current_data.clear();
  382.  
  383.     //17 строка вывода
  384.     for (int i = 0; i < 100; ++i)
  385.         current_data.push_back(data[i].delta_V02);
  386.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  387.     out << StandartDeviation(current_data) << std::endl;
  388.     current_data.clear();
  389.  
  390.     //18 строка вывода
  391.     out << "<<1.0 < h <= 3.0>>" << "\t\t" << count2 << "\t\t\t";
  392.    
  393.     //вставить Nбв
  394.     int N_bv = 0;
  395.     for (int i = 0; i < 100; ++i)
  396.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5 && data[i].i == 2)
  397.             N_bv++;
  398.  
  399.     out << N_bv << std::endl;
  400.     N_bv = 0;
  401.  
  402.     //19 строка вывода
  403.     for (int i = 0; i < 100; ++i)
  404.         if (data[i].i == 2)
  405.             current_data.push_back(data[i].delta_gamma.sum);
  406.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  407.     current_data.clear();
  408.  
  409.     for (int i = 0; i < 100; ++i)
  410.         if (data[i].i == 2)
  411.             current_data.push_back(data[i].delta_gamma.exec);
  412.     out << ArithmeticMean(current_data) << "\t\t";
  413.     current_data.clear();
  414.  
  415.     for (int i = 0; i < 100; ++i)
  416.         if (data[i].i == 2)
  417.             current_data.push_back(data[i].delta_gamma.inf);
  418.     out << ArithmeticMean(current_data) << std::endl;
  419.     current_data.clear();
  420.  
  421.     //20 строка вывода
  422.     for (int i = 0; i < 100; ++i)
  423.         if (data[i].i == 2)
  424.             current_data.push_back(data[i].delta_gamma.sum);
  425.     out << StandartDeviation(current_data) << "\t\t\t\t\t";
  426.     current_data.clear();
  427.  
  428.     for (int i = 0; i < 100; ++i)
  429.         if (data[i].i == 2)
  430.             first_set.push_back(data[i].delta_gamma.exec);
  431.     out << StandartDeviation(first_set) << "\t\t";
  432.  
  433.     for (int i = 0; i < 100; ++i)
  434.         if (data[i].i == 2)
  435.             second_set.push_back(data[i].delta_gamma.inf);
  436.     out << StandartDeviation(second_set) << "\t\t\t";
  437.  
  438.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  439.     first_set.clear();
  440.     second_set.clear();
  441.  
  442.     //21 строка вывода
  443.     out << "<<3.0 < h <= 6.0>>" << "\t\t" << count3 << "\t\t\t";
  444.     for (int i = 0; i < 100; ++i)
  445.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5 && data[i].i == 3)
  446.             N_bv++;
  447.  
  448.     out << N_bv << std::endl;
  449.     N_bv = 0;
  450.  
  451.     //22 строка вывода
  452.     for (int i = 0; i < 100; ++i)
  453.         if (data[i].i == 3)
  454.             current_data.push_back(data[i].delta_gamma.sum);
  455.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  456.     current_data.clear();
  457.  
  458.     for (int i = 0; i < 100; ++i)
  459.         if (data[i].i == 3)
  460.             current_data.push_back(data[i].delta_gamma.exec);
  461.     out << ArithmeticMean(current_data) << "\t\t";
  462.     current_data.clear();
  463.  
  464.     for (int i = 0; i < 100; ++i)
  465.         if (data[i].i == 3)
  466.             current_data.push_back(data[i].delta_gamma.inf);
  467.     out << ArithmeticMean(current_data) << std::endl;
  468.     current_data.clear();
  469.  
  470.     //23 строка вывода
  471.     for (int i = 0; i < 100; ++i)
  472.         if (data[i].i == 3)
  473.             current_data.push_back(data[i].delta_gamma.sum);
  474.     out << StandartDeviation(current_data) << "\t\t\t\t\t";
  475.     current_data.clear();
  476.  
  477.     for (int i = 0; i < 100; ++i)
  478.         if (data[i].i == 3)
  479.             first_set.push_back(data[i].delta_gamma.exec);
  480.     out << StandartDeviation(first_set) << "\t\t";
  481.  
  482.     for (int i = 0; i < 100; ++i)
  483.         if (data[i].i == 3)
  484.             second_set.push_back(data[i].delta_gamma.inf);
  485.     out << StandartDeviation(second_set) << "\t\t\t";
  486.  
  487.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  488.     first_set.clear();
  489.     second_set.clear();
  490.  
  491.     //24 строка вывода
  492.     out << "<<6.0 < h <= 9.0>>" << "\t\t" << count4 << "\t\t\t";
  493.     for (int i = 0; i < 100; ++i)
  494.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5 && data[i].i == 4)
  495.             N_bv++;
  496.  
  497.     out << N_bv << std::endl;
  498.     N_bv = 0;
  499.  
  500.     //25 строка вывода
  501.     for (int i = 0; i < 100; ++i)
  502.         if (data[i].i == 4)
  503.             current_data.push_back(data[i].delta_gamma.sum);
  504.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  505.     current_data.clear();
  506.  
  507.     for (int i = 0; i < 100; ++i)
  508.         if (data[i].i == 4)
  509.             current_data.push_back(data[i].delta_gamma.exec);
  510.     out << ArithmeticMean(current_data) << "\t\t";
  511.     current_data.clear();
  512.  
  513.     for (int i = 0; i < 100; ++i)
  514.         if (data[i].i == 4)
  515.             current_data.push_back(data[i].delta_gamma.inf);
  516.     out << ArithmeticMean(current_data) << std::endl;
  517.     current_data.clear();
  518.  
  519.     //26 строка вывода
  520.     for (int i = 0; i < 100; ++i)
  521.         if (data[i].i == 4)
  522.             current_data.push_back(data[i].delta_gamma.sum);
  523.     out << StandartDeviation(current_data) << "\t\t\t\t\t";
  524.     current_data.clear();
  525.  
  526.     for (int i = 0; i < 100; ++i)
  527.         if (data[i].i == 4)
  528.             first_set.push_back(data[i].delta_gamma.exec);
  529.     out << StandartDeviation(first_set) << "\t\t";
  530.  
  531.     for (int i = 0; i < 100; ++i)
  532.         if (data[i].i == 4)
  533.             second_set.push_back(data[i].delta_gamma.inf);
  534.     out << StandartDeviation(second_set) << "\t\t\t";
  535.  
  536.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  537.     first_set.clear();
  538.     second_set.clear();
  539.  
  540.     //27 строка вывода
  541.     out << "<<9.0 < h <= 12.0>>" << "\t\t" << count5 << "\t\t\t";
  542.     for (int i = 0; i < 100; ++i)
  543.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5 && data[i].i == 5)
  544.             N_bv++;
  545.  
  546.     out << N_bv << std::endl;
  547.     N_bv = 0;
  548.  
  549.     //28 строка вывода
  550.     for (int i = 0; i < 100; ++i)
  551.         if (data[i].i == 5)
  552.             current_data.push_back(data[i].delta_gamma.sum);
  553.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  554.     current_data.clear();
  555.  
  556.     for (int i = 0; i < 100; ++i)
  557.         if (data[i].i == 5)
  558.             current_data.push_back(data[i].delta_gamma.exec);
  559.     out << ArithmeticMean(current_data) << "\t\t";
  560.     current_data.clear();
  561.  
  562.     for (int i = 0; i < 100; ++i)
  563.         if (data[i].i == 5)
  564.             current_data.push_back(data[i].delta_gamma.inf);
  565.     out << ArithmeticMean(current_data) << std::endl;
  566.     current_data.clear();
  567.  
  568.     //29 строка вывода
  569.     for (int i = 0; i < 100; ++i)
  570.         if (data[i].i == 5)
  571.             current_data.push_back(data[i].delta_gamma.sum);
  572.     out << StandartDeviation(current_data) << "\t\t\t\t\t";
  573.     current_data.clear();
  574.  
  575.     for (int i = 0; i < 100; ++i)
  576.         if (data[i].i == 5)
  577.             first_set.push_back(data[i].delta_gamma.exec);
  578.     out << StandartDeviation(first_set) << "\t\t";
  579.  
  580.     for (int i = 0; i < 100; ++i)
  581.         if (data[i].i == 5)
  582.             second_set.push_back(data[i].delta_gamma.inf);
  583.     out << StandartDeviation(second_set) << "\t\t\t";
  584.  
  585.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  586.     first_set.clear();
  587.     second_set.clear();
  588.  
  589.     //30 строка вывода
  590.     out << "<<12.0 < h <= 15.0>>" << "\t" << count6 << "\t\t\t";
  591.     for (int i = 0; i < 100; ++i)
  592.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5 && data[i].i == 6)
  593.             N_bv++;
  594.  
  595.     out << N_bv << std::endl;
  596.     N_bv = 0;
  597.  
  598.     //31 строка вывода
  599.     for (int i = 0; i < 100; ++i)
  600.         if (data[i].i == 6)
  601.             current_data.push_back(data[i].delta_gamma.sum);
  602.     out << ArithmeticMean(current_data) << "\t\t\t\t\t";
  603.     current_data.clear();
  604.  
  605.     for (int i = 0; i < 100; ++i)
  606.         if (data[i].i == 6)
  607.             current_data.push_back(data[i].delta_gamma.exec);
  608.     out << ArithmeticMean(current_data) << "\t\t";
  609.     current_data.clear();
  610.  
  611.     for (int i = 0; i < 100; ++i)
  612.         if (data[i].i == 6)
  613.             current_data.push_back(data[i].delta_gamma.inf);
  614.     out << ArithmeticMean(current_data) << std::endl;
  615.     current_data.clear();
  616.  
  617.     //32 строка вывода
  618.     for (int i = 0; i < 100; ++i)
  619.         if (data[i].i == 6)
  620.             current_data.push_back(data[i].delta_gamma.sum);
  621.     out << StandartDeviation(current_data) << "\t\t\t\t\t";
  622.     current_data.clear();
  623.  
  624.     for (int i = 0; i < 100; ++i)
  625.         if (data[i].i == 6)
  626.             first_set.push_back(data[i].delta_gamma.exec);
  627.     out << StandartDeviation(first_set) << "\t\t";
  628.  
  629.     for (int i = 0; i < 100; ++i)
  630.         if (data[i].i == 6)
  631.             second_set.push_back(data[i].delta_gamma.inf);
  632.     out << StandartDeviation(second_set) << "\t\t\t";
  633.  
  634.     out << СorrelationСoefficient(first_set, second_set) << std::endl;
  635.     first_set.clear();
  636.     second_set.clear();
  637.  
  638.     //33 строка вывода
  639.     out << data.size() << "\t\t\t\t\t\t";
  640.     int counter = 0;
  641.     for (int i = 0; i < data.size(); ++i)
  642.         if (data[i].h > 15.0)
  643.             ++counter;
  644.     out << counter << std::endl;
  645.     //34 строка вывода
  646.     counter = 0;
  647.     for (int i = 0; i < data.size(); ++i)
  648.         if (data[i].dov)
  649.             ++counter;
  650.     out << counter << "\t\t\t\t\t\t";
  651.     counter = 0;
  652.  
  653.     for (int i = 0; i < data.size(); ++i)
  654.         if (data[i].h < 10.0)
  655.             ++counter;
  656.     out << counter << std::endl;
  657.     //35 строка вывода
  658.     counter = 0;
  659.     for (int i = 0; i < data.size(); ++i)
  660.         if (data[i].rbv)
  661.             ++counter;
  662.     out << counter << "\t\t\t\t\t\t";
  663.     counter = 0;
  664.  
  665.     for (int i = 0; i < data.size(); ++i)
  666.         if (data[i].h < 1.0)
  667.             ++counter;
  668.     out << counter << std::endl;
  669.  
  670.     //36 строка вывода
  671.     for (int i = 0; i < 100; ++i)
  672.         if (data[i].time_to_mp - data[i].t_bv > 0.001 && data[i].t_bv > 5)
  673.             N_bv++;
  674.  
  675.     out << "\t\t\t\t\t\t" << N_bv << std::endl;
  676.     //37 строка вывода
  677.     counter = 0;
  678.     for (int i = 0; i < data.size(); ++i)
  679.         if (data[i].t_sbv >= data[i].t_bv)
  680.             counter++;
  681.     out << "\t\t\t\t\t\t" << counter;
  682.  
  683. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement