Matematik funksiyalar jiddiyroq hisob-kitoblar uchun mo’ljallangan. Oddiy qo’shish-ayirishni operatorlar bilan bajaramiz, biroq ildiz olish, darajaga oshirish, trigonometriya yoki yaxlitlash kabi amallar uchun C++’ning <cmath> kutubxonasi bor. U ilmiy va muhandislik hisoblarining tayyor quroli.
cmath — C++ standart kutubxonasining matematik funksiyalarni (ildiz, daraja, logarifm, trigonometriya) taqdim etadigan sarlavha fayli. Undan foydalanish uchun
#include <cmath>yoziladi.
Kutubxonani ulash va asosiy funksiyalar
Eng ko’p ishlatiladigan funksiyalarni ko’rib chiqamiz:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << sqrt(144) << endl; // kvadrat ildiz
cout << pow(2, 10) << endl; // daraja
cout << abs(-15) << endl; // modul
return 0;
}
12
1024
15
sqrt — kvadrat ildiz, pow(a, b) — a ning b-darajasi, abs — sonning modeli (musbat qiymati). Bular kundalik hisoblarda doimo kerak bo’ladi.
Yaxlitlash funksiyalari
<cmath> yaxlitlashning turli usullarini beradi. Ularni jadvalda solishtiramiz:
| Funksiya | Vazifasi | f(3.4) |
f(3.6) |
|---|---|---|---|
ceil() |
yuqoriga yaxlitlaydi | 4 |
4 |
floor() |
pastga yaxlitlaydi | 3 |
3 |
round() |
eng yaqin butunga | 3 |
4 |
Amalda:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << ceil(3.2) << endl; // doim yuqoriga
cout << floor(3.9) << endl; // doim pastga
cout << round(3.5) << endl; // eng yaqinga
return 0;
}
4
3
4
ceil har doim yuqoriga (3.2 ham 4), floor har doim pastga (3.9 ham 3), round esa eng yaqin butunga yaxlitlaydi. Farqni yaxshi tushunib oling.
Eng katta va eng kichik
max va min funksiyalari ikki qiymatdan mos ravishda kattasini va kichigini qaytaradi:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a = 42, b = 17;
cout << "Katta: " << max(a, b) << endl;
cout << "Kichik: " << min(a, b) << endl;
return 0;
}
Katta: 42
Kichik: 17
Amaliy misol: masofa hisoblash
Matematik funksiyalarning kuchini real vazifada ko’ramiz — ikki nuqta orasidagi masofa (Pifagor teoremasi):
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x1 = 0, y1 = 0;
double x2 = 3, y2 = 4;
double masofa = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
cout << "Masofa: " << masofa << endl;
return 0;
}
Masofa: 5
Bu formula xaritalarda ikki nuqta orasini o’lchash, o’yinlarda obyektlar yaqinligini aniqlashda ishlatiladi.
Xulosa
Bu bo’limda <cmath> kutubxonasi bilan sqrt, pow, abs, yaxlitlash funksiyalari (ceil, floor, round), max/min va masofa hisoblashni ko’rib chiqdik. Jiddiy matematik amallar uchun bu kutubxona birinchi yordamchi. Keyingi darsda mantiqiy (Boolean) qiymatlarga o’tamiz.