Mapování pole funkcí
Téma: Ukazatele na funkce
Procvičované učivo: ukazatele na funkce, dynamická alokace paměti, funkce, pole
Napište v jazyku C funkci double **map(double(*fce[])(double),double *vstup,int pocet_fce, int pocet_vstup)
, která na prvky pole vstup
(definiční obor) mapuje postupně jednotlivé funkce z pole fce
. Z vypočtených hodnot vytvoří dvourozměrné pole, které bude návratovu hodnotou z této funkce. První řádek výstupního pole bude odpovídat definičnímu oboru, druhý řádek hodnotám první funkce a tak dále, až poslední řádek bude odpovídat hodnotám poslední předané funkce. Počet funkcí je specifikován parametrem pocet_fce
, velikost definičního oboru pak parametrem pocet_vstup
.
Příklad použití:
double na2(double x){ return x*x; } double na3(double x){ return x*x*x; } int main(){ ... pole_fci[0] = na2; pole_fci[1] = na3; ... pole_vysledku = map(pole_fci, pole, 2, 5); ... }
Příklad výstupu:
Hodnoty vystupniho pole: 1 2 3 4 5 1 4 9 16 25 1 8 27 64 125
Povolené knihovny: stdio.h, stdlib.h, math.h