Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. # include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. using namespace std;
  6.  
  7. void smooth( vector<double>const& input, vector<double>& output, int n, int window)
  8. {
  9. int i, j, z, k1, k2, hw;
  10. double tmp;
  11. if (window%2 == 0) window++;
  12. hw = (window - 1) / 2;
  13. output[0] = input[0];
  14.  
  15. for (i = 1; i < n; i++) {
  16. tmp = 0;
  17. if (i < hw) {//начало массива и нужно изменение окна
  18. k1 = 0;
  19. k2 = 2 * i;
  20. z = k2 + 1;
  21. }
  22. else if ((i + hw) > (n - 1)) {//конец массива и необходимость аналогично изменить размер
  23. k1 = i - n + i + 1;
  24. k2 = n - 1;
  25. z = k2 - k1 + 1;
  26. }
  27. else {
  28. k1 = i - hw;
  29. k2 = i + hw;
  30. z = window;
  31. }
  32.  
  33. for (j = k1; j <= k2; j++) {
  34. tmp += input[j];
  35. }
  36. output[i] = tmp / z;
  37. }
  38. }
  39. int main() {
  40. string inputFile;
  41. int window;
  42. cout << "file and window: ";
  43. cin >> inputFile>>window;
  44. vector<double>numbers;
  45. double num;
  46. ifstream in(inputFile);
  47. if (in.is_open())
  48. {
  49. in.ignore(numeric_limits <streamsize>::max(),'\n');
  50. while (in >> num)
  51. numbers.push_back(num);
  52. }
  53. in.close();
  54. for (auto elem : numbers)
  55. cout << elem << '\n';
  56. cout << "after smooth\n";
  57. vector<double>resnumbers(numbers.size());
  58. smooth(numbers,resnumbers,numbers.size(),window);
  59. double temp=resnumbers[0];
  60. ofstream out("afterSmooth.txt");
  61. out << "Values after Smooth:" << '\n';
  62. for (auto elem : resnumbers) {
  63. out << elem<<endl;
  64. if(elem>=temp)
  65. cout << elem <<'>'<< '\n';
  66. else cout << elem << '<' << '\n';
  67. temp = elem;
  68. }
  69. out.close();
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement