Amaliy qism: Tasodifiy belgilarni hosil qilish


Download 1.86 Mb.
bet1/13
Sana07.05.2023
Hajmi1.86 Mb.
#1439378
  1   2   3   4   5   6   7   8   9   ...   13
Bog'liq
S-D1-ma\'ruza-4


4-MA’RUZA
MAVZU: Matematik funksiyalar, simvollar

Reja:

    1. Matematik funksiyalar;

    2. Belgili ma’lumot turi va ular ustida operatsiyalar;

    3. Amaliy qism: Tasodifiy belgilarni hosil qilish;

    4. Belgili funksiyalar;

    5. O`n oltilik belgilarni o`nli qiymatga o`tkazish.



Kalit so‘zlar:

  • algoritm

  • bo‘lish operatori

  • butun tur

  • C-stili

  • dizayn tizimi

  • haqiqiy nuqtali raqam

  • haqiqiy tur

  • identifikator

  • ifodalash

  • ifodani belgilash

  • ikkilik tur

  • increment kod va test

  • increment operator

  • KIN

  • ma’lumot turi

  • o‘zgarmas

  • o‘zgarmas kalit so‘z

  • o‘zgaruvchi

  • o‘zgaruvchi maydoni

  • o‘zgaruvchilarni e’lon qilish

  • oddiy tur

  • operandlar

  • operator

  • operatorni belgilash

  • operatorni taqsimlash

  • postdekrement

  • postinkrement

  • predekrement

  • preinkrement

  • psevdokod

  • qisqa tur

  • so‘zma-so‘z

  • talablar spesifikatsiyasi

  • tizim tahlili

  • toshish

  • toshmagan

  • UNIX davri

  • uzun tur

yashirin tur

6.1. Matematik funksiyalar
Key Point. C++ odatiy matematik masalalarni yechish uchun cmath kutubxonasi tarkibida ko`plab funksiyalarni taqdim etadi.
Funksiya – muayyan masalani yechuvchi ko`rsatmalar majmuidir. Biz allaqachon ni hisoblash uchun pow(a, b) funksiyasidan foydalanishni va tasodifiy sonlarni olish uchun rand ( ) funksiyasini qo`llashni o`rganib bo`ldik. Bu ma’ruzada boshqa foydalanuvchi funksiyalar bayon etiladi. Ularni trigonometric funksiyalar, eksponent funksiyalar va xizmatchi funksiyalar turlariga tasniflash mumkin.
4.1.1. Trigonometrik funksiyalar.
C++ trigonometrik funksiyalarni hisoblash uchun cmath kutubxonasi tarkibidagi quyidagi funksiyalarni taqdim etadi:
4.1-jadval. Cmath kutubxonasidagi trigonometrik funksiyalar

Funksiya

Qo`llanilishi

sin(radians)

Burchakning trigonometrik sinusining radianlardagi qiymatini qaytaradi

cos(radians)

Burchakning trigonometrik kosinusining radianlardagi qiymatini qaytaradi

tan(radians)

Burchakning trigonometrik tangensning radianlardagi qiymatini qaytaradi

asin(a)

Radianlardagi burchakni sinusga teskari quymatda qaytaradi

acos(a)

Radianlardagi burchakni kosinusga teskari quymatda qaytaradi

atan(a)

Radianlardagi burchakni tangensga teskari quymatda qaytaradi

sin, cos va tan lar uchun radianlardagi burchak qiymati parameter vazifasini bajaradi. asin, acos va atan lar uchun radianlardagi burchak qiymati va larning oralig`idan olinadi. Bir gradiusni hisoblash uchun , 90 gradiusni hisoblash uchun va 30 gradiusni hisoblash uchun ifodalarni hisoblash lozim.
PI o`zgarmasni 3.14159 ga taminlab, e’lon qilib olamiz. Quyida ushbu funksiyalardan foydalanishga doir bir qancha namunalar keltirilgan:
sin(0) qaytaradi: 0.0
sin(270 * PI / 180) qaytaradi: -1.0
sin(PI / 6) qaytaradi: 0.5
sin(PI / 2) qaytaradi: 1.0
cos(0) qaytaradi: 1.0
cos(PI / 6) qaytaradi: 0.866
cos(PI / 2) qaytaradi: 0
asin(0.5) qaytaradi: 0.523599 (π/6 kabi)
acos(0.5) qaytaradi: 1.0472 (π/3 kabi)
atan(1.0) qaytaradi: 0.785398 (π/4 kabi)


4.1.2. Eksponent funksiyalar
Quyidagi beshta funksiya cmath kutubxonasidagi exponentlash funksiyalari hisoblanadi:
4.2-jadval. cmath kutubxonasidagi exponentlash funksiyalari.

Funksiya

Qo`llanilishi

exp(x)

e ni x qiymatdagi darajaga ko`taradi ( )

log(x)

x ning natural logarifmini hisoblaydi ( )

log10(x)

x ning o`nli logarifmini hisoblaydi ( )

pow(a,b)

A ni b darajaga ko`taradi ( )

sqrt(x)

x>=0 bo`lgan holat uchun x ning kvadrat ildizini aniqlaydi

E ni o`zgarmas, uning qiymatini 2.71828 deb hisoblaymiz. Quyida ushbu funksiyalarga doir misollar berilgan:
exp(1.0) qaytaradi: 2.71828
log(E) qaytaradi: 1.0
log10(10.0) qaytaradi: 1.0
pow(2.0, 3) qaytaradi: 8.0
sqrt(4.0) qaytaradi: 2.0
sqrt(10.5) qaytaradi: 3.24
4.1.3. Keltirish funksiyalari
cmath kutubxonasi quyidagi jadvalda ko`rsatilgani kabi keltirish funksiyalarini o`z ichiga olgan:
4.3-jadval. cmath kutubxonasidagi keltirish funksiyalari.

Funksiya

Qo`llanilishi

ceil(x)

O`nli kasr ko`rinishidagi x ni butun qiymatga oshiradi. Bu butun son double turida qaytariladi.

floor(x)

O`nli kasr ko`rinishidagi x ni butun qiymatga kamaytiradi. Bu butun son double turida qaytariladi

Masalan:
ceil(2.1) qaytaradi: 3.0
ceil(2.0) qaytaradi: 2.0
ceil(-2.0) qaytaradi: -2.0
ceil(-2.1) qaytaradi: -2.0
floor(2.1) qaytaradi: 2.0
floor(2.0) qaytaradi: 2.0
floor(-2.0) qaytaradi: –2.0
floor(-2.1) qaytaradi: -3.0
4.1.4. min, max va abs funksiyalari
min va max funksiyalari ikki son (int, double, long, yoki float)ning minimumini yoki maxsimumini qaytaradi. Misol uchun max(4.4, 5.0) 5.0 ni qaytaradi, min(3, 2) 2 ni qaytaradi.
abs funksiyasi esa sonning modul qiymatini qaytaradi. Masalan bunday:
max(2, 3) qaytaradi: 3
max(2.5, 3.0) qaytaradi: 3.0
min(2.5, 4.6) qaytaradi: 2.5
abs(-2) qaytaradi: 2
abs(-2.1) qaytaradi: 2.1
4.1.5. Amaliy qism: Uchburchakning burchaklarini hisoblash
Matematik funksiyalardan ko`plab masalalarni yechishda foydalanish mumkin. Aytaylik, uchburchakning uchta tomoni berilgan. Quyidagi formula orqali uning burchaklarini hisoblash mumkin:

Matematik formulalarni tushunmaslikdan yoki keltirib chiqarishni bilmaslikdan qo`rqmaslik kerak. Masalan, uchburchak tomonlari berilgan bo`lsa, uning burchaklarini hisoblash formulasini keltirib chiqarishni bilmasdan, ushbu formula orqali uni hisoblash dasturini yozish mumkin. Uchburchak tomonlari uzunliklarini aniqlash uchun uning uchlarining koordinatasini bilgan holda, nuqtalar orasidagi masofani hisoblash mumkin.
4.1-kodli ro`yxatda foydalanuvchini uchburchakning x va y koordinatalarini kiritishga undovchi va keyin burchaklarini chiqarib beruvchi dastur berilgan.
4.1-kodli ro`yxat. BurchakniHisoblash.cpp
1 #include
2 #include
3 using namespace std;
4
5 int main()
6 {
7 // Foydalanuvchini uchta nuqtani kiritishga undash
8 cout << "Uchta nuqtani kiriting: ";
9 double x1, y1, x2, y2, x3, y3;
10 cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; 11
12 // uchta tomonni hisoblash
13 double a = sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3));
14 double b = sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3));
15 double c = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
16
17 // Uchta burchakni radianlarda olish
18 double A = acos((a * a - b * b - c * c) / (-2 * b * c));
19 double B = acos((b * b - a * a - c * c) / (-2 * a * c));
20 double C = acos((c * c - b * b - a * a) / (-2 * a * b));
21
22 // Burchaklarni gradiuslarda ko`rsatish
23 const double PI = 3.14159;
24 cout << "Uchta burchak: " << A * 180 / PI << " "
25 << B * 180 / PI << " " << C * 180 / PI << endl;
26
27 return 0;
28 }

Uchta nuqtani kiriting: 1 1 6.5 1 6.5 2.5
Uchta burchak: 15.2551 90.0001 74.7449

Shuni ta’kidlab o`tish joizki, ikki nuqta ((x1, y1) va (x2, y2)) orasidagi masofani aniqlash uchun formulasidan foydalaniladi. Dastur 13-15 kodli satrlarda ushbu formulani ishlatib, uchburchakning tomonlarini hisoblaydi, so`ngra, 18-20-kodli satrlarda uning radianlardagi burchaklarini hisoblash formulasidan foydalanadi. 24-25-kodli satrlarda burchakni gradiuslarda ko`rsatish belgilangan. Eslatib o`tamiz, 1 radian ga teng.



Download 1.86 Mb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8   9   ...   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling