یک برنامهٔ 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) فکر کنید؛ مفاهیم خطای مطلق و آستانه‌گذاری کاربردی در تحلیل عددی و محاسبات علمی هستند.

توسط پژوهشگر در 220 روز قبل ساعت 02:15
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 220 روز قبل ساعت 10:22

برای اطمینان از صحت محاسبات با مقادیر اعشاری، مطمئن شوید که هر دو مجموعهٔ ورودی (approx و exact) را به double بخوانید و از std::abs برای محاسبهٔ اختلاف مطلق بهره ببرید. با استفاده از یک حلقهٔ ساده مقادیر را بررسی کنید تا بیشینهٔ اختلاف مطلق را به دست آورید و سپس آن را با آستانهٔ ورودی مقایسه کنید. برای نمایش نتیجه از خروجی با دقت مشخص مانند std::fixed و std::setprecision بهره ببرید. اگر n خیلی بزرگ است، بهینه‌سازی I/O با استفاده از ios::sync_with_stdio(false) و cin.tie(nullptr و مدیریت حافظه را در نظر بگیرید. در صورت نیاز به سرعت بیشتر، می‌توانید از موازی‌سازی مانند OpenMP استفاده کنید.

گزارش

1 پاسخ

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

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