|
Shamiyeva Dildoraning dasturlash tillari fanidan amaliy topshirig`i 4Bog'liq Shamiyeva Dildoraning dasturlash tillari fanidan amaliy topshirig4.2keltirish
o‘zgaruvchi turi hajmi qiymatni saqlashga yetarli bo‘lganda
bajariladi. Bu jarayon kengaytirish (widening) yoki yuksaltirish
(promotion) deb ataladi. Chunki kichik razryadli tur katta razryadli turga
kengaytiriladi. Bu holda turlarni avtomatik keltirish xavfsiz deb ataladi.
Masalan, int turi char turidagi qiymatni saqlashga yetarli, shuning
uchun turlarni keltirish talab qilinmaydi. Teskari jarayon toraytirish
(narrowing) deb ataladi, chunki
qiymatni o‘zgartirish talab etiladi. Bu
holda turlarni avtomatik keltirish xavfli deb ataladi. Masalan, haqiqiy
turni butun turga keltirilganda kasr qism tashlab yuboriladi. A m allarda
turlarni avtom atik keltirish. Binar arifmetik amallar bajarilganda
turlarni keltirish quyidagi qoidalar asosida amalga oshiriladi:
• doim short va char turlari int turiga keltiriladi;
• agar operandlardan biri long turiga tegishli bo‘lsa,
ikkinchi operand
ham long turiga keltiriladi va natija ham long turiga tegishli boiadi;
• agar operandlardan biri float turiga tegishli boisa, ikkinchi operand
ham float turiga keltiriladi va natija ham float turiga tegishli boiadi;
• agar operandlardan b
iri double turiga tegishli boisa, ikkinchi operand
ham double turiga keltiriladi va natija ham double turiga tegishli boiadi;
• agar operandlardan biri long double turiga tegishli boisa, ikkinchi
operand ham long double turiga keltiriladi va natija ham long double
turiga tegishli bo`ladi.
Modnlarda turlarni avtomatik keltirish. Agar ifodada short va int
liuidagi o'zgaruvchilar ishlatilsa, butun ifoda turi int ga ko‘tariladi. Agar
llbdada biror o'zgaruvchi turi long boisa, butun ifoda turi long turga
ko't
ai’iladi. Ko‘zda tutilgan bo‘yicha ham m a butun konstantalar int
turiga deb qaraladi. Hamma butun konstantalar oxirida L yoki 1 simvoli
turI’.nn bo*lsa, long turiga ega.
Agar ifoda float turidagi operandga ega
bo‘lsa, butun ifoda float turiga
koiariladi. Agar biror operand double
turiga ega boisa, butun ifoda double
Itiriga ko‘tariladi.
I urlar bilan
ishlovchi amallar. Turlarni o'zgartirish amali quyidagi ko'rinishga ega:
(tur_nomi) operand;
Bu amal operandlar qiymatini ko‘rsatilgan turga keltirish uchun
ishlalllndi. Operand sifatida konstanta, o‘zgaruvchi yoki qavslarga
olingan Ifoda kelishi mumkin. Misol uchun (long)6 amali konstanta
qiymatini n'/gartirm agan holda operativ xotirada egallagan baytlar
sonini oshiradi.
Mu misolda konstanta turi o‘zgarmagan bo‘lsa,
(double)6 yoki (fioat)6 amali
konstanta ichki ko‘rinishini ham
o‘zgartiradi. Katta butun sonlar haqiqiy
lurga keltirilganda, sonning
aniqligi yo'qolishi mumkin.
Masalan:
int x=1.7 + 1.8;
int y=(int)1.7+(int)1.8;
Bu amallar bajarilishi natijasida x o'zgaruvchi qiymati 3 ga,
у
o'zgainvchi qiymati ikkiga teng boiadi. Turlarni o'zgartirish amalining
zamonaviy shakli quyidagi ko'rinishga ega:
Funksional: tur_nomi (operand); masalan: z= double(l);
Lekin bu variantni faqat bir so'zli turlarga qoilash mumkin. Masalan.
long double turiga qoilab boim aydi.
|
| |