Posted By

jajojejeje on 12/03/18


Tagged

Lab6Aptaki


Versions (?)

Lab6A_ptaki


 / Published in: C++
 

Lab6A_ptaki

  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. static double suma;
  12. vector<int> obserwacje;
  13. public:
  14. ObiektFunkcyjny(vector<int> obserwacje) : obserwacje(obserwacje) {}
  15. void operator()(int ile) {
  16. vector<int>::iterator i = obserwacje.begin();
  17. int licznik = ile - *i;
  18. licznik *= licznik;
  19. int mienownik = ile + *i;
  20. suma += ((double) licznik) / mienownik;
  21. i++;
  22. }
  23. static double getsuma() {
  24. return suma;
  25. }
  26. };
  27.  
  28. double ObiektFunkcyjny::suma = 0;
  29.  
  30. void generujObserwacje(vector<int> &R) {
  31. multiset<int> r; // bufor do zapisywania obserwacji
  32. for (int i = 0; i < 1000; i++) {
  33. r.insert(rand() % 10); // dodaj wynik nowej obserwacji
  34. }
  35.  
  36. vector<int>::iterator iterator = R.begin();
  37. for (int i = 0; i < 10; i++) {
  38. pair<multiset<int>::iterator, multiset<int>::iterator> para;
  39. para = r.equal_range(i);
  40. int a = 0;
  41. for (multiset<int>::iterator i = para.first; i != para.second; ++i) {
  42. a++;
  43. }
  44. *iterator = a;
  45. ++iterator;
  46. }
  47. }
  48.  
  49. template <typename T>
  50. void wypisz(T t) {
  51. for (typename T::iterator i = t.begin(); i != t.end(); ++i) {
  52. cout << *i << ", ";
  53. }
  54. cout << endl;
  55. }
  56.  
  57. int main()
  58. {
  59.  
  60. srand(time(NULL));
  61. vector<int> S(10);
  62. generujObserwacje(S);
  63. vector<int> R(10);
  64. generujObserwacje(R);
  65. ObiektFunkcyjny of(R);
  66. for_each(S.begin(), S.end(), of);
  67. cout <<"X^2: "<< of.getsuma()<<"<--" << endl;
  68. wypisz(S);
  69. wypisz(R);
  70.  
  71.  
  72.  
  73. std::cout << "Hello World!\n";
  74. }

Report this snippet  

You need to login to post a comment.