المتغيرات
فضاءات التسمية
أفعال

sqrt, sqrtf, sqrtl

من cppreference.com
< c‏ | numeric‏ | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
(C99)
(C99)
(C99)
(C99)
دوال أسية وجذور
sqrt
(C99)
(C99)
دوال حساب المثلثات والدول الزائدية
(C99)
(C99)
(C99)
دالة الخطأ ودالة غاوس
(C99)
(C99)
(C99)
(C99)
إيجاد أقرب عدد صحيح لفاصلة عائمة (float)
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
دوال التعديل على الفاصلة العائمة (float)
(C99)(C99)
(C99)
(C99)
التصنيف والمقارنة
(C99)
(C99)
(C99)
ثوابت ماكرو
 
معرفة في ملف <math.h>
float       sqrtf( float arg );
(1) (منذ C99)
double      sqrt( double arg );
(2)
long double sqrtl( long double arg );
(3) (منذ C99)
معرفة في ملف <tgmath.h>
#define sqrt( arg )
(4) (منذ C99)
1-3) تحسب الجذر التربعي للعدد ‎arg‎.
4) ماكرو عام النوع: إذا كان المعطى ‎arg‎ من النوع long double يتم استدعاء ‎sqrtl‎. أما إذا كان ‎arg‎ عدد صحيح أو من النوع double يتم استدعاء ‎sqrt‎. فيما عدا ذلك يتم استدعاء ‎sqrtf‎. إذا كان ‎arg‎ عددا مركبا يتم استدعاء الدالة المركبة المناسبة (csqrtf أو csqrt أو csqrtl).

محتويات

[تعديل] المعطيات

arg - عدد ذو فاصلة عائمة

[تعديل] القيمة المُرجعة

في حالة النجاح, تُرجع الجذر الربيعي للعدد ‎arg‎ ‏‎ (arg) ‎.

لو كان هناك خطأ في المجال يتم إرجاع قيمة تحددها البيئة (غالبا NaN على الأنظمة الداعمة لذلك).

لو كان هناك خطأ في المدى نتيجة الطفح لأسفل (Underflow) يتم إرجاع القيمة الصحيحة بعد التقريب.

[تعديل] التعامل مع الأخطاء

يتم الإبلاغ عن الأخطاء كما هو موضح في math_errhandling.

في حالة كون ‎arg‎ أصغر من الصفر يحدث خطأ في المجال.

إذا كانت البيئة تدعم حسابات الفاصلة العائمة طبقا للـ IEEE (المعيار IEC 60559 تحديدا):

  • لو كان المعطى أصغر من -0, يتم يتم إرجاع NaN ورفع الإشارة FE_INVALID‎.
  • لو كان المعطى +∞ أو ±0, يتم إرجاعه دون تعديل.
  • لو كان المعطى NaN يتم إرجاع NaN.

[تعديل] مثال

#include <stdio.h>
#include <math.h>
#include <errno.h>
#include <fenv.h>
 
#pragma STDC FENV_ACCESS ON
 
int main(void)
{
    // normal use
    printf("sqrt(100) = %f\n", sqrt(100));
    printf("sqrt(2) = %f\n", sqrt(2));
    printf("golden ratio = %f\n", (1+sqrt(5))/2);
    // special values
    printf("sqrt(-0) = %f\n", sqrt(-0.0));
    // error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("sqrt(-1.0) = %f\n", sqrt(-1));
    if(errno == EDOM) perror("    errno == EDOM");
    if(fetestexcept(FE_INVALID)) puts("    FE_INVALID was raised");
}

خرج ممكن:

sqrt(100) = 10.000000
sqrt(2) = 1.414214
golden ratio = 1.618034
sqrt(-0) = -0.000000
sqrt(-1.0) = -nan
    errno = EDOM: Numerical argument out of domain
    FE_INVALID was raised

[تعديل] أنظر أيضا

(C99)(C99)
تحسب ناتج رفع عدد لأس ما (xy)
(دالة) [edit]
(C99)(C99)(C99)
تحسب الجذر التكعيبي (‎3x)
(دالة) [edit]
(C99)(C99)(C99)
تحسب الجذر التربيعي لمجمع مربعي عددين معينين ‎ (x2
+y2
)‎
(دالة) [edit]
(C99)(C99)(C99)
تحسب الجذر التربعيي المركب
(دالة) [edit]