برنامهای به زبان C++ بنویسید که عرض و ارتفاع یک پنجره (بر حسب پیکسل) و تعداد بیت برای هر پیکسل را از ورودی دریافت کند و فضای حافظهٔ تقریبی لازم برای ذخیرهٔ تصویر آن پنجره را به صورت بایت، کیلوبایت و مگابایت محاسبه و چاپ کند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:23 0.0
برای حل مسئله از هدر و ورودی با std::cin استفاده کنید؛ عرض، ارتفاع و بیت بر پیکسل را بهعنوان اعداد صحیح بخوانید، سپس با استفاده از نوع بزرگتری مثل unsigned long long تعداد بایتها را بهصورت (عرض * ارتفاع * بیت) / 8 محاسبه کنید تا از سرریز جلوگیری شود. برای نمایش کیلوبایت و مگابایت، بایت را بر 1024 و 1024*1024 تقسیم کنید و در صورت نیاز برای نمایش اعشار از نوع double و فانکشنهایی مثل std::fixed و std::setprecision (در صورت نیاز هدر ) استفاده کنید؛ دقت کنید تقسیم صحیح را با تبدیل نوع به اعشاری جلوگیری کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جلوگیری از سرریز محاسبه، از نوع unsigned long long استفاده کنید و محاسبه را با (double)width * height * bits / 8.0 انجام دهید تا تقسیم به صورت اعشاری انجام شود. برای نمایش دقیقتر کیلوبایت و مگابایت از تقسیم با 1024.0 استفاده کنید و اگر نیاز به اعشار دارید از std::fixed و std::setprecision بهره ببرید. نکته: اگر بیت بر پیکسل مضربی از 8 نباشد، مقدار bytes ممکن است غیرصحیح باشد؛ در این حالت میتوانید از ceil((double)width * height * bits / 8.0) بهره بگیرید تا کل فضای لازم را به بایت برگردانید. و پیشنهاد میشود ورودیها را با اعتبارسنجی ساده بررسی کنید.
گزارش