Ugrás a tartalomhoz

cmath library

A Wikiszótárból, a nyitott szótárból
(cmath szócikkből átirányítva)


Főnév

cmath library (tsz. cmath libraries)

  1. (informatika) A cmath (korábban math.h) egy C++ standard könyvtár, amely matematikai függvényeket biztosít, például trigonometriai, exponenciális és logaritmikus számításokhoz. Ezek a függvények általában double típusú számokkal működnek, de léteznek float és long double verziók is.



1. A cmath használata

A <cmath> fejlécet kell beilleszteni:

#include <iostream>
#include <cmath>

A függvényeket std:: névtérrel kell használni, de ha using namespace std;-ot használunk, akkor ez elhagyható.



2. Gyakori függvények és példák

Alapvető matematikai függvények

Függvény Leírás Példa
abs(x) x abszolút értéke (egész számokhoz is) std::abs(-5) → 5
fabs(x) x abszolút értéke (lebegőpontos) std::fabs(-5.3) → 5.3
ceil(x) x felfelé kerekítése std::ceil(2.3) → 3.0
floor(x) x lefelé kerekítése std::floor(2.9) → 2.0
round(x) x kerekítése a legközelebbi egészre std::round(2.5) → 3.0
trunc(x) x egész részének visszaadása std::trunc(2.9) → 2.0

Példa:

#include <iostream>
#include <cmath>

int main() {
    double x = -5.7;

    std::cout << "abs(x): " << std::abs(x) << std::endl;
    std::cout << "ceil(x): " << std::ceil(x) << std::endl;
    std::cout << "floor(x): " << std::floor(x) << std::endl;
    std::cout << "round(x): " << std::round(x) << std::endl;

    return 0;
}

Hatvány és logaritmus függvények

Függvény Leírás Példa
pow(x, y) x^y hatványozás std::pow(2, 3) → 8.0
sqrt(x) x négyzetgyöke std::sqrt(25) → 5.0
cbrt(x) x köbgyöke std::cbrt(27) → 3.0
log(x) Természetes alapú logaritmus (ln) std::log(2.718) → kb. 1.0
log10(x) 10-es alapú logaritmus std::log10(1000) → 3.0
exp(x) e^x hatványozás std::exp(1) → 2.718

Példa:

#include <iostream>
#include <cmath>

int main() {
    double x = 16.0;

    std::cout << "sqrt(x): " << std::sqrt(x) << std::endl;
    std::cout << "log(x): " << std::log(x) << std::endl;
    std::cout << "pow(x, 0.5): " << std::pow(x, 0.5) << std::endl;

    return 0;
}

Trigonometriai függvények

A trigonometriai függvények radiánban dolgoznak!

Függvény Leírás Példa
sin(x) szinusz std::sin(M_PI/2) → 1.0
cos(x) koszinusz std::cos(0) → 1.0
tan(x) tangens std::tan(M_PI/4) → 1.0
asin(x) inverz szinusz std::asin(1) → π/2
acos(x) inverz koszinusz std::acos(0) → π/2
atan(x) inverz tangens std::atan(1) → π/4
atan2(y, x) y/x inverz tangense std::atan2(1, 1) → π/4

Példa:

#include <iostream>
#include <cmath>

int main() {
    double szog = 45.0;
    double radian = szog * M_PI / 180.0;

    std::cout << "sin(45°): " << std::sin(radian) << std::endl;
    std::cout << "cos(45°): " << std::cos(radian) << std::endl;
    std::cout << "tan(45°): " << std::tan(radian) << std::endl;

    return 0;
}

Speciális függvények

Függvény Leírás Példa
hypot(x, y) Pitagoraszi távolság (sqrt(x² + y²)) std::hypot(3, 4) → 5.0
fmod(x, y) x maradéka y-val osztva std::fmod(7.5, 2.0) → 1.5
remainder(x, y) Kerekített maradék osztásnál std::remainder(7.5, 2.0) → -0.5

Példa:

#include <iostream>
#include <cmath>

int main() {
    double x = 7.5, y = 2.0;

    std::cout << "fmod(x, y): " << std::fmod(x, y) << std::endl;
    std::cout << "hypot(3, 4): " << std::hypot(3, 4) << std::endl;

    return 0;
}

3. Összegzés

  • A <cmath> függvények segítenek matematikai számításokban.
  • A trigonometriai függvények radiánban dolgoznak, ezért átalakítás szükséges (M_PI / 180.0 szorzó).
  • A legtöbb függvény double értéket ad vissza, de elérhető float és long double verzió is (std::sin(float), std::sin(long double)).
  • Speciális függvények is elérhetők, mint hypot(), fmod() és remainder().