الدوال في لغة سي بلس بلس
بنهاية هذه المحاضرة
يصبح الطالب قادراً علي ما يلي:
-
التعرف
علي مفهوم تجزئة البرنامج الي أجزاء صغيرة قابلة لإعادة الإستخدام.
-
إستخدام
بعض الدوال الرياضية الموجودة في المكتبة القياسية cmath
الدوال في لغة C++:
الدوال في لغة C++ هي إحدي
الوسائل لتجزئة الشفرة البرمجية الي أجزاء صغيرة تؤدي أغراض محددة. تجزئة الشفرة
البرمجية الي أجزاء صغيرة متخصصة لها فوائد كثيرة نذكرُ منها:
-
إعادة إستخدام الشفرة البرمجية.
فبدلاً من إعادة كتابة الشفرة البرمجية توفر لغات البرمجة الحديثة آلية لإعادة
إستخدام الشفرة؛ مثلاً إستخدام الدوال كما سنري في هذا الدرس.
-
سهولة صيانة الشفرة البرمجية
ومعالجة الأخطاء.
-
إنتاج برامج صغيرة الحجم.
-
إنتاج برامج سهلة القراءة و
التوثيق
-
دعم العمل الجماعي في البرمجة
تعريفات أساسية للدوال:
خذ الدالة المثلثية sin (جيب
الزاوية) كما في المثال التالي:

sin هو الإسم
المُعرف للدالة وهو يخضع لشروط تسمية المُعرف في لغة C++.
30 تُسمي بينية الدالة. البينيات تُمرر للدالة بين
القوسين ( ). تقوم الدالة بمعالجة هذه البينيات ثم إخراج النتيجة. يمكن للدالة
قبول أكثر من بينية وفي هذه الحالة يفصل بين البينية والأخري ب الشولة
. كما يمكن للدالة أن تكون بغير بينيات وفي هذه
الحالة يكون القوسين فارغين ().

0.5 هي القيمة التي تُرجعها الدالة. عادة الدالة تقوم
بمعالجات برمجية تنتهي بترجيع قيمة، هذه القيمة يكون لها نوع بيانات مثل int، double ، float الخ. كما
يمكن للدالة الا تُرجع أي قيمة وفي هذه الحالة تُرجع نوع بيانات يسمي void.
مكتبة الدوال الرياضية
cmath:
في هذا الدرس سوف نتعلم كيفية إستخدام الدوال الجاهزة،،وهي الدوال المعرفة
مسبقاً في المكتبة القياسية cmath . وفي الدرس القادم ،بإذن الله،
سوف نتعلم كيفية إنشاء الدوال الخاصة بنا.
تحتوي المكتبة cmath علي الكثير
من الدوال الرياضية المعروفة. الجدول التالي يوضح أهم تلك الدوال وإستخداماتها:
دوال الأس والجذر التربيعي
|
|
إسم الدالة
|
الإستخدام
|
sqrt(m)
|
أخذ الجذر التربيعي للبينية m وإرجاع النتيجة
|
pow(b,e)
|
رفع العدد b للقوة e وإرجاع النتيجة
|
دوال التقريب
|
|
إسم الدالة
|
الإستخدام
|
ceil(m)
|
تقريب البينية m الي اقرب أكبر عدد صحيح وإرجاع النتيجة.
حيث البينية mتكون علي شكل كسر عشري
|
floor(m)
|
تقريب البينية m الي أقرب أصغر عدد صحيح وإرجاع النتيجة.
حيث البينية mتكون علي شكل كسر عشري
|
fabs(m)
|
ترجع القيمة المُطلقة للبينية m (أي القيمة الموجبة للبينية m)
|
الدوال المثلثية
|
|
إسم الدالة
|
الإستخدام
|
cos(m)
|
تحسب جيب التمام للبينية m وتُرجع النتيجة
|
sin(m)
|
تحسب الجيب للبينية m وتُرجع النتيجة
|
tan(m)
|
تحسب الظل للبينية m وتُرجع النتيجة
|
ملحوظة: بالنسبة للدوال المثلثية البينية m تكون ممثلة
بالتقدير الدائري
|
مثال برمجي 1:
المثال البرمجي التالي يوضح كيفية إستخدام الدالة sqrt (دالة حساب الجذر التربيعي) :

شرح البرنامج:
السطر(1)
أدرجنا المكتبة القياسية cmath
الأسطر (2،3) مررنا قيم ثابتة للدالة sqrt ثم مررنا النتيجة للدالة cout
السطر(4)
أعلنا عن متغير r من نوع float
السطر(5)
إستخدمنا الدالة cin لإدخال قيمة في المتغير r
السطر(6)
إستدعينا الدالة sqrt ومررنا لها r كبينية ثم مررنا النتيجة لدالة
الإخراج cout
نموذج لخرج البرنامج:

مثال برمجي 2:
المثال البرمجي أدناه يوضح إستخدامات الدالة الرياضية pow :

شرح البرنامج:
السطر(a) أدرجنا المكتبة القياسية cmath
الأسطر (b،c،d) مررنا قيم ثابتة للدالة pow ثم مررنا النتيجة للدالة cout
السطر(e) أعلنا عن متغيرين،، ثم أدخلنا قيم في المتغيرين من
لوحة المفاتيح(السطرين f ،g )
السطر(h) مررنا قيم المتغيرين b الأساس و e الأُس،، ثم مررنا النتيجة للدالة cout.
نموذج لخرج البرنامج:

مثال برمجي 3:
المثال البرمجي التالي يوضح كيفية إستخدام دوال التقريب.

السطر(a) إستدعينا الدالة ceil ومررنا لها العدد 2.34 ،فترجع أقرب أكبر عدد صحيح (3).
ثم مررنا النتيجة مباشرة للدالة cout التي ترسل المخرجات للشاشة.
السطر(b) إستدعينا الدالة floor ومررنا لها العدد 2.34 ،فترجع أقرب أصغر عدد صحيح (2).
ثم مررنا النتيجة مباشرة للدالة cout التي ترسل المخرجات للشاشة.
السطر(c) إستدعينا الدالة fabs ومررنا لها العدد -17 ،فترجع القيمة المطلقة (17). ثم
مررنا النتيجة مباشرة للدالة cout التي ترسل المخرجات للشاشة.
خرج البرنامج:

مثال برمجي 4:
المثال البرمجي التالي يوضح كيفية إستخدام الدوال المثلثية. كل الدوال
المثلثية في لغة C++ تقبل بينية في شكل زاوية ممثلة بالتقدير الدائري.
العلاقة بين التقدير الدائري والستيني تُعطي بالعلاقة:

البرنامج:

السطر(a) عرفنا الثابت PI وحفظنا فيه القيمة 3.14159265359
.
السطر(b) أعلنا عن متغيرين r و d من نوع double الأول لحمل قيمة الزاوية بالتقدير
الدائري والثاني لحمل قيمة الزاوية بالتقدير الستيني.
السطر(c) إستخدمنا دالة الإدخال cin لإدخال قيمة في المتغير d .
السطر(d) إستخدمنا العلاقة الرياضية أعلاه لتحويل الزاوية
بالتقدير الستيني الي التقدير الدائري، ثم حفظنا النتيجة في المتغير r .
السطر(e) حسبنا قيمة الجيب (sin) للزاوية r (المقابلة للزاوية d في التقدير الستيني)، ثم مررنا
النتيجة للدالة cout التي تقوم بإرسال المُخرجات
للشاشة .
السطر(f) بنفس المفهوم حسبنا قيمة جيب التمام (cos)
السطر(g) بنفس المفهوم حسبنا قيمة ظل الزاوية (tan)
نموذج لخرج البرنامج:

مثال برمجي 5:
المثال البرمجي التالي يوضح كيفية تمرير نتيجة دالة الي دالة
أخري:

السطر(a) مررنا نتيجة sqrt(81) الي الدالة sqrt ، أخذنا الجذر التربيعي مرتين
للعدد 81
السطر(b) إستدعينا الدالة pow، مررنا 3 ف مكان البينية الأولي،
وفي البينية الثانية مررنا نتيجة الجذر التربيعي للعدد 4: sqrt(4).
خرج البرنامج:

تعليقات
إرسال تعليق