Ii. Asosiy qism 6


Download 218.29 Kb.
bet4/8
Sana16.06.2023
Hajmi218.29 Kb.
#1493707
1   2   3   4   5   6   7   8
Bog'liq
KURS ISHI

2.1-jadval. C++ tilining xizmachi so`zlari.

Asm

do

If

return

typedef

Auto

double

Inline

short

typeid

Bool

dynamic_ cast

Int

signed

typename

break

else

long

sizeof

union

Case

enum

Mutable

static

unsigned

Catch

explicit

namespace

static_cast

Using

Char

export

New

Struct

virtual

Class

extern

Operator

switch

void

Const

false

Private

template

volatile

const_cast

float

Protected

This

wchar_t

Continue

for

Public

throw

While

Default

friend

Register

True




Amallar. Amallar bir yoki bir nechta belgilar bilan aniqlanadi va operatorlar ustida bajariladi. Amal orasida bo`sh joy qo`yilmaydi. Amaldagi belgilar maxsus belgilardan (masalan, &&, |, <) va harflardan (masalan, reinterpret_cast, new) iborat bo`lishi mumkin.
Operandlar soniga qarab amallar uch guruhga bo`linadi: UNARY, BINARY, TERNARY. Standart amallar qayta aniqlanadi.

2.2.C++ Matematik Funksiyalar


C++ dasturlash tilida raqamlarda matematik vazifalarni bajarish imkoniyatini beradigan ko'pgina funksiyalar mavjud.

MIN va MAX


Funktsiya eng yuqori qiymatini topish uchun foydalanish mumkin X va y :max(x
,y)

cout << max(13, 15);


Va funktsiya x va y ning eng past qiymatini topish uchun ishlatilishi mumkin :min(x,y)

cout << min(5, 10);



C ++  Kutubxonasi.



sqrt(Kvadrat ildiz), round(sonni aylantiradi) va log (natural logarifm) kabi boshqa funktsiyalarni  kutubxonasida topish mumkin :
#include
#include
using namespace std;

int main() {
cout << sqrt(64) << "\n";
cout << round(2.6) << "\n";
cout << log(2) << "\n";
return 0;
}
8
3
0.693147
Boshqa Math funktsiyalari ( kutubxonasida) ro'yxatini quyidagi jadvalda topish mumkin:



2.3.Matematik kutubxona funksiyalari


Standart kutubhonaning matematik funksiyalari ko'pgina amallarni bajarishga imkon beradi. Biz bu kutubhona misolida funksiyalar bilan ishlashni ko'rib chiqamiz. Masalan bizning dasturimizda quyidagi satr bor bo'lsin:
double = k;
int m = 123;
k = sin(m);
Kompilyator uchbu satrni ko'rganida,standart kutubhonadan sin funksiyasini chaqiradi. Kirish qiymati sifatida m ni berdik. Javob, yani funksiyadan qaytgan qiymat k ga berildi.Funksiya agumentlari o'zgarmas sonlar (konstanta) o'zgaruvchilar, ifodalar va boshqa mos keluvchi qiymat qaytaradigan funksiyalar bo'lishi mumkin. Masalan:
int g = 49, k = 100;
cout << "4900 ning ildizi -> "<< sqrt( g * k );
Ekranda:
4900 ning ildizi -> 70;
Matematik funksiyalar aksariyat hollarda double tipidagi qiymat qaytarishadi.Kiruvchi argumentning tipi sifatida esa double ga keltirilishi mumkin bo'lgan tip beriladi. Bu funksiyalarni ishlatish uchun math.h (yangi ko'rinishda cmath)e'lon faylini include bilan asosiy dastur tanasiga kiritish kerak.Quyida matematik funksiya-lar kutubhonasining bazi bir a'zolarini beraylik. x va y o'zgaruvchilari double tipiga ega.
Funksiya Aniqlanishi
Misol
ceil(x) x ni x dan katta yoki unga teng b-n ceil(12.6) = 13.0
eng kichik butun songacha yahlitlaydi ceil(-2.4) = -2.0
cos(x) x ning trigonometrik kosinusi (x radianda) cos(0.0) = 1.0
exp(x) e ning x chi darajasi (eskponetsial f-ya) exp(1.0) = 2.71828
exp(2.0) = 7.38906
fabs(x) x ning absolut qiymati x>0 => abs(x) = x
x=0 => abs(x) = 0.0
x<0 => abs(x) = -x
floor(x) x ni x dan kichik bo'lgan eng katta floor(4.8) = 4.0
butun songacha yahlitlaydi floor(-15.9) = -16.0
fmod(x,y) x/y ning qoldig'ini kasr son tipida beradi fmod(7.3,1.7) = 0.5
log(x) x ning natural lagorifmi (e asosiga ko'ra) log(2.718282) = 1.0
log10(x) x ning 10 asosiga ko'ra lagorifmi log10(1000.0) = 3.0
pow(x,y) x ning y chi darajasini beradi pow(3,4) = 81.0
pow(16,0.25) = 2
sin(x) x ning trigonometrik sinusi (x radianda) sin(0.0) = 0.0
sqrt(x) x ning kvadrat ildizi sqrt(625.0) = 25.0
tan(x) x ning trigonometrik tangensi (x radianda) tan(0.0) = 0

2.4.Math kutubxonasi Python

Sodda algebratik funksiyalar

math.ceil(x)


Bu funksiya float sonni integer qiladi, Yaxlitlashga o'xshaydi ammo bu yaxlitlash emas. Bu Yaxlitlayotganda agar nuqtadan so'ng raqam bo'lsa yaxlitlayotganda 1 qo'shib qo'yadi.
>>> math.ceil(150.1)
151
>>> math.ceil(150.0)
150


math.comb(nk)


Bu funksiya latareya o'yniga bog'lab olsak. Omad latto'da 36 ta shar bor va 5 ta shar tanlab olinadi. Umumiy sharlar soni n(36) va tanlanadigan sharlar soni k(5). Bu funksiya shu o'yinda nechta konbinatsiya bo'lishini aniqlaydi. Bu konbinatorika asoslarida o'tiladi. Hech qahon funsiyaga manfiy qiymat va float qiymat bermang chunki, sharlar manfiy son bilan sanay olasizmi?! va hech qachon k, n dan katta bo'lmasligi kerak chunki 36 ta sharni ichidan 40 ta shar olib bera olasizmi?!(agar shunday qobilyatingiz bo'lsa pythondagilarga aytib qo'ying :) Agar bunday qobilyatingiz bo'lmasa shu funksiya qoidalariga amal qiling. Sizga bu mavzu matematikadan 8-sinf oxirida va OTM da o'tiladi. Uning formulasi => n! / (k! * (n - k)!)
>>> math.comb(36,5)
376992
>>> math.comb(3,3)
1
>>> math.comb(3,2)
3

math.copysign(xy)


Bu funksiya x dan sonni va y dan ishorani oladida birlashtiradi. X ning ishorasi qanday bo'lishidan qattiy nazar unga y ning ishorasini beradi va float ko'rinishida qaytaradi. (y ning o'rniga 0 kiritsam mubat deb o'yladi. Qizig'i 0 manfiy ham musbat emas deyilgan edi).
>>> math.copysign(-15, 1)
15.0
>>> math.copysign(15, -1)
-15.0
>>> math.copysign(15, 0)
15.0

math.fabs(x)


Bu funksiya x ning absalyut qiymati(moduli)ni chiqaradi. Nima bo'lsa ham musbat qilib qo'yadi. Float ko'rinishida chiqaradi. Bu excel dasturida ham mavjud abs().
>>> math.fabs(-15)
15.0
>>> math.fabs(15)
15.0

math.factorial(x)


Bu funksiya x ning faktariyalini hisoblaydi. Faktariyal bu malum bir songacha bo'lgan barcha natural sonlar ko'paytmasi( 5 desak bu 1*2*3*4*5=125 degani). X o'rnida manfiy son bo'lishi mumkin emas. 
>>> math.factorial(1)
1
>>> math.factorial(2)
2
>>> math.factorial(3)
6
>>> math.factorial(4)
24
>>> math.factorial(5)
120

math.floor(x)


Bu funksiya ceil() ning teskarisi bo'lib nuqtadan so'ng barcha sonlarni yo'qotib yuboradi. Bu manfiy va musbat sonlar qabul qilaveradi. Agar butun son bo'lsa(integer) shu sonning o'zini chiqaradi. Float son bo'lsa nuqtadan so'ng barcha raqamlarni yo'qotib integer son chiqaradi.
>>> math.floor(5)
5
>>> math.floor(-5)
-5
>>> math.floor(1516.999999)
1516

math.fmod(xy)


Bu funksiya o'zimiz ishlatib kelayotgan "%" vazifasizni bajaradi. Ya'ni sonni songa bo'lgandagi qoldiqni topadi. Masalan 5 ni 2 ga bo'lganda 1 qoldiq qoladi bunda 5 soni X va 2 soni Y boladi. Bular haqiqiy son(integer va float, barcha sonlar) bo'lishi mumkin. Sizga nima bo'lishidan qattiy nazar float son qaytaradi.
>>> math.fmod(5,2)
1.0
>>> math.fmod(5,5)
0.0
>>> math.fmod(16,1)
0.0
>>> math.fmod(16,20)
16.0

math.frexp(x)


Bu funksiya x ga son kiritganingizda sizga ikkita son chiqaradi (m,e). Bu bilan siz OTM da tanishasiz(Sohangiz tibbiyot yoki melitsiya bo’lmasa). Bu funksiyaning nomi mantissa. Bunda x = m * 2**e tartibda bo’ladi. Ya’ni m ga 2 ning e ninchi darajasini ko’paytirilsa x kelib chiqadi. m doimo |m|<1. Bu o’nli logorifmning kasr qismi bo’ladi. Bu funksiya eng kam ishlatiladigan funksiyalar sirasiga kiradi. X o’rniga hohlagan sonni qo’yishingiz mumkin.
>>> math.frexp(-64)
(-0.5, 7)
>>> math.frexp(15)
(0.9375, 4)
>>> math.frexp(0)
(0.0, 0)

math.fsum(x)


Bu funksiya x ning o’rniga list yoki tuple kiritasiz. Va list va tuple ni sonlar tashkil etgan bo’lishi zarur(matnni raqamga qo’shib qo’ymaydi-ku). Shundan so’ng listdagi yoki tuple dagi sonlarni yig’indisini float ko’rinishida qaytaradi. 
>>> math.fsum([15,-15,54,53,435,435,43,84,35,135,1])
1275.0
>>> math.fsum((15,-15,54,53,435,435,43,84,35,135,1))
1275.0

math.gcd(x,y):


Bu funksiya matematikadagi EKUB, bo’lib eng katta umumiy bo’luvchi. x va y ni bo’la oladigan eng katta sonni hisoblaydi. X va Y ning o’rniga faqatgina integer son kiritish mumkin. Masalan x ni 12 y ni esa 16 desak javobi 4 chiqadi chunki 4 soni 12 va 16 sonlarini bo’la oladigan eng katta son.
>>> math.gcd(16,12)
4
>>> math.gcd(15,20)
5
>>> math.gcd(5,-20)
5

math.isclose( a , b , rel_tol = 1e-09 , abs_tol = 0.0 )


Bu funksiya a va b ning o’xshash yoki o’xshash emasligini aniqlaydi. Bu funsiyadagi rel_tol bu a va b sonlarining yozilishi necha foiz bir biriga o’xshashligi. abs_tol esa a va b sonlar qanchalik oraliq ekanligini bildiradi. Bu funksiya o’zidan True yoki False qiymat qaytaradi.
>>> math.isclose(12,11,abs_tol=1)
True
>>> math.isclose(12,-11,abs_tol=10)
False
>>> math.isclose(12,-12,abs_tol=10,rel_tol=0.8)
False

math.isfinite(x)


Bu funksiya agar x malum bir miqdorga ega bo’lgan son bo’lsa True qiymat agar cheksiz son bo’lsa yoki NaN bo’lsa False qiymat qaytaradi.
>>> math.isfinite(2000)
True
>>> math.isfinite(float("nan"))
False
>>> math.isfinite(float("inf"))
False

math.isinf(x)


Bu funksiya agar x malum bir miqdorga ega bo’lgan son bo’lsa True qiymat agar cheksiz son bo’lsa yoki NaN bo’lsa False qiymat qaytaradi.

isinf funksiyasi


math.isnan(x)


Bu funksiya agar x NaN bo’lsa True qiymat bo’lmasa False qiymat qaytaradi.

math.isnan


math.isqrt(n)


Bu funksiyaga n o’rniga butun sonni(integer) kiritsangiz sizga shu sonning butun ildizini chiqarib beradi. Yani bu funksiya sqrt() funksiyaga o’xshash ammo bu faqatgina butun sonlar bilan ishlaydi(integer square root). Masalan siz 24 sonini kiritsangiz sizga 4 sonini chiqarib beradi. 9 kiritsangiz 3 chiqaradi.
>>> math.isqrt(18)
4
>>> math.isqrt(16)
4
>>> math.isqrt(8)
2

math.lcm(x,y)


Bu funksiya math kutubxonasiga endigina qo’shilgan bo’lib(Python 3.9) sonlaning EKUK(eng kichik umumiy karrali)ini topadi. X va y sonlarini o’rniga son kiritsangiz sizga EKUKini chiqaradi. Masalan 6 va 8 ni kiritsangiz sizga 24 soni qaytaradi.
>>> math.lcm(15, 20)
60
>>>math.lcm(4, 6)
12

math.ldexp(xy)


Bu funksiya frexp() funksiyaning teskarisi. Sizga x ni 2 ning y ninchi darajasini ko’paytiradi(x*(2**y)). Bu ham juda kam foydalaniladi.
>>> math.ldexp(3,5)
96.0
>>> math.ldexp(1,2)
4.0

math.modf( )


Bu funksiya x ni butun va kasr qismlarga ajratib beradi. X ni o’rnida 2.1 soni kiritilsa bu funksiyada tuplening ichida ikkita son bilan chiqaradi (0.1, 2.0).
>>> math.modf(2)
(0.0, 2.0)
>>> math.modf(-2)
(-0.0, -2.0)
>>> math.modf(-2.2)
(-0.2, -2.0)

math.perm(nk)


Bu funksiya ham kombinatorika asoslariga asoslangan bo’lib 2-formulasi. 
n!/(n-k)! bu formuladan necha javob chiqsa o’sha sonni funksiya qaytaradi. Bu funksiya qayerda ishlatiladi. 3 ta raqamdan 2 honali nechta son tuzsa bo’ladi. Bu funksiyaning comb() funksiyasidan farqi shundaki u omad latto ga o’xshagan masalalarda ya’ni sharlarning nechanchi bo’lishi farqi yo’q edi bu funksiyamizda esa joylashishi ham hisobga olinadi va har bitta joylanish turi konbinatsiya deyiladi. N har doim k dan katta bo’lishi zarur(3 ta raqamdan 4 xonali son yasangchi)
>>> math.perm(3,2)
6
>>> math.perm(4,2)
12

math.prod(xstart=1)


Bu funksiya x o’rniga list yoki tuple kiritasiz va funksiya sizga shu list yoki tupledagi sonlar ko’paytmasini chiqaradi. start o’zgaruvchisiga esa son kiritiladi va x dagida ko’paytmalarga ko’paytiriladi. 
>>> math.prod([4,3,2],start=1)
24
>>> math.prod([4,3,2],start=2)
48
>>> math.prod([3,2],start=2)
12

math.remainder( x , )


Bu funksiya % va fmod() ga juda o’xshash. Ammo prinsipi boshqacha. X ga va y ga son kiritasiz va x ni y ga bo’lgandagi qoldig’ini olasiz. Ammo x o’rniga 2 va y o’rniga 3 kiritsangiz sizga -1 chiqarib beradi. Chunki bu oddiygina mod emas. Javobni float ko’rinishida qaytaradi.
>>> math.remainder(2,3)
-1.0
>>> math.remainder(10,3)
1.0
>>> math.remainder(10,5)
0.0

math.trunc( 


Bu funksiya x ning butun qismini qaytaradi. Float sonda nuqtadan so’ng keladigan barcha sonlarni inobatga olmaydi.
>>> math.trunc(15.98798)
15
>>> math.trunc(-12.351)
-12

Download 218.29 Kb.

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




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