Toto je starší verze dokumentu!
Matematické funkce
C i C++ je jako většina programovacích jazyků vybavena knihovnou s nejběžnějšími matematickými funkcemi. Tyto funkce můžeme nalézt v knihovnách <math.h>
, <stdlib.h>
pro jazyk C a v knihovnách <cmath>
, <cstdlib>
pro jazyk C++. Zde pro přehled uvedeme ty nejpoužívanější z nich.
Absolutní hodnota - abs(), fabs(), std::abs()
Absolutní hodnota je funkce, která má v jazycích C/C++ dvě varianty: celočíselnou v knihovách <stdlib.h>
/<cstdlib>
a s plovoucí čárkou v knihovnách <math.h>
/<cmath>
. V moderních implementacích (od C++17) stačí includovat pouze jednu z uvedených knihoven a lze pak používat funkci std::abs() jak pro datové typy s plovoucí čárkou, tak i celočíselné (je přetížená).
Ukázka použití funkcí abs() a fabs() (C implementace)
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int x = -42; double y = 6.34; int ax = abs(x); double ay = fabs(ay); printf("|%d| = %d\n", x, ax); printf("|%lf| = %lf\n", y, ay); return 0; }
Ukázka použití funkce std::abs() (C++17 implementace)
#include <cstdio> #include <cstdlib> #include <cmath> int main() { int x = -42; double y = 6.34; int ax = std::abs(x); double ay = std::abs(ay); std::printf("|%d| = %d\n", x, ax); std::printf("|%lf| = %lf\n", y, ay); return 0; }
Mocnina - pow()
Pokud chceme například vypočítat jen X², stačí double xna2 = x * x;
– není třeba využívat sofistikovanou matematickou funkci. Pro složitější mocniny se hodí C funkce
double pow(double zaklad, double exponent)
, případně float powf(float zaklad, float exponent)
nebo plně přetížená C++11 funkce std::pow()
, která umožňuje operandy všech číselných typů, včetně různého typu mezi operandy.
Ukázka použití funkce pow()
#include <stdlib.h> #include <stdio.h> #include <math.h> int main() { double x = 2; double y = 6; double vysl = pow(x, y); printf("%lf^%lf = %lf\n", x, y, vysl); return 0; }