تابعی در C++ بنویسید که یک آرایه از زوایا بر حسب درجه دریافت کند و برای هر زاویه مقدار تانژانت را با استفاده از std::tan محاسبه و چاپ کند؛ اگر تانژانت برای زاویهای تعریفنشده باشد (مثلاً حدود 90° + k·180°) باید پیام مناسب نمایش داده شود.
8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:45 0.0
برای حل مسئله از هدر و تابع std::tan استفاده کنید؛ ابتدا درجه را به رادیان تبدیل کنید (pi = acos(-1.0); rad = deg * pi / 180.0). قبل از محاسبه تانژانت، مقدار cos(rad) را با تابع std::cos محاسبه کرده و اگر |cos(rad)| کوچکتر از یک اپسیلون مانند 1e-12 بود، آن را «تعریفنشده» در نظر بگیرید تا از مشکلات عددی در نزدیکی تکینگی جلوگیری شود. برای ورودیها از double و برای ذخیرهسازی از std::vector استفاده کنید و در صورت نیاز با std::setprecision خروجی را کنترل کنید؛ نکتههای عملکردی (برای HPC/محاسبات عددی) شامل استفاده از حافظه پیوسته و بهینهسازی کامپایلر (-O2) است، اما برای سطح مبتدی رعایت دقت و تبدیل درست واحدها کافی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی تابع، زاویهها را از درجه به رادیان تبدیل کرده و از pi = acos(-1.0) استفاده کنید. قبل از محاسبه تانژانت، cos(rad) را با std::cos محاسبه کنید و اگر |cos(rad)| < 1e-12 بود، مقدار تانژانت را تعریفنشده فرض کرده و پیامی مناسب چاپ کنید. ورودیها را با نوع double و ذخیرهسازی در std::vector نگه دارید و خروجی را با std::setprecision کنترل کنید. نکتههای کارایی: استفاده از حافظه پیوسته و -O2 میتواند HPC/محاسبات عددی را سرعت بخشد، اما برای مبتدیها تبدیل درست واحدها و کنترل خطا کافی است.
گزارش