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


Creative Commons License Sbírka úloh z jazyka C. © Katedra informatiky Univerzity Palackého v Olomouci, 2009.
Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.