|
9-mavzu: Ifodalar. Operand, amal, ifoda, amallarning ustuvorligi. Ifodalar yozish qoidalari. Reja
|
bet | 5/5 | Sana | 26.06.2024 | Hajmi | 85,13 Kb. | | #265746 |
Bog'liq 9-mavzu. Ifodalar. Operand, amal, ifoda, amallarning ustuvorligi. Ifodalar yozish qoidalari. bool
|
char
|
int
|
double
|
string
|
Tenglash (qiymat
|
=
|
=
|
=
|
=
|
=
|
Qo’shish
|
|
|
+
|
+
|
|
Ulash
|
|
|
|
|
+
|
Ayirish
|
|
|
–
|
–
|
|
Ko’paytirish
|
|
|
*
|
*
|
|
Bo’lish
|
|
|
/
|
/
|
|
Qoldiq
|
|
|
%
|
|
|
Birga inkrement
|
|
|
++
|
++
|
|
1ga
|
|
|
––
|
––
|
|
n ga inkrement
|
|
|
+=n
|
+=n
|
|
Ohiriga qo’shish
|
|
|
|
|
+=
|
n ga qo’shish
|
|
|
-=n
|
-=n
|
|
Ko’paytirib tenglash
|
|
|
*=
|
*=
|
|
Bo’lib tenglash
|
|
|
/=
|
/=
|
|
Qoldiq olish va
|
|
|
%=
|
|
|
s fayldan x ga o’qish
|
s>>x
|
s>>x
|
s>>x
|
s>>x
|
s>>x
|
x ni s faylga yozish
|
s<
|
s<
|
s<
|
s<
|
s<
|
Teng
|
==
|
==
|
==
|
==
|
==
|
Teng emas
|
!=
|
!=
|
!=
|
!=
|
!=
|
Katta
|
>
|
>
|
>
|
>
|
>
|
Katta yoki teng
|
>=
|
>=
|
>=
|
>=
|
>=
|
Kichig
|
<
|
<
|
<
|
<
|
<
|
Kichig yoki teng
|
<=
|
<=
|
<=
|
<=
|
<=
|
Arifmetik amallar. Amallar odatda unar, ya’ni bitta operandga qo’llaniladigan amallarga va binar, ya’ni ikki operandga qo’llaniladigan amallarga ajratiladi.
Binar amallar additiv ya’ni + qo’shish va – ayirish amallariga, hamda multiplikativ, ya’ni * ko’paytirish, / bo’lish va % modul olish amallariga ajratiladi.
Butun sonni butun songa bo’lganda natija butun songacha yaxlitlanadi. Misol uchun, 20/3 = 6; (-20)/3 = -6; 20/(-3) = -6.
Modul amali butun sonni butun songa bo’lishdan hosil bo’ladigan qoldiqqa tengdir. Agar modul amali musbat operandlarga qo’llanilsa, natija ham musbat bo’ladi, aks holda natija ishorasi kompilyatorga bog’liqdir.
Unar amallarga ishorani o’zgartiruvchi unar minus – va unar plyus + amallari kiradi. Bundan tashqari inkrement ++ va dekrement -- amallari ham unar amallarga kiradi.
Inkrement ++ unar amali qiymatni 1 ga oshirishni ko’rsatadi. Amalni prefiks, ya’ni ++i ko’rinishda ishlatish oldin o’zgaruvchi qiymatini oshirib, so’ngra foydalanish lozimligini, postfiks esa i++ ko’rinishda ishlatish oldin o’zgaruvchi qiymatidan foydalanib, so’ngra oshirish kerakligini ko’rsatadi. Misol uchun, i ning qiymati 2 ga teng bo’lsin, u holda 3+(++i) ifoda qiymati 6 ga, 3+i++ ifoda qiymati 5 ga teng bo’ladi. Ikkala holda ham i ning qiymati 3 ga teng bo’ladi.
Dekrement -- unar amali qiymatni 1 ga kamaytirishni ko’rsatadi. Bu amal ham prefiks va postfiks ko’rinishda ishlatilishi mumkin. Bu ikki amalni faqat o’zgaruvchilarga qo’llash mumkin.
Arifmetik amallar: +, -, /, *, %. Barcha amallar odatdagidek bajariladi, faqat bo’lish amali butunga bo’lish bajariladi, ya’ni agar butun sonlar ustida bajarilayotgan bo’lsa, natija doim butun bo’ladi, ya’ni kasr qism tashlab yuboriladi (9/5=1; vaxolanki 1,8 bo’lishi kerak). Shuning uchun surat yoki maxrajiga nuqta (.) qo’yilsa, natija ham xaqiqiy bo’ladi (9./5=1.8). % belgisi (modul operatori) esa butun sonni butun songa bo’lgandan hosil bo’ladigan qoldiqni bildiradi.
Masalan: 9 % 5=4
Taqqoslash amallari: = = (tengmi?); != (teng emas); < ; > ; >=; <=
Mantiqiy amallar. C tilida mantiqiy tur yo’q. Shuning uchun mantiqiy amallar butun sonlarga qo’llanadi. Bu amallarning natijalari quyidagicha aniqlanadi:
x||y amali 1 ga teng agar x>0 yoki y>0 bo’lsa, aksincha 0 ga teng
x&&y amali 1 ga teng agar x>0 va y>0 bo’lsa, aksincha 0 ga teng
!x amali 1 ga teng agar x>0 bo’lsa, aksincha 0 ga teng
Bu misollarda amallar ustivorligi oshib borish tartibida berilgandir.
Inkor ! amali unar qolganlari binar amallardir.
Mantiqiy amallar: && (and) mantiqiy ko’paytirish; || (or) mantiqiy qo’shish; ! (not) mantiqiy inkor. Mantiqiy amallarni ixtiyoriy sonlar ustida bajarish mumkin. Agar javob rost bo’lsa, natija 1 bo’ladi, agar javob yolg’on bo’lsa, natija 0 bo’ladi. Umuman olganda 0 (nol)dan farqli javob rost deb qabul qilinadi.
Masalan: i>50 && j==24 yoki s1 < s2 && (s3>50 || s4<=20); Yoki 6 ≤ x ≤ 10 yozuvini x>=6 && x<=10 deb yoziladi Qiymat berish amallari:
a=5; b = 2*c; x = y = z =1; a = (b = c)*d // 3=5 deb yozib bo’lmaydi qabul qildim va almashtirdim deb nomalandigan amallar:
+ = : a+=b → a = a + b;
- = : a-=b → a = a - b;
* = : a*=b → a = a * b;
/ = : a/=b → a = a / b;
% = : a%=b → a = a % b;
• inkrement operatsiyasi (++) ikki ma’noda ishlatiladi: o’zgaruvchiga murojaat qilinganidan keyin uning qiymati 1 ga oshadi (a++ postfiks ko’rinishi) va o’zgaruvchining qiymati uning murojaat qilishdan oldin 1 ga oshadi (++a prefix ko’rinishi);
• dekrement operatsiyasi (--), xuddi inkrement operatsiyasi kabi, faqat kamaytirish uchun ishlatiladi. Masalan: s = a + b++ (a ga b ni qo’shib keyin b ning qiymatini 1 ga oshiradi); s = a+(--b) (b ning qiymatini 1 ga kamaytirib, keyin a ga qo’shadi).
Yuqoridagi standart funksiyalardan tashqari yana quyidagi funksiyalar ham ishlatiladi:
• ceil (x) - x ni x dan katta yoki unga teng bo’lgan eng kichik butun songacha yaxlitlash. Masalan: ceil (12.6) = 13.0; ceil (-2.4) = -2.0;
• floor (x) - x ni x dan kichik bo’lgan eng katta butun songacha yaxlitlash. Masalan: floor (4.8) = 4.0; floor (-15.9) = -16.0; floor(12.1) = 12; floor(- 12.1)=-13;
• fmod (x,y) – x / y ning qoldig’ini kasr son ko’rinishida berish. Masalan: fmod(7.3, 1.7) = 0.5;
i.
Takrorlash uchun savollar va topshiriqlar:
jjjj
ddd
ddd
|
| |