MB_CUR_MAX multibayt belgilarni maksimal o‘lchami.
NULL bo‘sh ko‘rsatkich.
RAND_MAX rand funksiyasi qaytaradigan makimal qiymat.
2.2. C++ dasturlash tilida standart funksiyalar.
C++ dasturlash tilida standart funksiyalar C++ dasturlash tili tarkibida mavjud bo’lgan matematik funksiyalar standart funksiyalar deb ataladi. Ifodalar tarkibidagi funksiyalarni C++ dasturlash tilida ifodalash uchun satandart funksiyalardan foydalaniladi. Funksiyalarni C++ dasturlash tilida ifodalash uchun ularni argumentlarini albatta qavsga olib yozish kerak. C++ dasturlash tilida standart funksiyalardan foydalanish uchun albatta C++ tili tarkibidagi matematik funksiyalar kutubxonasiga murojat qilish kerak. Matematik funksiyalar kutubxonasiga murojat qilish quyidagicha. #include C++ dasturlash tili tarkibidagi standart funksiyalar ro’yxati quyidagicha. № Matematik funksiya C++ tilida ifodalanishi 1 |a|-butun son abs(x) 2 |a|-haqiqiy son fabs(x) 3 sqrt(x) 4 x 2 pow(x,2) 5 x n pow(x,n) 6 10x Pow(10,x) 7 e x exp(x) 8 ln(x) log(x) 9 Sinx sin(x) 10 Cosx cos(x) 11 Tgx tan(x) 12 Ctgx cos(x)/ sin(x) 13 Arcsinx asin(x) 14 Arccosx acos(x) 15 Arctgx atan(x) Misol1: Quyidagi ifodalarni C++ tilida ifodalash. Matematik ifodasi C++ tilida ifodalanishi y=pow((x+sin(x)),3)+pow((cos(x),2)+(1+log(x)/log(a))/(sqrt(t-sqr(x))); Misol2: Quyidagi ifodalarni C++ tilida ifodalash. Matematik ifodasi 61 C++ tilida ifodalanishi y=abs(x-2)+sin(x)+abs(1/sqrt(t-pow(x,2))); C++ dasturlash tilida matematik funksiyalardan tashqari ba‘zi bajariladigan amallarni keltiramiz. Ya‘ni sonning butun qismi, qoldiq ni topish yoki yaxlitlash va hakoza amallar quyidagicha tasvirlanadi. fmod(x,y) – x sonini y ga bo’lgandagi qoldiqni hisoblaydi. Bu amalni % belgisi orqali ham ifodalash mumkin. Misol: qoldiqni hisoblash. fmod(12,5)=2, fmod(121,100)=21, fmod(1523,1000)=523 ceil(x)- x haqiqiy sonni uzidan katta bo’lgan eng yaqin son bilan almashtiradi. Misol: butun qismini hisoblash. ceil(12.5698)=13, ceil(1.5698)=2 floor(x)- x haqiqiy sonni o‘zidan kichik bo’lgan eng yaqin son bilan almashtiradi. Misol: butun qismini hisoblash. floor(45.6598)=45, floor(789.15246)=789 hupot(x, y)- x va y haqiqiy sonlar uchburchakning katetlari bo’lsa, gepatenuzani hisoblash. Eslatma: Standart funksiyalar kutubxonasidan foydalanish uchun int main( ) funksiyasidan oldin #include sarlavha faylini ham yozish kerak. Quyida keltirilgan dastur va uning natijalarini tahlil qiling: #include #include using namespace std; int main( ) { double n, m, c, s, g, d, k,x,y,z,x1,y1,z1; s= log(9); cout << "s=" << s; c= log10(1000); cout << " c=" << c << '\n'; n= pow(2.2,2.2); cout << "n=" <<< " m="<Oldingi mavzudagi dasturda x++ buyrug‗i o’rnida ++x buyrug‗idan, y-- buyrug‗i o’rnida --y buyrug‗idan foydalanish mumkin. Chunki bu buyruqlar o’zgaruvchining qiymatini 1ga oshirish yoki kamaytirish ma‘nosida teng kuchli. Ammo qiymat berish buyrug‗ida inkrement va dekrement amallaridan foydalanishga to’g‗ri kelsa,―++‖, ―--―belgilarning o’zgaruvchi oldidan yoki orqasidan qo’yishning farqi bor. Quyida qiymat berish buyrug‗ining quyidagi qo’shimcha korinishlari bilan tanishamiz: y=x++; buyrug‗i bo’yicha x ning qiymati y ga berilib, so’ngra x ning qiymati 1ga ortadi. Bu buyruq y=x; x=x+1; buyruqlariga teng kuchli; y=++x; buyrug‗i bo’yicha oldin x ning qiymati 1 ga orttirilib, hosil bo’lgan yangi qiymati yga beriladi. Bu buyruq x=x+1; y=x; buyruqlariga teng kuchli; y=a --; buyrug‗i bo’yicha oldin y ga a ning qiymati berilib, so’ngra a ning qiymati 1 ga kamaytiriladi. Bu buyruq y=a; a=a-1 buyruqlariga teng kuchli; 67 y=--a; buyrug‗i bo’yicha oldin a ning qiymati 1 ga kamaytirilib, o’sha kamaytirilgan qiymati yga beriladi. Bu buyruq a=a–1; y=a buyruqlari teng kuchli; y+=a; buyrug‗i bo’yicha yga a ni qo’shib, natija yga beriladi. Ya‘ni bu buyruq y=y+a; buyrug‗iga teng kuchli; y - = a; buyrug‗i bo’yicha y dan a ni ayirib, natija y ga beriladi. Ya‘ni bu buyruq y = y – a; buyrug‗iga teng kuchli; y* = a; buyrug‗i bo’yicha y ni a ga ko’paytirib, natija y ga beriladi. Ya‘ni bu buyruq y = y*a; buyrug‗iga teng kuchli; y/= a; buyrug‗i bo’yicha y ni a ga bo’lib, natija y ga beriladi. Ya‘ni bu buyruq y = y/a; buyrug‗iga teng kuchli; y % = a; buyrug‗i bo’yicha y ni a ga bo’lganda qoldiqni hisoblab, natija y ga beriladi. Ya‘ni bu buyruq y = y % a buyrug‗iga teng kuchli; y* = a + 3; buyrug‗i bo’yicha y ni a+3 ga ko’paytirib, natija y ga beriladi. Ya‘ni bu buyruq y = y * (a + 3); buyrug‗iga teng kuchli; y + = ++a; buyrug‗i bo’yicha a ni 1 ga orttirib, natija y ga qo’shiladi va bu yig‗indining qiymati y ga beriladi. Ya‘ni bu buyruq a = a +1; y= y + a; buyruqlariga teng kuchli; y % = a ++; buyrug‗i bo’yicha y ni a ga bo’lganda qoldiq hisoblsnib, natija y ga beriladi va a 1 ga orttiriladi. Ya‘ni bu buyruq y = y % a; a = a + 1; buyruqlariga teng kuchli; y* = --a; buyrug‗i bo’yicha a1 ga kamaytiriladi va ayirma y ga ko’paytirilib, natija y ga beriladi. Ya‘ni bu buyruqa = a – 1; y = y * a; buyruqlariga teng kuchli; y- = a--; buyrug‗i bo’yicha y dan a ni ayirib, natija y ga beriladi va a ning qiymati 1 ga kamaytiriladi. Ya‘ni bu buyruq y = y – a; a = a – 1; buyruqlariga teng kuchli; y+=--y; buyrug‗i bo’yicha y 1 ga kamaytirilib, natija y ga qo’shiladi va yig‗indining qiymati y ga beriladi. Ya‘ni bu buyruq y=y–1; y=y+y; buyruqlariga teng kuchli. Qiymat berish buyrug‗ining y=++a; va y=--a; ko’rinishlari uning prefiks ko’rinishi, y=a++; va y=a--; ko’rinishlari postfiks ko’rinishlari deyiladi. Misol tariqasida quyidagi dasturni va uning natijalarini tahlil qiling: #include int main( ) { int a, b, c, d, x, y, z, n, m; a = 5; b = 6; c = 7; d = 8; 68 x=++a; y=++a; x+=x++; cout << "x=" << x << " y=" <=), (==, !=), &&, ||, ?:, (=, *=, /=, +=, -=, %=). Kiritish operatori C++ dasturlash tilida dastur tuzishda o’zgaruvchilar qiymati kompyuter xotirasiga joylashtirish jarayoni ma‘lumotlarni kritish deyiladi. O’zgaruvchilar oqimi va ma‘lumotlar jamlanmasi o’zgaruvchilar turiga qarab kompyuter xotirasidan joy egallaydi. Dastur tuzish jarayonida o’zgaruvchilar qiymatini kompyuter xotirasiga kiritish buyrug‘i yozilishidan avval o’zgaruvchilarni, albatta, turiga mos ravishda e‘lon qilishi kerak. Ba‘zi masalalarda parametrlarning qiymatlari oldindan ma‘lum bo’lmaydi. Ularning qiymatlarini dasturni bajarish jarayonida kiritib ketishga to’g‗ri keladi. Bu hol tuzilgan algoritmning ommaviyligini ta‘minlaydi. Masalan, kvadrat tenglamani yechish dasturini tuzishda a, b, c koeffitsentlarning qiymatlarini har ijro etganda o’zgartirib yurmasdan, dasturni ijro etish jarayonida kiritib ketish qulay. C++ dasturlash tilida ma‘lumotlarni kiritish operatori cin kalit so’zi yordamida tasvirlanadi. o’zgaruvchilar ikki va undan ortiq bo’lsa, u holda >> belgi orqali o’zgaruvchilar bir biridan ajratilib yoziladi. 69 C++ dasturlash tilida ma‘lumotlarni kiritish operatorining umumiy ko’rinishi quyidagicha: cin>>o„zgaruvchi1>>o„zgaruvchi2; Qiymati kiritiladigan o’zgaruvchilar bu operatordan keyin bir-birlaridan ―>>‖ belgilari bilan ajratilgan holda yoziladi. Masalan: cin >> a >>b>>c; buyrug‗i dastur ijrosi davomida a, b va c o’zgaruvchi parametrlarning qiymatlari kiritilishi kerakligini bildiradi va kompyuter ushbu buyruqni uchratgach dastur bajarilishini to’xtatib, o’zgaruvchilar qiymatlari kiritilishini kutadi. Shundan so’ng o’zgaruvchilarning qiymatlari bir-birlaridan probel bilan ajratilgan holda 5 -4 12 kabi klaviaturadan terilib, ENTER tugmachasi bosilsa, nooshkor holda a=5; b=-4; c=12 kabi qiymat berish buyruqlari bajariladi. Bunda quyidagilarga alohida e‘tibor berish kerak: - o’zgaruvchilar kiritayotgan qiymatlarni kiritish tartibidagi nomeri bo’yicha qabul qiladi, ya‘ni cin operatoridagi n- o’zgaruvchi kiritilgan n- qiymatni oladi; - kiritilayotgan qiymatlar o’zgaruvchi uchun e‘lon qilingan turga mos kelishi shart, aks holda xatolik sodir bo’ladi; - cin operatori dasturning istalgan joyida bo’lishi mumkin. Ammo bu operator tarkibidagi o’zgaruvchilardanfoydalanilgan buyruqlardan oldin uchrashi kerak, aks holda dastur ijro etilayotganda buyruqlardagi o’zgaruvchilarning qiymatlari ma‘lum bo’lmay qoladi. Misol: C++ dasturlash tilida bir va ikkitadan ortiq o’zgaruvchilarni kiritishni tasvirlash. #include int main () { int a,b,c; // a,b va c o’zgaruvchilarni e‘lon qilish cin>>a; // a ni kritish cin>>b>>c; // b va c larni kritish return 0; } Chiqarish operatori C++ dasturlash tilida o’zgaruvchilar qiymati qayta ishlanib natija kompyuter ekraniga yoki ma‘lum bir fayllarga joylashtirish jarayoni ma‘lumotlarni chiqarish deyiladi. O’zgaruvchilar va ma‘lumotlar oqimi chiqarilish vaqtida, albatta, aniq joyi ko’rsatiladi, agar kompyuter ekraniga ma‘lumot chiqarilsa, u holda aynan joyi ko’rsatilishi shart emas. 70 C++ dasturlash tilida ma‘lumotlarni chiqarish operatori cout kalit so’zi yordamida tasvirlanadi. O’zgaruvchilar ikki va undan ortiq bo’lsa, u holda << belgi orqali o’zgaruvchilar bir-biridan ajratilib yoziladi. C++ dasturlash tilida ma‘lumotlarni chiqarish operatorining umumiy ko’rinishi quyidagicha: cout<a; // a ga 1 ni kiritsangiz a=a*8; b=a+6; cout<C++ dasturlash tilida tuzilgan dasturlar albatta uchta jarayonga asoslanib tuziladi. Dasturlash tili operatorlari yechilayotgan masala algoritmini amalga oshirish uchun ishlatiladi. Operatorlar chiziqli va boshqaruv operatorlariga bo’linadi. Aksariyat holatlarda operatorlar nuqtali vergul (‗;‘) belgisi bilan tugallanadi va u kompilyator tomonidan alohida operator deb qabul qilinadi. Kompilyator dasturni ishga tushirish vaqtida dasturni kodini mashina tiliga tarjima qiladi. Dastur tuzish vaqtida buyruqlar ketma-ketligi uzluksiz bajarilib boshqa shartlar talab etilmasa, dastur chiziqli hisoblanadi. Tarif: Chiziqli algoritmlarga asoslanib ixtiyoriy dasturlash tilida tuzilgan dasturlar chiziqli dasturlar deyiladi. Chiziqli dasturlar tarkibiy qismi bo’lgan operator va buyruqlarda hech qanday shart yoki takrorlanish bajarilmaydi. Chiziqli dasturlar tarkibidagi bo’yruqlar, albatta, bir marta bajariladi. 76 C++ tilida chiziqli dasturlarga oid misollar Misol: Quyidagi funksiyani hisoblang ((a+x)>0). #include #include int main () { int a,x; double y; cin>>a>>x; y=(a*pow(x,3)-sin(x))/(1+log(x))-sqrt(a+x); cout< #include int main () { int r,l; cin>>r>>l; h=sqrt(l*l- r*r); // konus balandligi s=M_PI*r*r+ M_PI *r*l; // konus to’la sirti hajm=(1/3)* M_PI *r*r*h; // konus hajmi cout<<>n; a1 = n%10; a10 = n/10% 10; a100 = n/100% 10; a1000=n/1000; s = a1 + a10 + a100 + a1000; cout <>n; a1=n%10; a5=n/10000; a234=n/10-a5*1000; at=a1*10000+a5+a234*10; if (n>at) {f=n-at; cout <<"\n berilgan "<
Do'stlaringiz bilan baham: |