Math.h
Author
Albert Floresmath.h je hlavičkový soubor standardní knihovny jazyka C, bývá také součástí jazyka C++. Tato knihovna implementuje matematické funkce pro reálná čísla (např. goniometrické funkce, logaritmy) s přesností double. Od standardu C99 definuje také funkce pro čísla s přesností float a long double. (Může obsahovat konstanty např. Ludolfovo číslo, Eulerovo číslo, ...). Hlavičkový soubor se do zdrojového kódu vkládá pomocí direktivy preprocesoru #include (v C). V C++ oficiální standard místo math.h definuje knihovnu cmath, která implementuje stejnojmenné funkce jako math.h, musíme se tedy rozhodnout, kterou knihovnu chceme použít. Hlavička knihovny cmath se vkládá příkazem #include , ale použití math.h v C++ z důvodu zpětné kompatibility také funguje.
Základní funkce knihovny math.h
Funkce knihovny math. h mají většinou "základní" variantu, která je v C-jazyku realizována s přesností double a potom variantu pro přesnost float a pro přesnost long double. +more Například: * základní varianta je funkce sin, která má argument typu double a vrací hodnotu sinu v přesnosti double, * funkce sinf má argument typu float a vrací hodnotu sinu jako float * funkce sinl má argument typu long double a vrací hodnotu sinu jako long double.
V jazyce C++ funguje math. h trochu odlišně, protože základní varianta funkce je definována s pomocí přetížení pro všechny přesnosti. +more U funkce sin potom záleží typ návratové hodnoty na typu argumentu: * sin s argumentem typu float vrátí typ float * sin s argumentem typu double vrátí typ double * sin s argumentem typu long double vrátí typ long double Varianty funkcí s přesností double a long double (tj. např. sinf a sinl) fungují v C++ stejně jako v klasickém C-jazyku.
Funkce | Popis | typ |
---|---|---|
fabs, fabsf, fabsl | absolutní hodnota | double, float, long double |
sqrt, sqrtf, sqrtl | druhá odmocnina | double, float, long double |
pow, powf, powl | umocňování | double, float, long double |
log, logf, logl | přirozený logaritmus | double, float, long double |
log10, log10f, log10l | logaritmus se základem 10 | double, float, long double |
sin, sinf, sinl | sinus | double, float, long double |
cos, cosf, cosl | kosinus | double, float, long double |
tan, tanf, tanl | tangens | double, float, long double |
acos, acosf, acosl | arcus cosinus | double, float, long double |
asin, asinf, asinl | arcus sinus | double, float, long double |
atan, atanf, atanl | arcus tangens | double, float, long double |
atan2, atan2f, atan2l | arcus tangens | double, float, long double |
sinh, sinhf, sinhl | hyperbolický sinus | double, float, long double |
cosh, coshf, coshl | hyperbolický cosinus | double, float, long double |
tanh, tanhf, tanhl | hyperbolický tangens | double, float, long double |
ceil, ceilf, ceill | vrátí nejbližší celé číslo ne menší než argument (zaokrouhlí nahoru) | double, float, long double |
floor, floorf, floorl | vrátí nejbližší celé číslo ne větší než argument (zaokrouhlí dolů) |
Příklad použití
Uvedený příklad by měl fungovat v jazyce C i C++.
Funkce pow(x,y) (z anglického , což znamená umocňovat) umocňuje reálný základ x reálným číslem y. Číslo x nesmí být záporné, pokud není y celé číslo. +more Číslo x nesmí být nulové, pokud je y menší nebo rovné 0. Záporných hodnot se můžeme zbavit použitím funkce fabs(x) .
Funkci pow je možné použít i pro odmocňování, například pow(x, 1. /2. +more), je druhá odmocnina z x. Pro druhou odmocninu je lepší použít funkci sqrt(x). #include #include .
int main { double x, y, z; printf("Zadejte cislo:"); scanf("%lf", &x); y = sqrt(x); z = pow(x, 3.); printf("Druha odmocnina: %f\n", y); printf("Treti mocnina: %f\n", z); return 0; }
Související články
C (programovací jazyk) * C++ * Komentář (programování) * escape sekvence * stdio. +moreh * date. h * iostream * algoritmus.
Reference
http://www.cppreference.com/wiki/cz/numeric/c/start - C++ Reference * http://www.cplusplus.com/reference/clibrary/cmath/