در یک برنامه C++، با استفاده از تابع std::tan از هدر مقادیر تانژانت یک آرایه از زاویه‌ها (ورودی به صورت درجه) را محاسبه کرده و میانگین و مقدار بیشینهٔ تانژانت را نمایش دهید؛ در صورت نزدیک بودن زاویه به نقاط ناپایدار (pi/2 + k*pi) پیام خطا چاپ شود.

4.0 بازدید آخرین ویرایش در 203 روز قبل ساعت 02:38

0.0

برای حل، ورودی n را بخوانید، زاویه‌ها را از درجه به رادیان تبدیل کنید (rad = deg * M_PI / 180.0)، سپس در یک حلقه با استفاده از std::tan از مقدار تانژانت هر زاویه را به‌دست آورید و همزمان میانگین و بیشینه را محاسبه کنید. از double برای دقت بهتر استفاده کنید و پیش از محاسبه با بررسی فاصلهٔ قدرمطلق از نقاط pi/2 + k*pi (مثلاً کمتر از 1e-9) از بروز ناپایداری جلوگیری کنید؛ برای آرایه‌های بزرگ از std::vector با reserve و I/O سریع‌تر استفاده کنید و اگر نیاز به بهینه‌سازی بالا دارید می‌توانید پس‌پردازش برداری (SIMD) یا کتابخانه‌های عددی را در نظر بگیرید.

توسط پژوهشگر در 203 روز قبل ساعت 02:38
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 203 روز قبل ساعت 08:59

قبل از فراخوانی std::tan برای هر زاویه، فاصلهٔ مطلق آن را تا نقاط ناپایدار pi/2 + k*pi بررسی کنید و در صورت کمتر از 1e-12، پیام خطای مناسب چاپ کنید. برای داشتن مقدار pi بدون وابستگی به M_PI، از acos(-1.0) استفاده کنید. برای کارایی، ورودی‌ها را در std::vector با reserve بخوانید و تبدیل deg به rad را انجام دهید و از ios::sync_with_stdio(false) بهره ببرید. در یک حلقه، مقدار تانژانت، میانگین و بیشینه را همزمان محاسبه کنید و در صورت نیاز از SIMD یا کتابخانه‌های عددی برای بهبودِ سرعت استفاده کنید.

گزارش

1 پاسخ

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

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