Samarqand davlat universiteti raqamli texnologiyalar fakulteti optimal boshqaruv usullari kafedrasi



Yüklə 1,58 Mb.
səhifə14/79
tarix14.12.2023
ölçüsü1,58 Mb.
#179928
1   ...   10   11   12   13   14   15   16   17   ...   79
Java MAJMUA

Qo‘l yordamida o‘zgartirish.
Har doim ham avtomat o‘zgartirishdan foydalanib bo‘lmaydi, juda hohlasangiz ham. Misol uchun, «int» tipini «short» tipiga almashtirish kerak, buni avtomat o‘zgartirib bo‘lmaydi, chunki «int» tipi «short» tipidan katta. Agar avtomat o‘zgartiraman desangiz, xatolik haqida xabar o‘qiysiz.

1
2
3
4
5
6
7
8
9

class test{
public static void main(String args[ ]) {
int num;
num=200;
short rez;
rez=num;
System.out.println (rez);
}
}

Natijani ko‘rsangiz, » Uncompilable source code — possible loss of precision» nomli xatoni ko‘rasiz va kodda ham buni sezish mumkin, hattoki qiymat «short» tipiga sig‘sa ham.

Qoida aniq, hamma uchun bir hil, oraliq qiymat kichikmi, avtomat o‘zgarmaydi,kompilyator qarab o‘tirmaydi sig‘adimi yo‘qmi.
Bunday holatda o‘zgartirishni qo‘lda(kod yordamida) amalga oshiramiz. Buning uchun yuqoridagi kodni biroz o‘zgartiramiz, ya’ni aniq ko‘rsatamiz, nimani nimaga almashtirish kerakligini.

1
2
3
4
5
6
7
8
9

class test{
public static void main(String args[ ]) {
int num;
num=200;
short rez;
rez=(short)num;
System.out.println (rez);
}
}

Ko‘rib turganingizdek, bitta qator o‘zgartirildi, ya’ni «rez=(short)num;» operator qo‘shildi. Shu tariqa chiqayotgan xatolikdan qutuldik. Aniq etmoqdamiz, «rez» o‘zgaruvchiga, «num» o‘zgaruvchi qiymatini «short» tipiga o‘zgartirib chiqar.
Bu almashtirishni ishlatib, biroz xavfliroq hisoblanadi, agar biz «short» diopozinidan katta qiymatni olsak(misol uchun 60000), biz kutgan natija chiqmaydi, eng yomoni xatolik ham bermaydi.

Natija, -5536. Xo‘sh bu natija qayerdan chiqdi. «short» tipi -32768 dan 32767 gachadir. Bu diopozonda umumiy raqamlar qancha:32768+32767+0 soni =65536. Biz kiritgan sondan, umumiy qiymatni olib tashlaymiz: 60000-65536=-5536. Hammasi tushunarli bo‘ldi deb o‘ylayman.
Bu natija biz uchun juda yomon(undan ko‘ra xatolik bersa yaxshi bo‘lardi), natija chiqdi deb keyingi amallarga o‘tib ketilsa, oxirida noto‘g‘ri qiymat olamiz va xatoni topish biroz qiyin bo‘ladi.
Agar, xaqiqiy sonlarni, butun songa o‘zgartirmoqchi bo‘lsangiz, u holda ham yuqoridagi o‘zgartirishdan foydalanasiz. Bunda xaqiqiy sonning kasr qismi tashlab yuboriladi va butun qismi butun tipli o‘zgaruvchiga beriladi.

Agar diapazonga sig‘masa, yuqoridagi holat yuz beradi va chalkashlik yuz beradi.



Yüklə 1,58 Mb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   ...   79




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin