Posted By

jajojejeje on 11/28/18


Tagged

LAB6AobserwacjePtakow


Versions (?)

LAB6A_obserwacjePtakow


 / Published in: C++
 

LAB6A_obserwacjePtakow

  1. #include "pch.h"
  2. #include <iostream>
  3. #include <vector>
  4. #include <ctime>
  5. #include <set>
  6. #include <algorithm>
  7.  
  8. using namespace std;
  9.  
  10. class ObiektFunkcyjny {
  11.  
  12. vector<int> obserwacje;
  13. vector<int>::iterator i;
  14. public:
  15. double suma = 0;
  16. ObiektFunkcyjny(vector<int> obserwacje) : obserwacje(obserwacje) {
  17.  
  18. //cout << *i << endl;
  19. }
  20. void operator()(int ile) {
  21. i = obserwacje.begin();
  22.  
  23. //int w = *i;
  24. int licznik = ile - *i;
  25. licznik *= licznik;
  26. int mienownik = ile + *i;
  27. suma += ((double) licznik) / mienownik;
  28. i++;
  29. cout << suma << endl;
  30. //if (i == obserwacje.end()) cout <<"SUMA: "<< suma << endl;
  31. }
  32. double getSuma() {
  33. return suma;
  34. }
  35. };
  36.  
  37. void generujObserwacje(vector<int> &R) {
  38. multiset<int> r; // bufor do zapisywania obserwacji
  39. for (int i = 0; i < 1000; i++) {
  40. r.insert(rand() % 10); // dodaj wynik nowej obserwacji
  41. }
  42.  
  43. //vector<int> R(10);
  44. vector<int>::iterator iterator = R.begin();
  45. for (int i = 0; i < 10; i++) {
  46. pair<multiset<int>::iterator, multiset<int>::iterator> para;
  47. para = r.equal_range(i);
  48. int a = 0;
  49. for (multiset<int>::iterator i = para.first; i != para.second; ++i) {
  50. a++;
  51. }
  52. *iterator = a;
  53. ++iterator;
  54. }
  55.  
  56. //return R;
  57. }
  58.  
  59. template <typename T>
  60. void wypisz(T t) {
  61. for (typename T::iterator i = t.begin(); i != t.end(); ++i) {
  62. cout << *i << ", ";
  63. }
  64. cout << endl;
  65. }
  66.  
  67. int main()
  68. {
  69. srand(time(NULL));
  70. vector<int> S(10);
  71. generujObserwacje(S);
  72. vector<int> R(10);
  73. generujObserwacje(R);
  74. ObiektFunkcyjny of(R);
  75. for_each(S.begin(), S.end(), of);
  76. cout <<"X^2: "<< of.getSuma()<<"<--" << endl;
  77. wypisz(S);
  78. wypisz(R);
  79.  
  80.  
  81.  
  82. std::cout << "Hello World!\n";
  83. }

Report this snippet  

You need to login to post a comment.