9 Wskaźniki na funkcję
Napisz funkcję
calculate
, która przyjmuje dwa argumenty: wskaźnik na funkcjęoperation
oraz liczbę całkowitąnumber
. Funkcjaoperation
ma przyjmować jeden argument typuint
i zwracać wartość typuint
. Funkcjacalculate
powinna wywołać funkcjęoperation
z argumentemnumber
i zwrócić jej wynik. Stwórz przypadek testowy.Napisz funkcję o nazwie
applyFunction
, która przyjmuje trzy argumenty: wskaźnik na funkcjęfunc
, która przyjmuje jeden argument typuint
i zwracaint
, oraz dwie liczby całkowite:start
iend
. FunkcjaapplyFunction
powinna wywołać funkcjęfunc
dla każdej liczby w zakresie odstart
doend
(włącznie) i wydrukować wyniki na standardowe wyjście. Stwórz przypadek testowy.Napisz funkcję, która otrzymuje trzy argumenty:
- dwa wskaźniki na funkcje z jednym argumentem typu
int
zwracające wartość typuint
, - dodatnią wartość
n
typuint
,
i zwraca 1, jeżeli otrzymane w argumentach funkcje mają ten sam znak dla wartości dla liczb całkowitych od 0 do \(n\), a zwraca 0 w przeciwnym wypadku. Stwórz przypadek testowy.
Napisz funkcję
calculateOperation
, która przyjmuje jako argumenty: wskaźnik na funkcjęoperation
, która przyjmuje dwa argumenty typudouble
i zwracadouble
, oraz dwa argumenty typudouble
-number1
inumber2
. FunkcjacalculateOperation
ma zwracać wynik wywołania funkcjioperation
na argumentachnumber1
inumber2
. Stwórz przypadek testowy.Napisz funkcję
modifyAndSum
, która ma przyjmować jako argument wskaźnik na funkcjęmodifier
, która przyjmuje jeden argument typuint
i zwracaint
, oraz dwa argumenty typuint
:number1
inumber2
. FunkcjamodifyAndSum
powinna modyfikować obie liczby za pomocą funkcjimodifier
i zwracać ich sumę. Przykładem funkcjimodifier
może być funkcja, która zwiększa liczbę o 1 lub zmienia znak liczby. Stwórz przypadek testowy.Stwórz funkcję
applyCondition
, która przyjmuje trzy argumenty: wskaźnik na funkcjęcondition
zwracającą wartość typuint
i przyjmującąint
, wskaźnik na funkcjęaction
również przyjmującą i zwracającąint
, oraz wartość całkowitąvalue
. FunkcjaapplyCondition
powinna najpierw wywołaćcondition
zvalue
jako argumentem. Jeśli wynik to 1,applyCondition
powinna następnie wywołaćaction
navalue
i zwrócić wynik. W przeciwnym wypadku powinna zwrócićvalue
bez zmian. Stwórz przypadek testowy.Stwórz funkcję
executeSequence
, która przyjmuje dwa argumenty: wskaźnik na funkcjęoperation
zwracającąvoid
i przyjmującąint
oraz liczbę całkowitącount
. FunkcjaexecuteSequence
powinna wywołać funkcjęoperation
dokładniecount
razy, przekazując jej jako argument kolejne liczby od 1 docount
. Stwórz przypadek testowy.Stwórz funkcję
modifyValue
, która przyjmuje argument typuint
oraz wskaźnik na funkcjęmodifier
nie przyjmującą żadnych argumentów, ale zwracającą wartość typuint
. FunkcjamodifyValue
powinna dodać do przekazanej wartości wynik wywołania funkcjimodifier
i zwrócić otrzymaną sumę. Stwórz przypadek testowy.Stwórz funkcję
processPair
przyjmującą dwie liczby całkowite oraz wskaźnik na funkcjęprocessor
, która zwracadouble
i przyjmuje dwa argumenty typuint
. FunkcjaprocessPair
powinna wywołaćprocessor
z przekazanymi liczbami, zaokrąglić wynik w dół do najbliższej liczby całkowitej i zwrócić tę wartość jakoint
. Stwórz przypadek testowy.Stwórz funkcję
transformLoop
, która przyjmuje wskaźnik na funkcjętransform
zwracającąint
i przyjmującąint
, wartość początkowąstart
oraz liczbę iteracjiiterations
. Funkcja powinna wykonać określoną liczbę iteracji, w każdej iteracji przypisując zmiennej wynikowej wartość zwróconą przez funkcjętransform
wywołaną na wyniku z poprzedniej iteracji (w pierwszej iteracji na wartościstart
). Na koniec funkcja powinna zwrócić finalną wartość. Stwórz przypadek testowy.Stwórz funkcję
computeWithFallback
, która przyjmuje trzy argumenty: wskaźnik na funkcjęprimary
przyjmującą dwa parametry typuint
i zwracającąint
, wskaźnik na funkcjębackup
o takiej samej sygnaturze oraz dwie wartości całkowitea
ib
. FunkcjacomputeWithFallback
powinna wywołać funkcjęprimary
z argumentamia
ib
. Jeśli wynik funkcjiprimary
jest mniejszy od zera, funkcjacomputeWithFallback
powinna wywołaćbackup
z tymi samymi argumentamia
ib
i zwrócić wynik tej funkcji. W przeciwnym przypadku (gdy wynik funkcjiprimary
jest większy lub równy zero), funkcjacomputeWithFallback
powinna zwrócić wynik funkcjiprimary
. FunkcjacomputeWithFallback
powinna zwracać wartość typuint
. Stwórz przypadek testowy.