Advertisement
avr39-ripe

sbd192FPtr

Apr 4th, 2020
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.59 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. void fun() { std::cout << "Fun" << '\n'; };
  4. void fun1() { std::cout << "Fun1" << '\n'; };
  5.  
  6. void funVal(int val) { std::cout << "FunVal with val = " << val << '\n'; };
  7. void funVal1(int val) { std::cout << "FunVal1 with val = " << val << '\n'; };
  8.  
  9. int max(int a, int b) { return a > b ? a : b; };
  10. int min(int a, int b) { return a < b ? a : b; };
  11.  
  12. void zero() { std::cout << "Value is zero\n"; };
  13. void above() { std::cout << "Value is above zero\n"; };
  14. void beyond() { std::cout << "Value is beyond zero\n"; };
  15. void printArr(int* arr, int arrSize)
  16. {
  17.     for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  18. }
  19.  
  20. bool sortUp(int a, int b) { return a < b; };
  21. bool sortDown(int a, int b) { return a > b; };
  22. bool sortOdd(int a, int b) { return (a%2 == 0) and (b % 2 !=0); };
  23. bool sortEven(int a, int b) { return (a % 2 != 0) and (b % 2 == 0); };
  24.  
  25. void printArrRow(int* arr, int arrSize)
  26. {
  27.     for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  28. }
  29.  
  30. void printArrRowTab(int* arr, int arrSize)
  31. {
  32.     for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\t'; }; std::cout << '\n';
  33. }
  34.  
  35. void printArrCol(int* arr, int arrSize)
  36. {
  37.     for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\n'; }; std::cout << '\n';
  38. }
  39.  
  40.  
  41. void sortBuble(int* arr, int arrSize, bool(*sortCriteria)(int,int), void(*print)(int*,int)=nullptr)
  42. {
  43.     if (print) { print(arr, arrSize); };
  44.     for (int head{ 0 }; head < arrSize; ++head)
  45.     {
  46.         for (int tail{ arrSize - 1 }; tail > head; --tail)
  47.         {
  48.             if (sortCriteria(arr[tail], arr[head]))
  49.             {
  50.                 int tmp = arr[head];
  51.                 arr[head] = arr[tail];
  52.                 arr[tail] = tmp;
  53.             }
  54.         }
  55.     }
  56.     if (print) { print(arr, arrSize); };
  57. }
  58.  
  59.  
  60. int main()
  61. {
  62.     int arrSize{ 15 };
  63.     int* arr{ new int[arrSize] { 6,1,4,2,8,9,11,26,2,7,8,11,2,2,3 } };
  64.  
  65.     //printArr(arr, arrSize);
  66.     sortBuble(arr, arrSize,sortOdd, printArrRow);
  67.     //printArr(arr, arrSize);
  68.     sortBuble(arr, arrSize,sortEven, printArrRowTab);
  69.     //printArr(arr, arrSize);
  70.     //void(*assetvalue)() { nullptr };
  71.  //   int value{ 0 };
  72.     //std::cout << "enter number\n";
  73.     //std::cin >> value;
  74.  
  75.     //if (value == 0) { assetvalue = zero; };
  76.     //if (value > 0) { assetvalue = above; };
  77.     //if (value < 0) { assetvalue = beyond; };
  78.  
  79.     //assetvalue();
  80.  
  81.     //if (assetvalue) { assetvalue(); }
  82.     //else { std::cout << "assetvalue is nullptr!\n"; };
  83.  
  84.     //std::cout << fun << '\n';
  85.     //void(*fPtr)(){ fun };
  86.     //
  87.     //fPtr();
  88.     //fPtr = fun1;
  89.     //fPtr();
  90.  
  91. }
  92. //#include <iostream>
  93. //
  94. //
  95. //void fun() { std::cout << "Fun\n"; };
  96. //void fun1() { std::cout << "Fun1\n"; };
  97. //
  98. //void funVal(int val) { std::cout << "FunVal with val = " << val << '\n'; };
  99. //void funVal1(int val) { std::cout << "FunVal1 with val = " << val << '\n'; };
  100. //
  101. //int min(int a, int b) { return a < b ? a : b; };
  102. //int max(int a, int b) { return a > b ? a : b; };
  103. //
  104. //char fun(float* fPtr, int size);
  105. //
  106. //void zero() { std::cout << "Value is zero\n"; };
  107. //void above() { std::cout << "Value is above zero\n"; };
  108. //void beyond() { std::cout << "Value is beyond zero\n"; };
  109. //
  110. //bool sortUp(int a, int b) { return a < b; };
  111. //bool sortDown(int a, int b) { return a > b; };
  112. //bool sortOdd(int a, int b) { return (a%2 == 0) and (b % 2 !=0); };
  113. //bool sortEven(int a, int b) { return (a % 2 != 0) and (b % 2 == 0); };
  114. //
  115. //void printArrRow(int* arr, int arrSize)
  116. //{
  117. //  for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  118. //}
  119. //
  120. //void printArrRowTab(int* arr, int arrSize)
  121. //{
  122. //  for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\t'; }; std::cout << '\n';
  123. //}
  124. //
  125. //void printArrCol(int* arr, int arrSize)
  126. //{
  127. //  for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\n'; }; std::cout << '\n';
  128. //}
  129. //
  130. //
  131. //void sortBuble(int* arr, int arrSize, bool(*sortCriteria)(int, int)=nullptr, void(*print)(int*, int)=nullptr)
  132. //{
  133. //  if (print) { print(arr, arrSize); };
  134. //  for (int head{ 0 }; head < arrSize; ++head)
  135. //  {
  136. //      for (int tail{ arrSize - 1 }; tail > head; --tail)
  137. //      {
  138. //          if ((sortCriteria and sortCriteria(arr[tail],arr[head])) or (!sortCriteria and (arr[tail] < arr[head])))
  139. //          {
  140. //              int tmp = arr[head];
  141. //              arr[head] = arr[tail];
  142. //              arr[tail] = tmp;
  143. //          }
  144. //      }
  145. //  }
  146. //  if (print) { print(arr, arrSize); };
  147. //}
  148. //
  149. //void printArr(int* arr, int arrSize)
  150. //{
  151. //  for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
  152. //}
  153. //
  154. //
  155. //int arrMin(int* arr, int arrSize)
  156. //{
  157. //  int id{ 0 };
  158. //  for (int i{ 0 }; i < arrSize; ++i)
  159. //  {
  160. //      id = arr[id] < arr[i] ? id : i;
  161. //  }
  162. //  return arr[id];
  163. //}
  164. //
  165. //int arrMax(int* arr, int arrSize)
  166. //{
  167. //  int id{ 0 };
  168. //  for (int i{ 0 }; i < arrSize; ++i)
  169. //  {
  170. //      id = arr[id] > arr[i] ? id : i;
  171. //  }
  172. //  return arr[id];
  173. //}
  174. //
  175. //
  176. //int arrSum(int* arr, int arrSize)
  177. //{
  178. //  int sum{ 0 };
  179. //  for (int i{ 0 }; i < arrSize; ++i)
  180. //  {
  181. //      sum += arr[i];
  182. //  }
  183. //  return sum;
  184. //}
  185. //void forEach(int* arr, int arrSize, int(*action)(int* arr, int id))
  186. //{
  187. //  for (int i{ 0 }; i < arrSize; ++i)
  188. //  {
  189. //      if (action) { action(arr, i); };
  190. //  }
  191. //}
  192. //
  193. //int randomElement(int* arr, int id)
  194. //{
  195. //  arr[id] = rand() % 50;
  196. //  return 0;
  197. //}
  198. //
  199. //int printElement(int* arr, int id)
  200. //{
  201. //  std::cout << arr[id] << ' ';
  202. //  return 0;
  203. //};
  204. //
  205. //int main()
  206. //{
  207. //  int arrSize{ 15 };
  208. //  int* arr{ new int[arrSize] { 6,1,4,2,8,9,11,26,2,7,8,11,2,2,3 } };
  209. //
  210. // 
  211. //  forEach(arr, arrSize, printElement);
  212. //  forEach(arr, arrSize, randomElement);
  213. //  std::cout << '\n';
  214. //  forEach(arr, arrSize, printElement);
  215. //
  216. //  //const int fptrSize{ 3 };
  217. //  //int (*fptr[fptrSize])(int*, int) {  arrMax, arrMin, arrSum};
  218. // //  
  219. //
  220. //  //for (int funNum{ 0 }; funNum < fptrSize; ++funNum)
  221. //  //{
  222. //  //  std::cout << fptr[funNum](arr, arrSize) << '\n';
  223. //  //}
  224. //
  225. //  //int arrSize{ 15 };
  226. //  //int* arr{ new int[arrSize] { 6,1,4,2,8,9,11,26,2,7,8,11,2,2,3 } };
  227. //  ////printArr(arr, arrSize);
  228. //  //sortBuble(arr, arrSize,nullptr,printArrRow);
  229. //  //printArr(arr, arrSize);
  230. //
  231. //  //void (*assetValue)() { nullptr };
  232. //
  233. //  //int value{ 0 };
  234. //  //std::cout << "Enter number\n";
  235. //  //std::cin >> value;
  236. //
  237. //  ////if (value == 0) { assetValue = zero; };
  238. //  //if (value > 0) { assetValue = above; };
  239. //  //if (value < 0) { assetValue = beyond; };
  240. //
  241. //  //if (assetValue) { assetValue(); }
  242. //  //else { std::cout << "assetValue is nullptr!\n"; };
  243. //
  244. //  //char(*funPointer)(float*, int) {nullptr};
  245. //  //void (*funPtr)() { fun };
  246. //  //void (*funValPtr)(int) { funVal };
  247. //  //int(*minMaxPtr)(int, int) { min };
  248. //
  249. //  //funPtr();
  250. //  //funValPtr(33);
  251. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement