یک برنامهٔ C++ بنویسید که ابتدا عدد n و سپس n مقدار محاسبهشده و بعد n مقدار دقیق را از ورودی بخواند و بیشترین خطای مطلق بین هر جفت مقدار متقارن (max |approx[i] - exact[i]|) را محاسبه و چاپ کند و در ادامه بررسی کند آیا این بیشترین خطا از یک آستانهٔ دلخواه ورودی بزرگتر است یا نه.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:15 0.0
برای محاسبهٔ اختلاف مطلق از تابع std::abs موجود در هدر استفاده کنید و مقادیر را بهصورت double ذخیره کنید. کافی است با یک حلقه روی عناصر، اختلاف مطلق هر جفت را بهوسیله std::abs محاسبه کرده و بیشینه را نگه دارید، سپس آن را با آستانهٔ ورودی مقایسه کنید. نکات مفید: از std::fixed و std::setprecision برای چاپ اعشاری با دقت مشخص بهره ببرید، در مسائل با n بزرگ به حافظه و ورودی/خروجی سریع توجه کنید و میتوانید بعداً برای بهبود سرعت پردازشها به تکنیکهای موازیسازی (مثلاً OpenMP) فکر کنید؛ مفاهیم خطای مطلق و آستانهگذاری کاربردی در تحلیل عددی و محاسبات علمی هستند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای اطمینان از صحت محاسبات با مقادیر اعشاری، مطمئن شوید که هر دو مجموعهٔ ورودی (approx و exact) را به double بخوانید و از std::abs برای محاسبهٔ اختلاف مطلق بهره ببرید. با استفاده از یک حلقهٔ ساده مقادیر را بررسی کنید تا بیشینهٔ اختلاف مطلق را به دست آورید و سپس آن را با آستانهٔ ورودی مقایسه کنید. برای نمایش نتیجه از خروجی با دقت مشخص مانند std::fixed و std::setprecision بهره ببرید. اگر n خیلی بزرگ است، بهینهسازی I/O با استفاده از ios::sync_with_stdio(false) و cin.tie(nullptr و مدیریت حافظه را در نظر بگیرید. در صورت نیاز به سرعت بیشتر، میتوانید از موازیسازی مانند OpenMP استفاده کنید.
گزارش