یک برنامهٔ C++ بنویسید که مقدار شبیه‌سازی‌شدهٔ خوانده‌شده از یک سنسور را از ورودی بگیرد، در صورت خارج بودن از بازهٔ 0 تا 1023 یک std::out_of_range پرتاب کند و در تابع main آن را گرفته و پیام خطای مناسب را چاپ کند.

15.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 02:45

0.0

برای حل، تابعی مانند readSensor(value) بنویسید که مقدار را با if بررسی کرده و در صورت نامعتبر بودن throw std::out_of_range("پیام مناسب") انجام دهد؛ در main از try { ... } catch (const std::out_of_range &e) { std::cout

توسط پژوهشگر در 198 روز قبل ساعت 02:45
دسته بندی ها: C Plus Plus C Plus Plus for beginner
reyhaneh در 198 روز قبل ساعت 02:46

پیشنهاد می‌کنم پیش از انداختن استثنا ورودی را از نظر غیرعددی و خوانش صحیح نیز بررسی کنید (مثلاً چک کردن std::cin.fail یا پردازش رشته با std::stoi درون try/catch) تا خطای قابل‌فهم‌تری ارائه دهید. در پیام std::out_of_range مقدار نامعتبر و حدهای مجاز را ذکر کنید و حدها را به‌صورت ثابت (const) تعریف کنید تا نگهداری کد آسان‌تر باشد. هنگام گرفتن استثنا آن را با const reference بگیرید و از e.what() برای چاپ پیام استفاده کنید. در نهایت اگر خروج از بازه شرایطی معمول و نه فوق‌العاده است، بهتر است به‌جای استثنا از مقادیر بازگشتی یا std::optional استفاده کنید تا هزینهٔ زمانی کاهش یابد.

گزارش

1 پاسخ

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

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