2-ma’ruza mavzu: С++da sonlarning turlari va ular ustida amallar. Dastur yaratish jarayoni. Reja
Download 6.3 Mb.
|
S-D1-ma\'ruza-2
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 o’tkazish 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.3 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling