Dasturlash I 3-hafta mavzu: С++da sonlarning turlari va ular ustida amallar. Dastur yaratish jarayoni
Download 6.28 Mb.
|
ma\'ruza-3
2.13. Raqamli tur konvertatsiyasi
Key Point. Haqiqiy turli sonlar butun turga ochiq taqsimlash orqali o‘tkaziladi. Xo`sh, butun qiymatni haqiqiy turdagi o`zgaruvchiga ta’minlay olamizmi? Ha. Haqiqiy qiymatni butun turdagi o`zgaruvchiga ta’minlay olamizmi? Ha. Butun turli o`zgaruvchiga haqiqiy turli qiymatni bersak, u bu sonning butun qismini oladi (kasr qismini emas). Masalan: int i = 34.7; // i 34 ga teng double f = i; // endi f 34 ni oldi double g = 34.3; // g 34.3 ga teng int j = g; // endi j 34 ni oldi Ikki turga tegishli operandlar ishtirokida operatsiya bajarish mumkinmi? Ha. Agar butun turli va haqiqiy turli qiymatlar bitta ifodada kelsa, C++ butun qiymatni avtomatik tarzda butun turli qiymatni haqiqiy turga o`tkazib oladi. Masalan, 3 * 4.5 ifodasi 3.0 * 4.5 bilan bir xil. Shuningdek, C++ bir turdagi sonli qiymatni taqsimlash operatori (casting operator)dan foydalangan holda boshqa turdagi sonli qiymatga o`ztkazishga ruxsat beradi. Uning qo`llanilish qoidasi quyidagicha: static_cast Bu yerda qiymat o`zgaruvchi, tur biz o`tkazmoqchi bo`lgan sonli tur. Ushbu ko`rsatma satri cout << static_cast 1 ni ko`rsatadi. double qiymat int qiymatga o`tkazilganda o`nli kasrning faqat butun qismi olinadi. Ushbu ko`rsatma satri cout << static_cast 0.5 ni ko`rsatadi, chunki, 1 dastlab 1.0 ga o`giriladi, keyin 1.0 qiymat 2 ga bo`linadi. Har qanday vaziyatda ham cout << 1/ 2; ko`rsatma satri 0 ni ko`rsatadi, chunki bu yerda 1 va 2 ning ikkalasi ham butun qiymatlar. Butun qiymatlarning bo`linmasi ham butun bo`lishi kerak. Kichik hajmdagi turni kattaroq hajmdagisiga o`tkazish turni kengaytirish deb ataladi. Kattaroq hajmdagi turni kichik hajmdagisiga o`tkazish turni toraytirish deb ataladi. Turni toraytirish (masalan double dan int ga o`tkazish) aniqlikni kamaytirishi mumkin. Axborot qismining zararlanishi esa sifatsiz natija beradi. static_cast dan foydalanib turni toraytirganingizda kompilyator sizni ogohlantiradi. 2.10-ro`yxatda o‘nli kasrdagi nuqtadan keyin ikki son qatnashuvchi savdo soliqlarini hisoblash dasturi berilgan. 2.10-ro`yxat. O‘nli kasrdagi nuqtadan keyin ikki son qatnashuvchi savdo soliqlarini hisoblash dasturi 1 #include 2 using namespace std; 3 4 intmain() 5 { 6 // Harid miqdorini kiritish 7 double haridMiqdori; 8 cout << "Harid miqdorini kiriting: "; 9 cin >> haridMiqdori; 10 11 double soliq = haridMiqdori * 0.06; 12 cout << "Haridlar solig`i "<< static_cast 13 14 return 0; 15 }
Dastur kodining 7-9-satrlarida haridMiqdori o`zgaruvchisiga foydalanuvchi tomonidan 197.55 qiymati berilgan. Savdo solig`i harid miqdorining 6 % iga teng va u hisoblash natijasiga ko`ra 11.853 qiymatni olyapti. 12-satrdagi ko`rsatma (static_cast soliq * 100 1185.3 ga teng static_cast static_cast Download 6.28 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling