Ifodalar
Yuqorida aytilganidek, ifodalar operandlar, amallar ishoralari qavslardan iborat va ma’lum tipdagi biror qiymatni hisoblash uchun foydalaniladi. Har bir operand o’z navbatida, ifoda yoki uning xususiyat hollaridan biri- konstanta yoki o’zgaruvchidan iborat.
O’zgaruvchilarga misollar:
(а + 0.12)/6
х && у | | !z
(t * sin(x)-1.05e4)/((2 * к + 2) * (2 * к + 3))
Amallar afzallik (ustunliligiga) mos rafishda bajariladi. Amallar bajarish tartibini o’zgartirish uchun qavslar ishlatiladi. Agar bitta ifodada bir xil ustunlikdagi bir nechta amal unar amallar, shartl amal va qiymat berish amali o’ngdan chapga, qolganlari- chapdan o’ngga bajariladi. Masalan, a=b=c, a=(b=c)ni a+b+c esa (a+b)+cni bildiradi.
Ifodalar ichidagi qism ifodalrni hisoblash tartibi aniqlanmagan. Masalan, (sin(x+2)+cos(y+1) ifodada ) sinusga murojaat kosinusga nibatan oldin bajariladi va x+2 ifoda, y+1 ga nisbatan oldin hisoblanadi.
Ifadani hisoblash natijasi qiymat va tip bilan harakterlanadi. Masalan, agar a va b butun tipli o’zgaruvchilar bo’lsa va
int a=2, b=5
kabi tasvirlansa, u holda a+b ifoda 7 qiymatga ega va int tipga ega, a=b ifoda esa a o’zgaruvchiga joylashtirilgan qiymatga ega (bizda 5 ga teng) va bu o’zgaruvchi tipi bilan ustma-ust tushuvchi tipga ega bo’ladi. Shunday qilib, C++ da a=b=c ko’rinishdagi ifodalar bo’lishiga yo’l qo’yiladi: avval b=c ifoda hisoblanadi, so’ngra uning natijasi a o’zgaruvchiga qiymat berish amali uchun o’ng operandga aylanadi.
Ifodaga turli tipdagi operandlar kirishi mumkin. Agar operandlar bir xil tipda bo’lsa, amal natijasi o’sha tipga ega bo’ladi. Agar operandlar turli tipda bo’lsa, hisoblashlar oldidan ishonchlilik va aniqlilikni saqlash uchun qisqaroq tiplarni uzunroq tiplarga aylantirishni ta’minlovchi ma’lum qoidalar bo’yicha tiplarni almashtirishlar bajariladi.
Almashtirishlar ikki tipda bo’ladi:
Miqdorlarning ichki tasvirini o’zgartiruvchi (aniqlikni yo’qotish yoki aniqlikni yo’qotmaslik orqali);
Ichki tasvirlashning faqat interpretatsiyasini o’zgartiruvchi.
Birinchi tipga masalan, butun sonni haqiqiy songa aylantirish (aniqlikni yo’qotmasdan) va oldinga (aniqlikni yo’qotish bilan), ikkinchisiga – ishorali butunni ishorasizga almashtirish kiradi.
Har qanday holda char, signed char, unsigned char, short int va unsigned short int tipdagi miqdorlar int tipga almashtiriladi, agar u barcha qiymatlarni ifodalashi mumkin bo’lsa, aks holda unsigned int tipga o’tadi.
Shundan so’ng operandlar ulardan eng uzun tipiga almashtiriladi va natija tipi sifatida qo’llaniladi. Almashtirishlar qoidalari 3 ilovada keltirilgan. Dasturchi tip almashtirishini oshkora berishi ham mumkin.
Shunday qilib, biz dasturlash tilini tashkil etuvchi konstruksiyalarga ega quyi darajasini qaradik, endi dastlab alohida operatorlarni, so’ngra dasturlarni qarashga o’tamiz.
Dostları ilə paylaş: |