| ← knihovna time.h | C/C++ | knihovna stdlib.h → |
Standardní knihovna <math.h> obsahuje spoustu funkcí, které vykonávají běžné matematické operace. Jejich parametry i návratové hodnoty jsou většinou typu double. Kromě funkcí v této knihovně také naleznete užitečná makra, jako M_PI jež je hodnotou pí.
V systémech UNIX bude možná potřeba překladači předat argument -lm, který zajistí použití sdílené matematické knihovny systému UNIX. Tento parametr je zkratkou pro /usr/lib/libm.a.
Příkaz překladu z příkazové řádky pak může vypadat nějak takto:
gcc -o program kod.c -lm -Wall
Použití těchto funkcí se mi zdá natolik triviální, že snad není k příkladu třeba žádného komentáře.
1: /*------------------------------------------------*/ 2: /* matika.c */ 3: #include <stdio.h> 4: #include <math.h> 6: int main(void) 7: { 8: int ia; 9: float fa; 10: double da; 11: /* kresleni sinusove vlny */ 12: for (fa = 0.0; fa < 2.0 * M_PI; fa += M_PI / 13) { 13: ia = 40 + 20.0 * sin(fa); 14: printf("%*c\n", ia, '*'); 15: } 17: printf("ceil(%f)=%f\tfloor(%f)=%f\n", 5.9, ceil(5.9), 5.9, floor(5.9)); 18: printf("ceil(%f)=%f\tfloor(%f)=%f\n", 5.1, ceil(5.1), 5.1, floor(5.1)); 20: #define MODF 5.5 21: fa = modf(MODF, &da); 22: printf("fmod(%4.2f,%4.2f)=%4.2f\nmodf(%4.2f,&y)=%4.2f --> y=%4.2f\n", 23: 100.0, 3.0, fmod(100.0, 3.0), MODF, fa, da); 25: return 0; 26: } 28: /*------------------------------------------------*/
Výstup z programu:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
ceil(5.900000)=6.000000 floor(5.900000)=5.000000
ceil(5.100000)=6.000000 floor(5.100000)=5.000000
fmod(100.00,3.00)=1.00
modf(5.50,&y)=0.50 --> y=5.00
| ← knihovna time.h | C/C++ | knihovna stdlib.h → |
