الدوال في لغة c++

0 111

كيفية استخدام الدوال في لفة c++، مع شرح مفصّل لأهم المفاهيم الدوال في لغة السي بلص بلص، يتخلله أمثلة توضيحية وتمارين عملية.

ما هو الدوال في لغة c++؟

تعرف الدوال في لغة السي بلص بلص بأنها عبارة عن برنامج فرعي من البرنامج الأصلي يقوم بعمل وظيفة محددة، حيث تقوم باستلام قيم ومدخلات، ثم تحصل عمليات حسابية داخل الدالة وحساب المخرجات، بعد ذلك طباعة المخرجات على شاشة المستخدم.


اقرأ أيضًا: معنى اسم لارا


مكوّنات الدالة

تتكون الدالة من أربع أجزاء رئيسية هي:

رأس الدالة

وهو الجزء الذي يحدد نوع الدالة من حيث استرجاع القيم، حيث نبدأ فيه بذكر القيمة التي نريد من الدالة أن تستعيدها مثل int أو double وغيرها، أو حتى عدم استرجاع أي قيم بوضع void، ثم اسم الدالة وتتبع قوانين تسمية المتغيرات العادية، بعد ذلك نفتح قوسين ونكتب العناصر التي نريدها التي نريد أن نجري عليها العمليات مثلًا int y وتسمى أيضًا Parameters ويمكن سرد أكثر من عنصر من خلال الفصل بينهما بفاصلة (,).

مثال على رأس الدالة في لغة c++

int sum(int n, int y)


اقرأ أيضًا: الأميرة ديانا (1997- 1961)


جسم الدالة

يأتي جسم الدالة بعد الرأس مباشرةً، حيث أننا نفتح حاصرتين بالشكل {}، ونضع فيها العمليات سوآءا أكانت حسابية أم عملية (مثل الطباعة أو الاستلام من المستخدم).

مثال عليها

{

;int sum

;sum=n+y

;return m

}

استدعاء الدالة

وهو يشبه رأس الدالة بالضبط عدا أنه لا يحتوي على نوع البيانات المعادة أو void فقط نكتفي بذكر اسم الدالة وإعطائها المدخلات التي تمت صياغتها بها، مثلًا إذا كانت كعدد صحيح فمن اللازم أن تكون عدد صحيح، وإذا كانت قيمة نصية فيجب إعطائها قيمة نصية وهكذا، كما تسمى هذه المدخلات باسم Arguments.

تعريف الدالة

وهي ذكر الدالة وتعريفها لكي تعمل بالشكل الصحيح، وتكون خارج الدالة الرئيسية (main)، إما قبلها أو بعدها، وتتكون من الأجزاء التي تم شرحها سابقًا، الرأس وتبعه الجسم فقط.

التصريح عن الدوال في لغة c++

قد تكون هذه الخطوة زائدة ولا يجب علينا أن نعملها، لكن يجب أن نعملها في حالة واحدة، إذا قمنا بتعريف الدالة بعد دالة main، إذا عملنا هذا، فيجب علينا أن نصرح عن الدالة، ببساطة نقوم بنسخ رأس الدالة في التعريف مع إضافة فاصلة منقولة فقط لا غير.

الجدير بالذكر أنه بالإمكان حذف أسماء المتغيرات لعناصر Parameters عند التصريح عن الدوال في لغة السي بلص بلص.

أنواع الدوال في لغة c++

يمكن نقسّم الدوال في لغة c++ على حسب عاملين اثنين هما الجاهزية واسترجاع القيمة.

من حيث الجاهزية

هناك دوال معرفة مسبقًا ويتم استخدامها مباشرًا وأخرى تبنى من الصفر.

دوال معرّفة مسبقًا

توجد في لغة c++ مكتبات جاهزة تحتوي على دوال مبرمجة مسبقًا، فقط نقوم بإستدعائها مباشرةً بعد تضمين المكتبة التي توجد فيها، من أشهر هذه المكتبات ودوالها:

قائمة بالدوال التي الجاهزة
قائمة بالدوال التي الجاهزة

دوال يتم تعريفها وبنائها

هي تلك الدوال التي يقوم المبرمج بنفسه بعمل أجزائها لتخدم غرض ما، تعد هذه الدوال هي الأوسع والأفضل، حيث يمكنك بناء جميع الدوال التي ذكرناها والموجودة مسبقًا في المكتبات وأي عملية مستقلة تريدها مثل الطباعة، أو حساب المساحات أو إدخال البيانات وغيرها.


اقرأ أيضًا: 10 طرق لزيادة الخصوبة وزيادة عدد الحيوانات المنوية


نوع دوال c++ من حيث القيمة

هناك دوال تعيد قيمة تختلف عن بعضها البعض في بعض الكلمات والأسطر وفي الوظيفة أيضًا.

دوال تعيد قيمة

عندما يتم استدعاء الدالة التي تعيد قيمة يكون الناتج قيمة معينة مثل رقم أو حرف أو نص أو ما شابه ذلك، وهذه القيمة تتم طباعتها مباشرةً بواسطة cout أو مساواتها بجملة إحلال لمتغير آخر على سبيل المثال:

;int y= sum(n,m)

;cout<<sum(n,m)

دوال لا تعيد قيمة

هي الدوال التي تقوم بعمل محدد مثل الطباعة أو القراءة من المستخدمين أو تعديل قيم لمتغيرات عامة، حيث أنها عند الاستدعاء لا تكون هناك قيمة لها كناتج من عمليات حسابية.

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

المتغيرات المحلية والعامة

مفهوم أنواع المتغيرات للدوال في لغة c++ مهم جدًا، إن المتغيرات التي نقوم بتعريفها في داخل الدالة تسمى محلية لا تكون معرفة أبدًا خارج الدالة، ولا يمكن استعمالها في الخارج مباشرةً، بينما المتغيرات العامة هي تلك التي يتم تعريفها خارج جميع الدوال – كل الدوال حتى الدالة main – ،المتغير العام يمكن استخدامه وتغيير قيمته من أي مكان في البرنامج.

شرح كيفية عمل دالة في لغة c++

عند عمل دالة يجب التفكير في الغرض منها، إذا كان حساب شيء فنجعلها تعيد قيمة، فمثلًا الصورة لو أردنا عمل حاسبة تجمع وتطرح وتضرب وتقسم، حينها نحتاج إلى أربع دوال.

لو قمنا بذلك في الطريقة العادية لأصبح كالتالي:

;int sum,div, mult, sub, num1, num2

;cin>>num1>>num2

;sum = num1 + num2

;div = num1 / num2

;mult = num1 * num2

;sub = num1 – num2

;cout<<”sum is ”<<sum<<endl<<”div is ”<<div<<endl<<”multiple is ”<<mult<<endl

;cout<<”sub is ”<<sub<<endl

لكن عندما نكتب 4 دوال في لغة c++ مع استخدام جملة Loop يصبح أفضل هكذا.

شرح كيفية عمل دالة في لغة c++ السي بلص بلص
صورة للمخرجات على الكود بلوك

<include <iostream#
;using namespace std
    }int sum(int num1 ,int num2 )
        ;return num1+num2
        }
    }int div1(int num1 ,int num2 )
        ;int div
        ;div= num1/num2
        ;return (div)
        }
    }int mult(int num1 ,int num2 )
        ;return num1*num2
        }
    }int sub(int num1 ,int num2 )
        ;return num1-num2
        }
}()int main
    ;int num1, num2, result
    ;string op
    ;cout<<“enter num one”<<endl
    ;cin>>num1
    ;cout<<“enter num two”<<endl
    ;cin>>num2
    ;cout<<“enter the operator + , – , / , * “<<endl
    ;cin>>op
    }if(op==”+”)
        ;result= sum(num1, num2)
        }
    }else if(op==”-“)
        ;result= sub(num1, num2)
        }
    }else if (op==”/”)
        ;result= div1(num1, num2)
       }
    }else if (op==”*”)
        ;result= mult(num1, num2)
        }
        ;cout<<“The result is “<<result
    ;return 0
    }


اقرأ أيضًا: فوائد البروبيوتك الصحية


أمثلة على الدوال في لغة c++

مثال على دالة في لغة c++ تعيد قيمة تقوم بتحديد أكبر قيمة بين رقمين.

كود ومخرجات المثال الأول
كود ومخرجات المثال الأول

<include <iostream#
;using namespace std
;int getTheMax(int , int)
}()int main
    ;int n1, n2
    ;cout<<“enter 2 numbers to find the Max”<<endl
    ;cin>>n1>>n2
    ;cout<<“the maximum number is “<<getTheMax(n1,n2)  
    ;return 0
    }   
}int getTheMax(int n1, int n2)  
    if (n1>n2)
    ;return n1
    else
    ;return n2
    }

 


اقرأ أيضًا: كيفية حساب القرض الشخصي


مثال آخر على دالة من دوال لغة c++ لا تعيد قيمة، تطبع اسم المستخدم مع التحية.

كود ومخرجات المثال الثاني
كود ومخرجات المثال الثاني

<include <iostream#
;using namespace std

;void displayhello(string)
}()int main   
    ;string name
    ;cout<<“Enter your name!”<<endl
    ;cin>>name
    ;displayhello(name)   
    ;return 0
}
}void displayhello(string name)
   
    ;cout<<“Hello sir “<<name<<endl
   
    }


تمارين محلولة على الدوال

اكتب برنامج مع دالة بلغة c++ تتحقق من رقم فيما إذا كان زوجي أو فردي.

الجواب:

<include <iostream#
;using namespace std
;void evenorodd(int)
}()int main
    ;int num
    ;cout<<“enter a number “<<endl
    ;cin>>num
    ;evenorodd(num)
    ;return 0
    }
}void evenorodd(int y)
   
    if(y%2==0)
    ;”cout<<“This is an even number
    else{cout<<“This is an odd number!”;}   
    }

 

اكتب برنامج سي بلص بلص يعطي الجذر التربيعي للرقم المدخل باستخدام دوال c++.

الجواب:

 

<include <iostream#

<include <cmath#

;using namespace std
}()int main
;int n
;cout<<“Enter any number”<<endl
;cin>>n
;cout<<“The Square root is “<<sqrt(n)

;return 0
}


لا تجد مبرمجًا إلا ويستخدم مجموعة من الدوال في برامجه لأنه يسهّل عملية الصيانة ويرتب الأفكار مع إمكانية الاستخدام لأكثر من مرة.

احصل على تحديثات في الوقت الفعلي مباشرة على جهازك ، اشترك الآن.

اترك رد