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łkowitejtrunc(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)→ intfabs(double)→ doublelabs(long)→ longllabs(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 zmiennoprzecinkowegox/yremainder(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 dlafloatilong 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.