Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- //void fun() { std::cout << "fun called!\n"; };
- //void fun1() { std::cout << "fun1 called!\n"; };
- //
- //void funNum(int num) { std::cout << "funNum with num = " << num << " called!\n"; };
- //void funNum1(int num) { std::cout << "funNum1 with num = " << num << " called!\n"; };
- //void countdown(int num) { while (num >= 0) { std::cout << num-- << '\n'; } std::cout << '\n'; };
- //
- //
- int max(int a, int b) { return a > b ? a : b; };
- int min(int a, int b) { return a < b ? a : b; };
- //
- //double functD(int a, bool b, long t) { return 36.6; };
- void zero() { std::cout << "Value is zero\n"; };
- void above() { std::cout << "Value above zero\n"; };
- void beyond() { std::cout << "Value beyond zero\n"; };
- int arrMin(int* arr, int arrSize)
- {
- int id{ 0 };
- for (int i{ 0 }; i < arrSize; ++i)
- {
- id = arr[id] < arr[i] ? id : i;
- }
- return arr[id];
- }
- int arrMax(int* arr, int arrSize)
- {
- int id{ 0 };
- for (int i{ 0 }; i < arrSize; ++i)
- {
- id = arr[id] > arr[i] ? id : i;
- }
- return arr[id];
- }
- int arrSum(int* arr, int arrSize)
- {
- int sum{ 0 };
- for (int i{ 0 }; i < arrSize; ++i)
- {
- sum += arr[i];
- }
- return sum;
- }
- bool sortUpArr(int a, int b) { return a < b; };
- bool sortDownArr(int a, int b) { return a > b; };
- bool sortEvenArr(int a, int b) { return (a % 2 == 0) and (b % 2 !=0); };
- bool sortOddArr(int a, int b) { return (a % 2 != 0) and (b % 2 == 0); };
- void printArrRow(int* arr, int arrSize)
- {
- for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
- }
- void printArrRowTab(int* arr, int arrSize)
- {
- for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\t'; }; std::cout << '\n';
- }
- void printArrCol(int* arr, int arrSize)
- {
- for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << '\n'; }; std::cout << '\n';
- }
- void sortBuble(int* arr, int arrSize, bool(*sortCriteria)(int,int), void(*print)(int*, int)=nullptr)
- {
- if (print) { print(arr, arrSize); };
- for (int head{ 0 }; head < arrSize; head++)
- {
- for (int tail{ arrSize - 1 }; tail > head; tail--)
- {
- //if ((up and (sortUpArr(arr[tail],arr[tail - 1]))) or (!up and (sortDownArr(arr[tail], arr[tail - 1]))))
- if ( sortCriteria(arr[tail],arr[tail - 1]))
- {
- int tmp = arr[tail];
- arr[tail] = arr[tail - 1];
- arr[tail - 1] = tmp;
- }
- }
- }
- if (print) { print(arr, arrSize); };
- }
- int main()
- {
- const int arrSize{ 10 };
- int arr[arrSize] = { 6,1,4,2,8,9,11,3,2,1 };
- //for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
- sortBuble(arr, arrSize, sortUpArr, printArrRowTab);
- //for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\n';
- //const int fptrSize{ 3 };
- //int (*fptr[fptrSize])(int*, int) { arrMax, arrSum, arrMin};
- //
- //for (int funNum{ 0 }; funNum < fptrSize; ++funNum)
- //{
- // std::cout << fptr[funNum](arr, arrSize) << '\n';
- //}
- /*int val{ 0 };
- void(*fPtr)() { nullptr };
- std::cout << "Enter some integer number\n";
- std::cin >> val;
- if (val == 0) { fPtr = zero; };
- if (val > 0) { fPtr = above; };
- if (val < 0) { fPtr = beyond; };
- if (fPtr) { fPtr(); }*/
- //else { std::cout << "fPtr = nullptr"; }
- //void (*funPtr)() { fun }; //void(*)()
- //void (*funNumPtr)(int) { funNum };
- //int (*minMaxPtr)(int, int) { min };
- //double (*fPtr)(int, bool, long) { functD };
- //std::cout << fun << " < === > " << funPtr << '\n';
- //std::cout << funNum << " < === > " << funNumPtr << '\n';
- //std::cout << min << " < === > " << minMaxPtr << '\n';
- //std::cout << '\n';
- //funPtr = fun1;
- //funNumPtr = countdown;
- //minMaxPtr = min;
- //std::cout << fun1 << " < === > " << funPtr << '\n';
- //std::cout << countdown << " < === > " << funNumPtr << '\n';
- //std::cout << max << " < === > " << minMaxPtr << '\n';
- //funNumPtr(5);
- //std::cout << minMaxPtr(34, 23) << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement