C++ التعامل مع الأعداد
مفهوم التعامل مع الأعداد في C++
هناك الكثير من الدوال الجاهزة في C++ و التي يمكنك استخدامها لإجراء عمليات حسابية.
بعض هذه الدوال يمكن استخدامها بشكل مباشر لأنها تعتبر معروفة بالنسبة لمترجم اللغة بشكل إفتراضي و بعض الدوال بحاجة لأن تضّمنها بنفسك أولاً حتى تتمكن من استخدامها.
بالإجمال, حتى تستطيع استخدام الدوال المخصصة لإجراء العمليات الحسابية, يجب تضمين الملف cmath الذي يحتويها.
لذلك ستجد أننا سنضيف السطر التالي في أي مثال نستخدم فيه إحدى الدوال التي سنتعلمها في هذا الدرس.
#include <cmath>
هذا السطر يعني أننا نريد إضافة محتوى الملف cmath في البرنامج مما يجعلنا قادرين على استخدام الدوال الموجودة فيه.
دوال الملف cmath في C++
الجدول التالي يحتوي على دوال الملف cmath الأكثر استخداماً.
| إسم الدالة مع تعريفها | |
|---|---|
abs(x)
ترجع القيمة المطلقة ( Absoulte Value ) للعدد الذي نمرره لها مكان البارامتير x.تابع القراءة » |
|
fabs(x)
ترجع القيمة المطلقة للعدد الذي نوعه float و الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
floor(x)
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
ceil(x)
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
rint(x)
ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
fmax(x, y)
ترجع العدد الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.تابع القراءة » |
|
fmin(x, y)
ترجع العدد الأصغر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.تابع القراءة » |
|
fmod(x, y)
ترجع الرقم الذي يتبقى من قسمة قيمة البارامتير x على قيمة البارامتير y.تابع القراءة » |
|
pow(x, y)
تضاعف قيمة الباراميتر x بقيمة الباراميتر y ثم ترجع الناتج.تابع القراءة » |
|
sqrt(x)
ترجع قيمة الجزر التربيعي (Square Root) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
cbrt(x)
ترجع قيمة الجزر التكعيبي ( Cube Root ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
fdim(x, y)
إذا كانت قيمة x أكبر من قيمة y ترجع الفارق بينهما و الذي يساوي x-y, مع الإشارة إلى أنها ترجع الفارق كعدد إيجابي دائماً ( Positive Number ).غير ذلك ترجع صفر مهما كانت قيمة الأعداد المدخلة. تابع القراءة » |
|
fma(x, y, z)
ترجع قيمة x * y + z مع الحفاظ على أي رقم موجود بعد الفاصلة.تابع القراءة » |
|
hypot(x, y)
ترجع قيمة وتر المثلث ( Hypotenuse ).أي ترجع قيمة sqrt(x2 +y2) مع الحفاظ على أي رقم موجود بعد الفاصلة.تابع القراءة » |
|
exp(x)
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
expm1(x)
ترجع قيمة ex - 1, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x ناقص واحد.
تابع القراءة » |
|
log(x)
ترجع قيمة loge(x), أي قيمة اللوغاريتم ( Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
log2(x)
ترجع قيمة log2(x), أي قيمة اللوغاريتم الثنائي ( Binary Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
log10(x)
ترجع قيمة log10(x), أي قيمة اللوغاريتم العشري ( Decimal Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
sin(x)
ترجع قيمة جيب الزاوية أو الجيب ( Sine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
asin(x)
ترجع قيمة الجيب العكسي أو جيب الزاوية القوسي ( Arc Sine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
asinh(x)
ترجع قيمة جيب الزاوية الزائدي أو الجيب الزائدي ( Hyperbolic Sine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
cos(x)
ترجع قيمة جيب التمام ( Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
acos(x)
ترجع قيمة جيب التمام العكسي أو جيب تمام الزاوية القوسي ( Arc Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
cosh(x)
ترجع قيمة جيب التمام الزائدي ( Hyperbolic Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
tan(x)
ترجع قيمة الظل أو ظل الزاوية أو المماس ( Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
atan(x)
ترجع قيمة الظل العكسي أو ظل الزاوية القوسي ( Arc Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
tanh(x)
ترجع قيمة الظل الزائدي أو المماس الزائدي ( Hyperbolic Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.تابع القراءة » |
|
ملاحظة
يكفي فقط أن تعرف أن الدوال التي ذكرناها متوفرة لتستخدمها عند الحاجة لها مستقبلاً.
و من الطبيعي أن لا تكون أغلب هذه الدوال قد مرت معك من قبل لأن هذه الدوال تستخدم في الغالب في العمليات الحسابية التي تدرس في الرياضيات و الفيزياء, لذلك على الأرجح قد لا تستخدم أغلب الدوال المذكورة في البرامج العادية.
طريقة توليد أرقام عشوائية في C++
في حالات كثيرة قد تحتاج إلى توليد قيم عشوائية في برامجك و قد تكون بحاجة إلى تحديد نطاق الأعداد العشوائية التي ترغب في توليدها, فمثلاً في لعبة الزهر قد ترغب في الحصول على قيمة عشوائية بين 1 و 6.
الدالة rand()
للحصول على رقم عشوائي, يمكنك استخدام دالة إسمها rand() موجودة في الملف stdlib.h كالتالي.
المثال الأول
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
// هنا قمنا بطباعة رقم عشوائي
cout << "Random number: " << rand();
return 0;
}
•سنحصل على نتيجة عشوائية تشبه النتيجة التالية عند التشغيل.
Random number: 41
•إذا قمنا بتشغيل البرنامج مرة ثانية سنحصل على نفس النتيجة السابقة كالتالي.
Random number: 41
•إذا قمنا بتشغيل البرنامج مرة ثالثة سنحصل على نفس النتيجة السابقة كالتالي.
Random number: 41
إذاً استخدام الدالة rand() لوحده لا يضمن أن تحصل على رقم عشوائي مختلف في كل مرة تقوم فيها بتشغيل البرنامج.
لهذا السبب بالتحديد, عليك أن تعلم مترجم لغة C++ بأن يعيد تغيير الإحتمالات العشوائية عند تشغيل البرنامج و قبل استداعاء الدالة rand() و هذا ما سنتعلمه الآن.
الدالتين srand() و time()
الدالة srand() تستخدم لتغيير سلسلة القيم العشوائية التي سيتم توليدها عند استدعاء الدالة rand() مما يجعلك تحصل على قيم عشوائية مختلفة عن القيم التي حصلت عليها في المرة السابقة التي قمت فيها بتشغيل البرنامج.
إفتراضياً, الدالة rand() تستخدم المدى srand(1) في كل مرة يتم فيها تشغيل البرنامج, لهذا كنا نحصل على نفس القيم العشوائية عند البرنامج.
لتمرير رقم مختلف للدالة srand() و بشكل تلقائي, يمكنك تمرير عدد الثواني الموجودة من 1-1-1970 و حتى وقت الجهاز الحالي و هذا تحصل عليه من خلال استدعاء الدالة time(0) و تمريرها للدالة srand() كما سنرى في المثال التالي.
ملاحظة: لاستخدام الدالة srand() يجب تضمين الملف stdlib.h و لاستخدام الدالة time() يجب تضمين الملف time.h.
المثال الثاني
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
// هنا قمنا بتغيير سلسلة القيم العشوائية التي سيتم توليدها
srand(time(0));
// هنا قمنا بطباعة رقم عشوائي
cout << "Random number: " << rand();
return 0;
}
•سنحصل على نتيجة عشوائية تشبه النتيجة التالية عند التشغيل.
Random number: 1537
•إذا قمنا بتشغيل البرنامج مرة ثانية سنحصل على نتيجة عشوائية مختلفة عن النتيجة السابقة كالتالي.
Random number: 1579
•إذا قمنا بتشغيل البرنامج مرة ثالثة سنحصل على نتيجة عشوائية مختلفة عن النتيجة السابقة كالتالي.
Random number: 1621
المثال التالي يوضج طريقة تحديد أعلى و أدنى قيمة عشوائية يمكن أن يتم إرجاعها.
المثال الثالث
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
// هنا قمنا بتغيير سلسلة القيم العشوائية التي سيتم توليدها
srand(time(0));
// هنا قمنا بإنشاء رقم عشوائي بين 1 و 10
int x = rand() % 10 + 1;
// هنا قمنا بطباعة رقم عشوائي
cout << "Random number: " << x;
return 0;
}
•سنحصل على رقم عشوائي بين 1 و 10 كالتالي عند التشغيل.
Random number: 3
C++ الدالة abs()
تعريفها
ترجع القيمة المطلقة ( Absoulte Value ) للعدد الذي نمرره لها مكان البارامتير x.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double abs (double x) // الشكل الثاني float abs (float x) // الشكل الثالث long double abs (long double x)
// الشكل الأول double abs (double x) // الشكل الثاني float abs (float x) // الشكل الثالث long double abs (long double x) // الشكل الرابع double abs (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة مطلقة نوعها double.
مثال
#include <iostream>
using namespace std;
int main()
{
double a = -130;
float b = -0.15;
long double c = -5;
cout << "abs(a) = " << abs(a) << endl;
cout << "abs(b) = " << abs(b) << endl;
cout << "abs(c) = " << abs(c) << endl;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
abs(a) = 130 abs(b) = 0.15 abs(c) = 5
C++ الدالة fabs()
تعريفها
ترجع القيمة المطلقة ( Absolute Value ) للعدد الذي نمرره لها مكان البارامتير x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double fabs (double x) // الشكل الثاني float fabs (float x) // الشكل الثالث long double fabs (long double x)
// الشكل الأول double fabs (double x) // الشكل الثاني float fabs (float x) // الشكل الثالث long double fabs (long double x) // الشكل الرابع double fabs (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع القيمة المطلقة للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة مطلقة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a = -130;
float b = -0.15;
long double c = -5;
cout << "fabs(a) = " << fabs(a) << endl;
cout << "fabs(b) = " << fabs(b) << endl;
cout << "fabs(c) = " << fabs(c) << endl;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
fabs(a) = 130 fabs(b) = 0.15 fabs(c) = 5
C++ الدالة floor()
تعريفها
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double floor (double x) // الشكل الثاني float floor (float x) // الشكل الثالث long double floor (long double x)
// الشكل الأول double floor (double x) // الشكل الثاني float floor (float x) // الشكل الثالث long double floor (long double x) // الشكل الرابع double floor (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a = 5.5;
float b = -3.9;
cout << "floor value of " << a << " is: " << floor(a) << endl;
cout << "floor value of " << b << " is: " << floor(b) << endl;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
floor value of 5.5 is: 5 floor value of -3.9 is: -4
C++ الدالة ceil()
تعريفها
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double ceil (double x) // الشكل الثاني float ceil (float x) // الشكل الثالث long double ceil (long double x)
// الشكل الأول double ceil (double x) // الشكل الثاني float ceil (float x) // الشكل الثالث long double ceil (long double x) // الشكل الرابع double ceil (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a = 5.5;
float b = -3.9;
cout << "ceil value of " << a << " is: " << ceil(a) << endl;
cout << "ceil value of " << b << " is: " << ceil(b) << endl;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
ceil value of 5.5 is: 6 ceil value of -3.9 is: -3
C++ الدالة rint()
تعريفها
ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double rint (double x) // الشكل الثاني float rint (float x) // الشكل الثالث long double rint (long double x) // الشكل الرابع double rint (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a = 5.5;
float b = 5.2;
float c = -3.9;
float d = -3.3;
cout << "Round int value of " << a << " is: " << rint(a) << endl;
cout << "Round int value of " << b << " is: " << rint(b) << endl;
cout << "Round int value of " << c << " is: " << rint(c) << endl;
cout << "Round int value of " << d << " is: " << rint(d) << endl;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
Round int value of 5.5 is: 6 Round int value of 5.2 is: 5 Round int value of -3.9 is: -4 Round int value of -3.3 is: -3
C++ الدالة fmax()
تعريفها
ترجع العدد الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك أربع أشكال من هذه الدالة. أي يمكن إستدعاءها بأربع طرق مختلفة.
// الشكل الأول double fmax (double x, double y) // الشكل الثاني float fmax (float x, float y) // الشكل الثالث long double fmax (long double x, long double y); // الشكل الرابع double fmax (T1 x, T2 y);
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع العدد الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y و ترجعها على حسب نوع العدد الأكبر.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a = 7;
float b = 20.5;
cout << "Max number is: " << fmax(a, b);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
Max number is: 20.5
C++ الدالة fmin()
تعريفها
ترجع العدد الأصغر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك أربع أشكال من هذه الدالة. أي يمكن إستدعاءها بأربع طرق مختلفة.
// الشكل الأول double fmin (double x, double y) // الشكل الثاني float fmin (float x, float y) // الشكل الثالث long double fmin (long double x, long double y); // الشكل الرابع double fmin (T1 x, T2 y);
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع العدد الأصغر بين العددين اللذين نمررهما لها مكان الباراميترين x و y و ترجعها على حسب نوع العدد الأصغر.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a = 7;
float b = 20.5;
cout << "Min number is: " << fmin(a, b);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
Min number is: 7
C++ الدالة fmod()
تعريفها
ترجع الرقم الذي يتبقى من قسمة قيمة البارامتير x على قيمة البارامتير y.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك أربع أشكال من هذه الدالة. أي يمكن إستدعاءها بأربع طرق مختلفة.
// الشكل الأول double fmod (double x, double y) // الشكل الثاني float fmod (float x, float y) // الشكل الثالث long double fmod (long double x, long double y); // الشكل الرابع double fmod (T1 x, T2 y);
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع الرقم الذي يتبقى من قسمة قيمة البارامتير x على قيمة البارامتير y و ترجعه على حسب نوع القيم التي تم تمريرها.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a = 10;
int b = 7;
cout << a << " % " << b << " = " << fmod(a, b);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
10 % 7 = 3
C++ الدالة pow()
تعريفها
تضاعف قيمة الباراميتر x بقيمة الباراميتر y ثم ترجع الناتج.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double pow (double x, double y) // الشكل الثاني float pow (float x, float y) // الشكل الثالث long double pow (long double x, long double y) // الشكل الرابع double pow (double x, int y) // الشكل الخامس long double pow (long double x, int y)
// الشكل الأول double pow (double x, double y) // الشكل الثاني float pow (float x, float y) // الشكل الثالث long double pow (long double x, long double y) // الشكل الرابع double pow (T1 x, T2 y)
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع ناتج عملية مضاعفة قيمة الباراميتر x بقيمة الباراميتر y و ترجعها من نفس نوع القيم التي تم تمريرها لها.
أي إذا مررت لها قيم نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع ناتج نوعه double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a = 5;
float b = 2;
cout << a << " ^ " << b << " = " << pow(a, b);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
5 ^ 2 = 25
C++ الدالة sqrt()
تعريفها
ترجع قيمة الجزر التربيعي (Square Root) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double sqrt (double x) // الشكل الثاني float sqrt (float x) // الشكل الثالث long double sqrt (long double x)
// الشكل الأول double sqrt (double x) // الشكل الثاني float sqrt (float x) // الشكل الثالث long double sqrt (long double x) // الشكل الرابع double sqrt (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الجزر التربيعي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x = 25;
cout << "The square root of " << x << " is: " << sqrt(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
The square root of 25 is: 5
C++ الدالة cbrt()
تعريفها
ترجع قيمة الجزر التكعيبي (Cube Root) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double cbrt (double x) // الشكل الثاني float cbrt (float x) // الشكل الثالث long double cbrt (long double x)
// الشكل الأول double cbrt (double x) // الشكل الثاني float cbrt (float x) // الشكل الثالث long double cbrt (long double x) // الشكل الرابع double cbrt (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الجزر التكعيبي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float x = 8;
cout << "The cube root of " << x << " is: " << cbrt(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
The cube root of 8 is: 2
C++ الدالة fdim()
تعريفها
إذا كانت قيمة x أكبر من قيمة y ترجع الفارق بينهما و الذي يساوي x-y, مع الإشارة إلى أنها ترجع الفارق كعدد إيجابي دائماً ( Positive Number ).
غير ذلك ترجع صفر مهما كانت قيمة الأعداد المدخلة.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك أربع أشكال من هذه الدالة. أي يمكن إستدعاءها بأربع طرق مختلفة.
// الشكل الأول double fdim (double x, double y) // الشكل الثاني float fdim (float x, float y) // الشكل الثالث long double fdim (long double x, long double y); // الشكل الرابع double fdim (T1 x, T2 y);
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع عدد أكبر من صفر يمثل الفارق بين العددين اللذين نمررهما لها مكان الباراميترين x و y و ترجعه على حسب نوع القيم التي تم تمريرها.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a = 5;
int b = -2;
cout << "Positive difference between " << a << " and " << b << " is: " << fdim(a, b);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
Positive difference between 5 and -2 is: 7
C++ الدالة fma()
تعريفها
ترجع قيمة x * y + z مع الحفاظ على أي رقم موجود بعد الفاصلة.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك أربع أشكال من هذه الدالة. أي يمكن إستدعاءها بأربع طرق مختلفة.
// الشكل الأول double fma (double x, double y, double z) // الشكل الثاني float fma (float x, float y, float z) // الشكل الثالث long double fma (long double x, long double y, long double z); // الشكل الرابع double fma (T1 x, T2 y, T3 z);
باراميترات
يمكن تمرير ثلاث أعداد من أي نوع لها عند إستدعائها مكان الباراميترات x و y و z سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع قيمة x * y + z مع الحفاظ على أي رقم موجود بعد الفاصلة و ترجعها على حسب نوع القيم التي تم تمريرها.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a = 5;
float b = 2;
double c = 3;
cout << a << " * " << b << " + " << c << " = " << fma(a, b, c);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
5 * 2 + 3 = 13
C++ الدالة hypot()
تعريفها
ترجع قيمة وتر المثلث ( Hypotenuse ).
أي ترجع قيمة sqrt(x2 +y2) مع الحفاظ على أي رقم موجود بعد الفاصلة.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double hypot (double x, double y) // الشكل الثاني float hypot (float x, float y) // الشكل الثالث long double hypot (long double x, long double y) // الشكل الرابع double hypot (T1 x, T2 y)
باراميترات
يمكن تمرير عددين من أي نوع لها عند إستدعائها مكان الباراميترين x و y و سيقوم مترجم لغة C++ بإستدعاء الدالة المناسبة لنوع القيم التي قمت بتمريرها.
قيمة الإرجاع
ترجع قيمة sqrt(x2 +y2) مع الحفاظ على أي رقم موجود بعد الفاصلة و ترجعها من نفس نوع القيم التي تم تمريرها لها.
أي إذا مررت لها قيم نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع ناتج نوعه double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a = 5;
float b = 2;
float c = hypot(a, b);
cout << "c = " << c;
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
c = 5.38516
C++ الدالة exp()
تعريفها
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double exp (double x) // الشكل الثاني float exp (float x) // الشكل الثالث long double exp (long double x)
// الشكل الأول double exp (double x) // الشكل الثاني float exp (float x) // الشكل الثالث long double exp (long double x) // الشكل الرابع double exp (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة e مضاعفة بقيمة الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 0.5;
cout << "e ^ " << x << " = " << exp(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
e ^ 0.5 = 1.64872
C++ الدالة expm1()
تعريفها
ترجع قيمة ex - 1, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x ناقص واحد.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double expm1 (double x) // الشكل الثاني float expm1 (float x) // الشكل الثالث long double expm1 (long double x)
// الشكل الأول double expm1 (double x) // الشكل الثاني float expm1 (float x) // الشكل الثالث long double expm1 (long double x) // الشكل الرابع double expm1 (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة e مضاعفة بقيمة الباراميتر x ناقص واحد, و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 0.5;
cout << "(e ^ " << x << " ) - 1 = " << expm1(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
(e ^ 0.5 ) - 1 = 0.648721
C++ الدالة log()
تعريفها
ترجع قيمة loge(x), أي قيمة اللوغاريتم ( Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double log (double x) // الشكل الثاني float log (float x) // الشكل الثالث long double log (long double x)
// الشكل الأول double log (double x) // الشكل الثاني float log (float x) // الشكل الثالث long double log (long double x) // الشكل الرابع double log (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة اللوغاريتم الطبيعي للباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 5.5;
cout << "log(" << x << ") = " << log(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
log(5.5) = 1.70475
C++ الدالة log2()
تعريفها
ترجع قيمة log22(x), أي قيمة اللوغاريتم الثنائي ( Binary Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double log2 (double x) // الشكل الثاني float log2 (float x) // الشكل الثالث long double log2 (long double x)
// الشكل الأول double log2 (double x) // الشكل الثاني float log2 (float x) // الشكل الثالث long double log2 (long double x) // الشكل الرابع double log2 (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة اللوغاريتم الثنائي للباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 5.5;
cout << "log2(" << x << ") = " << log2(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
log2(5.5) = 2.45943
C++ الدالة log10()
تعريفها
ترجع قيمة log10(x), أي قيمة اللوغاريتم العشري ( Decimal Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double log10 (double x) // الشكل الثاني float log10 (float x) // الشكل الثالث long double log10 (long double x)
// الشكل الأول double log10 (double x) // الشكل الثاني float log10 (float x) // الشكل الثالث long double log10 (long double x) // الشكل الرابع double log10 (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة اللوغاريتم العشري للباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 1000;
cout << "log10(" << x << ") = " << log10(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
log10(1000) = 3
C++ الدالة sin()
تعريفها
ترجع قيمة جيب الزاوية أو الجيب ( Sine ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double sin (double x) // الشكل الثاني float sin (float x) // الشكل الثالث long double sin (long double x)
// الشكل الأول double sin (double x) // الشكل الثاني float sin (float x) // الشكل الثالث long double sin (long double x) // الشكل الرابع double sin (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
الرقم الذي نمرره مكان الباراميتر x يمثل درجة زاوية نصف قطرية. و كل درجة واحدة فيها تساوي 180/PI.
قيمة الإرجاع
ترجع قيمة جيب الزاوية للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 30;
cout << "sin(" << x << ") = " << sin(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
sin(30) = -0.988032
C++ الدالة asin()
تعريفها
ترجع قيمة الجيب العكسي أو جيب الزاوية القوسي ( Arc Sine ) للعدد الذي نمرره لها مكان الباراميتر x.
القيمة التي نمررها لها يجب أن تكون بين -1 و 1 أو سترجع nan.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double asin (double x) // الشكل الثاني float asin (float x) // الشكل الثالث long double asin (long double x)
// الشكل الأول double asin (double x) // الشكل الثاني float asin (float x) // الشكل الثالث long double asin (long double x) // الشكل الرابع double asin (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الجيب العكسي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a = 0.5;
double b = 4;
cout << "asin(" << a << ") = " << asin(a) << endl;
cout << "asin(" << b << ") = " << asin(b) << endl; // -ليست بين 1 و 1 b لأن قيمة nan هنا سيتم طباعة
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
asin(0.5) = 0.523599 asin(4) = nan
C++ الدالة hsin()
تعريفها
ترجع قيمة جيب الزاوية الزائدي أو الجيب الزائدي ( Hyperbolic Sine ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double hsin (double x) // الشكل الثاني float hsin (float x) // الشكل الثالث long double hsin (long double x)
// الشكل الأول double hsin (double x) // الشكل الثاني float hsin (float x) // الشكل الثالث long double hsin (long double x) // الشكل الرابع double hsin (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الجيب الزائدي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 4;
cout << "asinh(" << x << ") = " << asinh(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
asinh(4) = 2.09471
C++ الدالة cos()
تعريفها
ترجع قيمة جيب التمام ( Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double cos (double x) // الشكل الثاني float cos (float x) // الشكل الثالث long double cos (long double x)
// الشكل الأول double cos (double x) // الشكل الثاني float cos (float x) // الشكل الثالث long double cos (long double x) // الشكل الرابع double cos (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
الرقم الذي نمرره مكان الباراميتر x يمثل درجة زاوية نصف قطرية. و كل درجة واحدة فيها تساوي 180/PI.
قيمة الإرجاع
ترجع قيمة جيب التمام للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 40;
cout << "cos(" << x << ") = " << cos(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
cos(40) = -0.666938
C++ الدالة acos()
تعريفها
ترجع قيمة جيب التمام العكسي أو جيب تمام الزاوية القوسي ( Arc Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.
القيمة التي نمررها لها يجب أن تكون بين -1 و 1 أو سترجع nan.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double acos (double x) // الشكل الثاني float acos (float x) // الشكل الثالث long double acos (long double x)
// الشكل الأول double acos (double x) // الشكل الثاني float acos (float x) // الشكل الثالث long double acos (long double x) // الشكل الرابع double acos (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الجيب التمام العكسي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a = 0.5;
double b = 4;
cout << "acos(" << a << ") = " << acos(a) << endl;
cout << "acos(" << b << ") = " << acos(b) << endl; // -ليست بين 1 و 1 b لأن قيمة nan هنا سيتم طباعة
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
acos(0.5) = 1.0472 acos(4) = nan
C++ الدالة cosh()
تعريفها
ترجع قيمة جيب التمام الزائدي ( Hyperbolic Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double cosh (double x) // الشكل الثاني float cosh (float x) // الشكل الثالث long double cosh (long double x)
// الشكل الأول double cosh (double x) // الشكل الثاني float cosh (float x) // الشكل الثالث long double cosh (long double x) // الشكل الرابع double cosh (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
الرقم الذي نمرره مكان الباراميتر x يمثل قيمة زاوية زائدية.
قيمة الإرجاع
ترجع قيمة جيب التمام الزائدي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 5;
cout << "cosh(" << x << ") = " << cosh(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
cosh(5) = 74.2099
C++ الدالة tan()
تعريفها
ترجع قيمة الظل أو ظل الزاوية أو المماس ( Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double tan (double x) // الشكل الثاني float tan (float x) // الشكل الثالث long double tan (long double x)
// الشكل الأول double tan (double x) // الشكل الثاني float tan (float x) // الشكل الثالث long double tan (long double x) // الشكل الرابع double tan (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
الرقم الذي نمرره مكان الباراميتر x يمثل درجة زاوية نصف قطرية. و كل درجة واحدة فيها تساوي 180/PI.
قيمة الإرجاع
ترجع قيمة ظل الزاوية للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 0.5;
cout << "tan(" << x << ") = " << tan(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
tan(0.5) = 0.546302
C++ الدالة atan()
تعريفها
ترجع قيمة الظل العكسي أو ظل الزاوية القوسي ( Arc Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double atan (double x) // الشكل الثاني float atan (float x) // الشكل الثالث long double atan (long double x)
// الشكل الأول double atan (double x) // الشكل الثاني float atan (float x) // الشكل الثالث long double atan (long double x) // الشكل الرابع double atan (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الظل العكسي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 30;
cout << "atan(" << x << ") = " << atan(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
atan(30) = 1.53748
C++ الدالة tanh()
تعريفها
ترجع قيمة الظل الزائدي أو المماس الزائدي ( Hyperbolic Tangent ) للعدد الذي نمرره لها مكان الباراميتر x.
ملاحظة: هذه الدالة موجودة في الملف <cmath> لهذا يجب تضمينه حتى نستطيع إستدعاءها.
بناؤها
هناك عدة أشكال من هذه الدالة حيث يمكن تمرير قيم من مختلف الأنواع لها.
// الشكل الأول double tanh (double x) // الشكل الثاني float tanh (float x) // الشكل الثالث long double tanh (long double x)
// الشكل الأول double tanh (double x) // الشكل الثاني float tanh (float x) // الشكل الثالث long double tanh (long double x) // الشكل الرابع double tanh (T x)
باراميترات
مكان الباراميتر x نمرر لها رقم نوعه double أو float أو long double.
قيمة الإرجاع
ترجع قيمة الظل الزائدي للعدد الذي نمرره لها مكان الباراميتر x و ترجعها من نفس نوعه.
أي إذا مررت لها قيمة نوعها double فأنت بذلك تستدعي الدالة الأولى التي ترجع قيمة نوعها double.
مثال
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x = 4;
cout << "tanh(" << x << ") = " << tanh(x);
return 0;
}
•سنحصل على النتيجة التالية عند التشغيل.
tanh(4) = 0.999329