|
9-mavzu: Ifodalar. Operand, amal, ifoda, amallarning ustuvorligi. Ifodalar yozish qoidalari. Reja
|
bet | 4/5 | Sana | 26.06.2024 | Hajmi | 85,13 Kb. | | #265746 |
Bog'liq 9-mavzu. Ifodalar. Operand, amal, ifoda, amallarning ustuvorligi. Ifodalar yozish qoidalari. pow(a, b)
|
а ni b darajaga ko’tarish
|
pow(2,3)=8
|
ceil( a )
|
а nio’zidan kichik bo’lmagan eng kichik butun songa yaxlitlash
|
ceil(2.3)=3.0 ceil(-2.3)=-2.0
|
floor(a)
|
а ni o’zidan katta bo’lmagan eng kichik butun songa yaxlitlash
|
floor(12.4)=12 floor(-2.9)=-3
|
fmod(a, b)
|
a/b ni hisoblashdagi qoldiqni olish
|
fmod(4.4, 7.5) = 4.4
fmod( 7.5, 4.4) = 3.1
|
exp(a)
|
еаni hisoblash
|
exp(0)=1
|
sin(a)
|
sina, aradiyandaberiladi.
|
|
cos(a)
|
cosa, aradiyandaberiladi.
|
|
log(a)
|
a natularlogarifmi
|
log(1.0)=0.0
|
log10(a)
|
аning o’nlik logarifmi
|
Log10(10)=1
|
asin(a)
|
arcsina, bunda -1.0 <а< 1.0. Natija radiyanda xosil bo’ladi
|
asin(1)=1.5708
|
Bo’linmaning haqiqiy qismi kerak bo’lga, agar o’zgaruvchilar butun son bo’lsa bo’lish amaliga e’tibor qaratish lozim.
Misol. Asosining uzunligi a va balandligi h ga teng bo’lgan
uchburchakning yuzasini hisoblovchi dastur tuzing. Yechimi.
Kiruvchi ma’lumot a va h butun sonlari. Uchburchak yuzasi formulasi: s= . a va b sonlari butun, lekin s soni haqiqiy son.
#include usingnamespace std; intmain() {
int a, h; cin>>a>>h;
double s = a * h / 2; cout<}
Dasturda hatolik mavjud. Bu hatolik shundan iboratki, butun sonlarni bo’lganda bo’linmaning butun qiymati hisoblanadi. Bo’linmaning haqiqiy qiymatini hisoblash uchun bo’linuvchilardan birining qiymati haqiqiy bo’lishi kerak. Yuqoridagi masalada buni
double s = a * h / 2.0;
yoki
double s = 1.0 * a * h / 2;
ko’rinishida yozish orqali to’girlash kiritishimiz mumkin.
9.3. Ifodalar va amallar: arifmetik va mantiqiy. Ifodalar va amallarni yozish qoidalari.
Amallar va operatorlar. O’zgaruvchilarning turlari ularda qanday ma’lumot saqlanishidan tashqari ular bilan qanday amallar bajarish mumkinligini ham ko’rsatadi:
int count;
cin >> count; // kiritish operatori >> butun sonni count obyektiga yozadi
string name;
cin >> name; // kiritish operatori kiritilgan satrni name o’zgaruvchisiga yozadi
int c2 = count+2; // + operatori ikki sonni qo’shadi
string s2 = name + " Jr. "; // + operator belgilar bilan to’ldiradi
int c3 = count–2; // - ikki sonni ayiradi
string s3 = name – "Jr. "; // xato: - operatori satrlar uchun aniqlanmagan.
Xato o’rnida biz kompiltatorning dasturni kompilyatsiya qilmasligini nazarda tutyapmiz. Kompilyator har bir o’zgaruvchiga qanday amallarni bajarish mumkinligini biladi va xato qilsihga yo’l qo’ymaydi. Lekin kompilyator qaysi o’zgaruvchilarga qanday amallarni bajarish mumkinligi haqida bilmaydi va quyidagidek be’mani xatolarga yo’l qo’yib beradi:
int age = –100;
Ko’rinib turibdiki, inson manfiy yoshga ega bo’la oilmaydi, lekin hech kim bu haqida kompilyatorga aytmadi, shuning uchun bunday hollarda kompilyator hech qanday xatolik haqida habar bermaydi. Quyida eng ko’p tarqalgan turlar uchun amallar ro’yxati keltirilgan:
|
| |