Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void fun() { std::cout << "Fun\n"; };
- void fun1() { std::cout << "Fun1\n"; };
- void funVal(int val) { std::cout << "FunVal with val = " << val << '\n'; };
- void funVal1(int val) { std::cout << "FunVal1 with val = " << val << '\n'; };
- int min(int a, int b) { return a < b ? a : b; };
- int max(int a, int b) { return a > b ? a : b; };
- char fun(float* fPtr, int size);
- void zero() { std::cout << "Value is zero\n"; };
- void above() { std::cout << "Value is above zero\n"; };
- void beyond() { std::cout << "Value is beyond zero\n"; };
- bool sortUp(int a, int b) { return a < b; };
- bool sortDown(int a, int b) { return a > b; };
- bool sortOdd(int a, int b) { return (a%2 == 0) and (b % 2 !=0); };
- bool sortEven(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)=nullptr, 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 ((sortCriteria and sortCriteria(arr[tail],arr[head])) or (!sortCriteria and (arr[tail] < arr[head])))
- {
- int tmp = arr[head];
- arr[head] = arr[tail];
- arr[tail] = tmp;
- }
- }
- }
- if (print) { print(arr, arrSize); };
- }
- void printArr(int* arr, int arrSize)
- {
- for (int i = 0; i < arrSize; i++) { std::cout << arr[i] << ' '; }; std::cout << '\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;
- }
- void forEach(int* arr, int arrSize, int(*action)(int* arr, int id))
- {
- for (int i{ 0 }; i < arrSize; ++i)
- {
- if (action) { action(arr, i); };
- }
- }
- int randomElement(int* arr, int id)
- {
- arr[id] = rand() % 50;
- return 0;
- }
- int printElement(int* arr, int id)
- {
- std::cout << arr[id] << ' ';
- return 0;
- };
- int main()
- {
- int arrSize{ 15 };
- int* arr{ new int[arrSize] { 6,1,4,2,8,9,11,26,2,7,8,11,2,2,3 } };
- forEach(arr, arrSize, printElement);
- forEach(arr, arrSize, randomElement);
- std::cout << '\n';
- forEach(arr, arrSize, printElement);
- //const int fptrSize{ 3 };
- //int (*fptr[fptrSize])(int*, int) { arrMax, arrMin, arrSum};
- //
- //for (int funNum{ 0 }; funNum < fptrSize; ++funNum)
- //{
- // std::cout << fptr[funNum](arr, arrSize) << '\n';
- //}
- //int arrSize{ 15 };
- //int* arr{ new int[arrSize] { 6,1,4,2,8,9,11,26,2,7,8,11,2,2,3 } };
- ////printArr(arr, arrSize);
- //sortBuble(arr, arrSize,nullptr,printArrRow);
- //printArr(arr, arrSize);
- //void (*assetValue)() { nullptr };
- //int value{ 0 };
- //std::cout << "Enter number\n";
- //std::cin >> value;
- ////if (value == 0) { assetValue = zero; };
- //if (value > 0) { assetValue = above; };
- //if (value < 0) { assetValue = beyond; };
- //if (assetValue) { assetValue(); }
- //else { std::cout << "assetValue is nullptr!\n"; };
- //char(*funPointer)(float*, int) {nullptr};
- //void (*funPtr)() { fun };
- //void (*funValPtr)(int) { funVal };
- //int(*minMaxPtr)(int, int) { min };
- //funPtr();
- //funValPtr(33);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement