برنامه‌ای به زبان C++ بنویسید که عرض و ارتفاع یک پنجره (بر حسب پیکسل) و تعداد بیت برای هر پیکسل را از ورودی دریافت کند و فضای حافظهٔ تقریبی لازم برای ذخیرهٔ تصویر آن پنجره را به صورت بایت، کیلوبایت و مگابایت محاسبه و چاپ کند.

7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:23

0.0

برای حل مسئله از هدر و ورودی با std::cin استفاده کنید؛ عرض، ارتفاع و بیت بر پیکسل را به‌عنوان اعداد صحیح بخوانید، سپس با استفاده از نوع بزرگ‌تری مثل unsigned long long تعداد بایت‌ها را به‌صورت (عرض * ارتفاع * بیت) / 8 محاسبه کنید تا از سرریز جلوگیری شود. برای نمایش کیلوبایت و مگابایت، بایت را بر 1024 و 1024*1024 تقسیم کنید و در صورت نیاز برای نمایش اعشار از نوع double و فانکشن‌هایی مثل std::fixed و std::setprecision (در صورت نیاز هدر ) استفاده کنید؛ دقت کنید تقسیم صحیح را با تبدیل نوع به اعشاری جلوگیری کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:23
دسته بندی ها: C Plus Plus C Plus Plus for beginner
nima در 201 روز قبل ساعت 06:35

برای جلوگیری از سرریز محاسبه، از نوع unsigned long long استفاده کنید و محاسبه را با (double)width * height * bits / 8.0 انجام دهید تا تقسیم به صورت اعشاری انجام شود. برای نمایش دقیق‌تر کیلوبایت و مگابایت از تقسیم با 1024.0 استفاده کنید و اگر نیاز به اعشار دارید از std::fixed و std::setprecision بهره ببرید. نکته: اگر بیت بر پیکسل مضربی از 8 نباشد، مقدار bytes ممکن است غیرصحیح باشد؛ در این حالت می‌توانید از ceil((double)width * height * bits / 8.0) بهره بگیرید تا کل فضای لازم را به بایت برگردانید. و پیشنهاد می‌شود ورودی‌ها را با اعتبارسنجی ساده بررسی کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری