#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
Go to the source code of this file.
Macros | |
#define | NELEM(pole) (sizeof pole/sizeof *pole) |
Functions | |
double | na2 (double x) |
double | na3 (double x) |
double ** | map (double(*fce[])(double), double *vstup, int pocet_fce, int pocet_vstup) |
int | main (void) |
Variables | |
double | vstup [] = {1,2,3,4,5, 10} |
double | ludolf [] = {0.0, M_PI_4, M_PI_2, M_PI} |
double(* | fce [])(double) = {na2, na3, sqrt} |
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.
h0nza: "dvojrozmerne" pole bude pole double* pointeru!!! tj. vraci se ukazatel na zacatek pole double* pointeru, tj. double**
__________________ v \
h0nza: argumenty se divne stridaji: fce_pole, vstup_pole, pocet_fce, pocet_vstup ^___________________|
h0nza: je spravny/lepsi uzuz pole, pocet nebo argc, argv? hmm, qsort() bsearch() pouzivaji void*base, size_t nmemb h0nza: pocet_neco by mel byt typu sizeof_t? h0nza: pole funkcnich pointeru muze byt predano bez poctu: pomoci zarazky NULL
Počet funkcí je specifikován parametrem pocet_fce, velikost definičního oboru pak parametrem pocet_vstup.
Příklad použití:
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
Definition in file mapovani-pole-funkci.c.
double** map | ( | double(*[])(double) | fce, |
double * | vstup, | ||
int | pocet_fce, | ||
int | pocet_vstup | ||
) |
namalovat!!!
alokuje pole pointeru na double[] (taky alokuje), volajici free()!
Definition at line 68 of file mapovani-pole-funkci.c.