Funkcje matematyczne w C++

C++ oferuje wbudowaną bibliotekę <cmath>, która zawiera szereg funkcji matematycznych, takich jak: działania arytmetyczne, funkcje trygonometryczne, logarytmy, potęgowanie i zaokrąglanie.

Aby korzystać z funkcji matematycznych, należy dołączyć nagłówek:


1. Funkcje arytmetyczne podstawowe

Funkcja Opis Przykład
abs(x) wartość bezwzględna abs(-5) → 5
fabs(x) wartość bezwzględna dla double fabs(-3.14) → 3.14
ceil(x) zaokrągla w górę ceil(2.3) → 3
floor(x) zaokrągla w dół floor(2.9) → 2
round(x) zaokrągla do najbliższej liczby całkowitej round(2.5) → 3
trunc(x) usuwa część ułamkową trunc(2.9) → 2

Przykład:


2. Potęgowanie i pierwiastki

Funkcja Opis Przykład
pow(a, b) a podniesione do potęgi b pow(2, 3) → 8
sqrt(x) pierwiastek kwadratowy sqrt(16) → 4
cbrt(x) pierwiastek sześcienny cbrt(27) → 3
hypot(x, y) pierwiastek kwadratowy z sumy kwadratów hypot(3, 4) → 5

Przykład:


3. Funkcje trygonometryczne

Funkcje przyjmują argument w radianach.

Funkcja Opis Przykład
sin(x) sinus sin(π/2) → 1
cos(x) cosinus cos(0) → 1
tan(x) tangens tan(π/4) → 1
asin(x) arcsin asin(1) → π/2
acos(x) arccos acos(1) → 0
atan(x) arctan atan(1) → π/4
atan2(y, x) kąt punktu (x, y) względem osi X atan2(1, 1) → π/4

Przykład:


4. Funkcje wykładnicze i logarytmy

Funkcja Opis Przykład
exp(x) e^x exp(1) → 2.71828
log(x) logarytm naturalny (ln) log(e) → 1
log10(x) logarytm dziesiętny log10(100) → 2
log2(x) logarytm binarny log2(8) → 3
pow(a, b) a^b (już w potęgowaniu) pow(2, 3) → 8

5. Funkcje hiperboliczne

Funkcja Opis
sinh(x) sinus hiperboliczny
cosh(x) cosinus hiperboliczny
tanh(x) tangens hiperboliczny
asinh(x) arcsinh
acosh(x) arccosh
atanh(x) arctanh

Przykład:


6. Funkcje zaokrąglania i części całkowitej

  • floor(x) – w dół
  • ceil(x) – w górę
  • round(x) – do najbliższej liczby całkowitej
  • trunc(x) – obcina część ułamkową
  • modf(x, &intpart) – rozdziela część całkowitą i ułamkową

Przykład:


7. Funkcje wartości bezwzględnej dla różnych typów

  • abs(int) → int
  • fabs(double) → double
  • labs(long) → long
  • llabs(long long) → long long

8. Funkcje maksymalnej i minimalnej wartości

  • fmax(a, b) – zwraca większą wartość
  • fmin(a, b) – zwraca mniejszą wartość

Przykład:


9. Funkcje reszty i modulo

  • fmod(x, y) – reszta z dzielenia zmiennoprzecinkowego x/y
  • remainder(x, y) – reszta zbliżona do 0 (metoda naukowa)

10. Stałe matematyczne w C++

C++20 wprowadził stałe w <numbers>:

W starszych wersjach można używać własnych definicji:


11. Przykładowy program używający różnych funkcji matematycznych


12. Podsumowanie

  • Biblioteka <cmath> zawiera funkcje do potęgowania, pierwiastków, logarytmów, funkcji trygonometrycznych, hiperbolicznych i zaokrąglania.
  • Funkcje działają głównie na typie double, niektóre mają wersje dla float i long double.
  • C++20 wprowadza stałe matematyczne w <numbers>, co ułatwia korzystanie z wartości takich jak π czy e.
  • Funkcje matematyczne są niezastąpione w programowaniu naukowym, grafice, symulacjach i algorytmach numerycznych.