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

pow, powf, powl

من cppreference.com
< c‏ | numeric‏ | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
(C99)
(C99)
دوال أسية وجذور
(C99)
pow
دوال حساب المثلثات والدول الزائدية
دالة الخطأ ودالة غاوس
(C99)
(C99)
(C99)
(C99)
إيجاد أقرب عدد صحيح لفاصلة عائمة (float)
(C99)
(C99)(C99)(C99)
دوال التعديل على الفاصلة العائمة (float)
(C99)(C99)
(C99)
(C99)
التصنيف والمقارنة
(C99)
(C99)
(C99)
ثوابت ماكرو
 
معرفة في ملف <math.h>
float powf(float base, float exponent );
(1) (منذ C99)
double pow(double base, double exponent );
(2)
longdouble powl(longdouble base, longdouble exponent );
(3) (منذ C99)
معرفة في ملف <tgmath.h>
#define pow( base, exponent )
(4) (منذ C99)
1-3) تحسب قيمة رفع العدد ‎base‎ للأس ‎exponent‎.
4) ماكرو عام النوع: إذا كان المعطى من النوع longdouble يتم استدعاء ‎powl‎. أما إذا كان المعطى عدد صحيح أو من النوع double يتم استدعاء ‎pow‎. فيما عدا ذلك يتم استدعاء ‎powf‎. إذا كان المعطى عددا مركبا يتم استدعاء الدالة المركبة المناسبة (cpowf أو cpow أو cpowl).

محتويات

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

base - الأساس كعدد ذو فاصلة عائمة
exponent - الأس كعدد ذو فاصلة عائمة

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

مالم يحدث خطأ يتم إرجاع ‎base‎ مرفوعة لأس ‎exponent‎ ‏‎.(baseexponent
)‎


لو كان هناك خطأ في المجال يتم إرجاع قيمة تحددها البيئة (NaN على الأنظمة الداعمة لذلك). لو كان هناك خطأ قطبي أو في المدى نتيجة الطفح (Overflow) يتم إرجاع ‎±HUGE_VAL‎ أو ‎±HUGE_VALF‎, أو ‎±HUGE_VALL‎.

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


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

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

[تعديل]ملحوظات

بينما لا يمكن حساب الجذر لعدد سالب عن طريق ‎pow‎ يمكن استخدام cbrt‎ في حالة أن الأس هو 1/3.

[تعديل]مثال

#include <stdio.h>#include <math.h>#include <errno.h>#include <fenv.h>   #pragma STDC FENV_ACCESS ONint main(void){// الاستخدام المعتاد printf("pow(2, 10) = %f\n", pow(2,10)); printf("pow(2, 0.5) = %f\n", pow(2,0.5)); printf("pow(-2, -3) = %f\n", pow(-2,-3));// قيم خاصة printf("pow(-1, NAN) = %f\n", pow(-1,NAN)); printf("pow(+1, NAN) = %f\n", pow(+1,NAN)); printf("pow(INFINITY, 2) = %f\n", pow(INFINITY, 2)); printf("pow(INFINITY, -1) = %f\n", pow(INFINITY, -1));// التعامل مع الأخطاء errno=0; feclearexcept(FE_ALL_EXCEPT); printf("pow(-1, 1/3) = %f\n", pow(-1, 1.0/3));if(errno== EDOM) perror(" errno == EDOM");if(fetestexcept(FE_INVALID)) puts(" FE_INVALID raised");   feclearexcept(FE_ALL_EXCEPT); printf("pow(-0, -3) = %f\n", pow(-0.0, -3));if(fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised");}

خرج ممكن:

pow(2, 10) = 1024.000000 pow(2, 0.5) = 1.414214 pow(-2, -3) = -0.125000 pow(-1, NAN) = nan pow(+1, NAN) = 1.000000 pow(INFINITY, 2) = inf pow(INFINITY, -1) = 0.000000 pow(-1, 1/3) = -nan errno == EDOM: Numerical argument out of domain FE_INVALID raised pow(-0, -3) = -inf FE_DIVBYZERO raised

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

(C99)(C99)
تحسب الجذر التربيعي (‎x‎)
(دالة)[edit]
(C99)(C99)(C99)
تحسب الجذر التكعيبي (‎3x)
(دالة)[edit]
(C99)(C99)(C99)
تحسب الجذر التربيعي لمجمع مربعي عددين معينين ‎ (x2
+y2
)‎
(دالة)[edit]
(C99)(C99)(C99)
computes the complex power function
(دالة)[edit]
close