loading...

محتوای دانشجویی

بازدید : 30
يکشنبه 23 شهريور 1404 زمان : 20:17

محدودیت‌ها و خطا در تابع sqrt()

اگر هنگام محاسبه رادیکال در سی پلاس پلاس، عدد منفی را وارد تابع sqrt() نمایید، برنامه دچار domain error می‌شود و مقدار NaN (Not a Number) را نشان خواهد داد. در برخی پیاده‌سازی‌ها نیز ممکن است errno به EDOM تنظیم شده و تابع مقدار 0 را بازگرداند. مقدار دقیق رفتار تابع به پیاده‌سازی کامپایلر وابسته خواهد بود. ازاین‌رو توصیه می‎کنیم قبل از استفاده از تابع sqrt()، بررسی کنید که ورودی منفی نباشد. کدنویسی این تابع عبارتند از:

if (num < 0) {
// پیغام خطا یا استفاده از اعداد مختلط
} else {
double r = sqrt(num);
}

آموزش جذر گرفتن با استفاده از sqrt()

یکی از کاربردهای رایج تابعsqrt() در محاسبات هندسی و هنگام یافتن طول وتر با استفاده از قضیه فیثاغورث است.

c = √(a² + b²)

برای این منظور می‌توانید از کدنویسی زیر استفاده نمایید:

double a = 3.0, b = 4.0;
double c = sqrt(a*a + b*b); // خروجی: 5.0

مثال دیگر: محاسبه جذر اعداد مختلف در یک برنامه ساده با استفاده از تابع sqrt() است:

cout << sqrt(16) << endl;
cout << sqrt(100.5) << endl;

خروجی‌ها: 4 و مقدار تقریبی برای 100.5

روش باینری یا نیوتن برای محاسبه رادیکال در سی پلاس پلاس

برخی مواقع که تابع cmath در دسترس نیست یا می‌خواهید الگوریتم را دستی پیاده‌سازی کنید، می‌توانید از روش باینری (Binary Search) استفاده نمایید. کدنویسی این روش به شرح زیر خواهد بود:

double root(double n) {
double lo = min(1.0, n), hi = max(1.0, n), mid;
for (int i = 0; i < 100; ++i) {
mid = (lo + hi) / 2;
if (mid*mid > n) hi = mid;
else lo = mid;
}
return mid;
}

استفاده از جذر در مجموعه‌های برداری (valarray)

کتابخانه اجازه می‌دهد عملیات برداری را روی آرایه‌ها انجام دهید از جمله محاسبه جذر هر عنصر:

valarray arr = {100, 121, -0.5};
valarray res = sqrt(arr);

منبع: وبسایت anjamprozhe

محدودیت‌ها و خطا در تابع sqrt()

اگر هنگام محاسبه رادیکال در سی پلاس پلاس، عدد منفی را وارد تابع sqrt() نمایید، برنامه دچار domain error می‌شود و مقدار NaN (Not a Number) را نشان خواهد داد. در برخی پیاده‌سازی‌ها نیز ممکن است errno به EDOM تنظیم شده و تابع مقدار 0 را بازگرداند. مقدار دقیق رفتار تابع به پیاده‌سازی کامپایلر وابسته خواهد بود. ازاین‌رو توصیه می‎کنیم قبل از استفاده از تابع sqrt()، بررسی کنید که ورودی منفی نباشد. کدنویسی این تابع عبارتند از:

if (num < 0) {
// پیغام خطا یا استفاده از اعداد مختلط
} else {
double r = sqrt(num);
}

آموزش جذر گرفتن با استفاده از sqrt()

یکی از کاربردهای رایج تابعsqrt() در محاسبات هندسی و هنگام یافتن طول وتر با استفاده از قضیه فیثاغورث است.

c = √(a² + b²)

برای این منظور می‌توانید از کدنویسی زیر استفاده نمایید:

double a = 3.0, b = 4.0;
double c = sqrt(a*a + b*b); // خروجی: 5.0

مثال دیگر: محاسبه جذر اعداد مختلف در یک برنامه ساده با استفاده از تابع sqrt() است:

cout << sqrt(16) << endl;
cout << sqrt(100.5) << endl;

خروجی‌ها: 4 و مقدار تقریبی برای 100.5

روش باینری یا نیوتن برای محاسبه رادیکال در سی پلاس پلاس

برخی مواقع که تابع cmath در دسترس نیست یا می‌خواهید الگوریتم را دستی پیاده‌سازی کنید، می‌توانید از روش باینری (Binary Search) استفاده نمایید. کدنویسی این روش به شرح زیر خواهد بود:

double root(double n) {
double lo = min(1.0, n), hi = max(1.0, n), mid;
for (int i = 0; i < 100; ++i) {
mid = (lo + hi) / 2;
if (mid*mid > n) hi = mid;
else lo = mid;
}
return mid;
}

استفاده از جذر در مجموعه‌های برداری (valarray)

کتابخانه اجازه می‌دهد عملیات برداری را روی آرایه‌ها انجام دهید از جمله محاسبه جذر هر عنصر:

valarray arr = {100, 121, -0.5};
valarray res = sqrt(arr);

منبع: وبسایت anjamprozhe

نظرات این مطلب

تعداد صفحات : 2

درباره ما
موضوعات
لینک دوستان
آمار سایت
  • کل مطالب : 26
  • کل نظرات : 0
  • افراد آنلاین :
  • تعداد اعضا : 0
  • بازدید امروز :
  • بازدید کننده امروز : 1
  • باردید دیروز :
  • بازدید کننده دیروز : 0
  • گوگل امروز :
  • گوگل دیروز :
  • بازدید هفته :
  • بازدید ماه :
  • بازدید سال :
  • بازدید کلی :
  • <
    پیوندهای روزانه
    آرشیو
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    لینک های ویژه