Posted By

jajojejeje on 12/03/18


Tagged

Lab6Bmonety


Versions (?)

Lab6B_monety


 / Published in: C++
 

Lab6B_monety

  1. #include "pch.h"
  2. #include <iostream>
  3. #include <vector>
  4. #include <ctime>
  5. #include <functional>
  6. #include <algorithm>
  7.  
  8. using namespace std;
  9.  
  10. void wypisz(vector<bool> monety);
  11. template <typename Iterator>
  12. void ileSekwencji(Iterator iteratorBegin, Iterator iteratorEnd, int dlugoscSekwencji, bool wartoscPowtarzana);
  13. template <typename Iterator>
  14. void zamien(Iterator iteratorBegin, Iterator iteratorEnd, int dlugoscSekwencji, bool wartoscPowtarzana);
  15.  
  16. int main()
  17. {
  18. vector<bool> monety;
  19. srand(time(NULL));
  20. for (int i = 0; i < 20; i++) {
  21. monety.push_back(rand() % 2);
  22. }
  23.  
  24. const int rozmiar = 4;
  25. int sekwencje[] = { 1,2,3,4 };
  26. int sekwencjeWynik[rozmiar];
  27.  
  28. wypisz(monety);
  29. for (int i = 0; i < rozmiar; i++)
  30. {
  31. ileSekwencji(monety.begin(),monety.end(),sekwencje[i],0);
  32. }
  33. zamien(monety.begin(), monety.end(), 2, 0);
  34. wypisz(monety);
  35.  
  36.  
  37.  
  38. }
  39.  
  40. template <typename Iterator>
  41. void ileSekwencji(Iterator iteratorBegin, Iterator iteratorEnd,int dlugoscSekwencji,bool wartoscPowtarzana) {
  42. int ile = 0;
  43. bool reszkaOzel = 0;
  44. Iterator iterator = iteratorBegin;
  45. iterator = search_n(iterator, iteratorEnd, dlugoscSekwencji, wartoscPowtarzana);
  46. while (iterator != iteratorEnd) {
  47. for (int i = 0; i < dlugoscSekwencji;i++) if (iterator != iteratorEnd) iterator++;
  48. if ((iterator == iteratorEnd) || *iterator == !wartoscPowtarzana) {
  49. ile++;
  50. }
  51. else {
  52. iterator = find(iterator, iteratorEnd, !wartoscPowtarzana);
  53. }
  54. iterator = search_n(iterator, iteratorEnd, dlugoscSekwencji, wartoscPowtarzana);
  55.  
  56.  
  57. }
  58. cout << dlugoscSekwencji << ": " << ile << endl;//cout << sekwencjeWynik[i] << endl;
  59. }
  60.  
  61. template <typename Iterator>
  62. void zamien(Iterator iteratorBegin, Iterator iteratorEnd, int dlugoscSekwencji, bool wartoscPowtarzana) {
  63. Iterator iterator = iteratorBegin;
  64. iterator = search_n(iterator, iteratorEnd, dlugoscSekwencji, wartoscPowtarzana);
  65. while (iterator != iteratorEnd) {
  66. Iterator tmp = iterator;
  67. for (int i = 0; i < dlugoscSekwencji && tmp!=iteratorEnd; i++) tmp++;
  68. if ((iterator == iteratorEnd) || *iterator == !wartoscPowtarzana) {
  69. for (int i = 0; i < dlugoscSekwencji; i++) {
  70. if (iterator != iteratorEnd) {
  71. *iterator = !wartoscPowtarzana;
  72. iterator++;
  73. }
  74. }
  75. }
  76. iterator = find(iterator, iteratorEnd, !wartoscPowtarzana);
  77. iterator = search_n(iterator, iteratorEnd, dlugoscSekwencji, wartoscPowtarzana);
  78. }
  79. }
  80.  
  81. //template <typename Iterator>
  82. //void zamien(Iterator iteratorBegin, Iterator iteratorEnd, int dlugoscSekwencji, bool wartoscPowtarzana) {
  83. // int ile = 0;
  84. // bool reszkaOzel = 0;
  85. // Iterator iterator = iteratorBegin;
  86. // while (iterator != iteratorEnd) {
  87. // iterator = find(iterator, iteratorEnd, !wartoscPowtarzana);
  88. // iterator = search_n(iterator, iteratorEnd, dlugoscSekwencji, wartoscPowtarzana);
  89. // for (int i = 0; i < dlugoscSekwencji; i++) {
  90. // if (iterator != iteratorEnd) {
  91. // *iterator = !wartoscPowtarzana;
  92. // iterator++;
  93. // }
  94. // }
  95. //
  96. // }
  97. //}
  98.  
  99. void wypisz(vector<bool> monety) {
  100. for (vector<bool>::iterator i = monety.begin(); i != monety.end(); i++) {
  101. std::cout << *i << ", ";
  102. }
  103. cout << endl;
  104. }

Report this snippet  

You need to login to post a comment.