jazykc  2013.3
upoljazykc
 All Classes Files Functions Variables Typedefs Macros Pages
mapovani-funkce.c
Go to the documentation of this file.
1 
36 #include <stdio.h>
37 #include <stdlib.h>
38 
44 #include <math.h>
45 
46 double na2(double x) { return x*x; }
47 
48 double na3(double x) { return x*x*x; }
49 
50 static vypis (double *vstup, int delka) {
51  int i;
52  for (i=0; i<delka; i++) {
53  printf("%c%g", i?',':'[', vstup[i]);
54  };printf("]\n");
55 }
56 
57 double *map(double (*fce)(double), double *vstup, int delka) {
58  double *pd = (double *)malloc(delka * sizeof(double));
59  int i;
60  for (i=0; i<delka; i++) {
61  pd[i] = fce(vstup[i]);
62  }
63  return pd;
64 }
65 
66 #ifndef NELEM
67 #define NELEM(pole) (sizeof pole/sizeof *pole)
68 #endif
69 
70 double vstup[] = {1,2,3,4,5};
71 
72 //ted vyuzijeme math.h
73 double ludolf[] = {0.0, M_PI_4, M_PI_2, M_PI};
74 
75 int main(void) {
76  double *vysledky_na2;
77  double *vysledky_na3;
78  double *vysledky_sin;
79 
80  vysledky_na2 = map(na2, vstup, NELEM(vstup));
81  vysledky_na3 = map(na3, vstup, NELEM(vstup));
82 
83  vypis(vysledky_na2, NELEM(vstup));
84  vypis(vysledky_na3, NELEM(vstup));
85 
86  vysledky_sin = map(sin, ludolf, NELEM(ludolf));
87  vypis(vysledky_sin, NELEM(ludolf));
88 
89  return 0;
90 }
double na2(double x)
double ** map(double(*fce[])(double), double *vstup, int pocet_fce, int pocet_vstup)
#define NELEM(pole)