یک برنامهٔ C بنویسید که با استفاده از تابع getenv (از stdlib.h) مقدار متغیر محیطی NUM_STEPS را بخواند و با آن انتگرال تابع sin(x) را روی بازه [0, π] با روش ذوزنقه‌ای تقریب بزند و حاصل را چاپ کند — اگر متغیر محیطی موجود نبود از مقدار پیش‌فرض 1000 استفاده کند.

6.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:58

0.0

در برنامه stdlib.h و math.h را وارد کنید، از getenv برای خواندن رشتهٔ متغیر محیطی NUM_STEPS استفاده کرده و با atoi یا strtol آن را به عدد صحیح تبدیل کنید (در صورت عدم وجود یا مقدار نامعتبر، از 1000 استفاده کنید). سپس با گام h = (π-0)/N و حلقه‌ای ساده قانون ذوزنقه را برای محاسبهٔ انتگرال پیاده کنید و نتیجهٔ double را چاپ کنید؛ برای دقت بیشتر N را افزایش دهید و برای محاسبات بسیار بزرگ می‌توانید بعدها با OpenMP موازی‌سازی را امتحان کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:58
دسته بندی ها: C for beginner
nima در 220 روز قبل ساعت 11:23

برای خواندن NUM_STEPS از getenv استفاده کنید و نتیجه را با strtol به عدد صحیح تبدیل کنید؛ اگر getenv بازگردد NULL بود یا تبدیل نامعتبر بود، مقدار پیش‌فرض 1000 را در نظر بگیرید. گام h برابر با π/N است و با استفاده از قانون ذوزنقه انتگرال روی بازه [0, π] را محاسبه و به صورت double چاپ کنید. اگر N بسیار بزرگ شود، ممکن است خطای جمعی افزایش یابد؛ برای بهبود دقت می‌توانید از تکنیک‌هایی مانند Kahan summation استفاده کنید یا از OpenMP برای موازی‌سازی بهره ببرید. برای ارزیابی صحت، مقدار دقیق انتگرال sin(x) روی [0, π] برابر 2 است و می‌توانید نتیجه را با آن مقایسه کنید.

گزارش

1 پاسخ

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

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