مضى على الشبكة و يوم من العطاء.

اللغة البرمجية ++C(الدالة Function)

Sadell_AliSadell_Ali is verified member.

الرقابة والتنظيم
.:: الرقابة والتنظيم ::.
.:: طاقم المشرفين ::.

السمعة:

الدالة ( Function ) عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها
حيث يوجد دوال جاهزة ودوال التي يقوم المبرمج بتعريفه (سوف يتم الشرح بشكل مفصل :giggle: )
الدوال الجاهزة في C++ يقال لها Built-in Functions
الدوال التي يقوم المبرمج بتعريفها يقال لها User-defined Functions.

بناء الدوال في ++c​

لتعريف إي دالة في ++c علينا أن نتبع الشكل التالي :-

كود:
returnType functionName(Parameter)
{
    // Function Body
}

. returnType يقوم بتحديد النوع الذي سترجعه الدالة عندما تنتهي أو إذا كانت لن ترجع أي قيمة

.functionName يمثل الإسم الذي نعطيه للدالة, و الذي من خلاله يمكننا استدعاءها

. Parameter المقصود بها الباراميتر ( وضع الباراميترات إختياري ) "سامحوني على الجمع العربي😅😂"

. function body تعني جسم الدالة, و المقصود بها الأوامر التي نضعها في الدالة

ونوع الإرجاع ( returnType ) في الدالة يمكن أن يكون أي نوع من أنواع البيانات الموجودة في C++
( string - bool - double - int إلخ...)
و في حال كانت الدالة لا ترجع أي قيمة, يجب وضع الكلمة void مكان returnType

الأن سوف أقوم بإعطاء بعض الأمثلة (لتوضيح بشكل كافي بإذن الله )

المثال الأول
كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة myFunction هنا قمنا بتعريف دالة إسمها
void myFunction() {
    cout << "My first function is called";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها myFunction() هنا قمنا باستدعاء الدالة
    myFunction();
    return 0;
}

في المثال التالي قمنا بتعريف دالة إسمها myFunction نوعها void حيث تحتوي على أمر طباعة فقط
بعدها قمنا باستدعائها في الدالة () main حتى يتم تنفيذ أمر الطباعة الموضوع فيها

سنحصل على النتيجة التالية عند التشغيل
كود:
My first function is called

المثال الثاني

كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة greeting هنا قمنا بتعريف دالة إسمها
//  (Parameter)قمنا بوضع براميتر
    (void greeting( string name  
{
    cout << "Hello " << name << ", welcome to our company.";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها greeting() هنا قمنا باستدعاء الدالة
    greeting("Mhamad");
    return 0;
}

في هذا المثال قمنا بتعريف دالة إسمها greeting ,عند إستدعاءها نمرر لها إسم فتطبع رسالة ترحيب للإسم الذي تم تمريره لها( محمد)

سنحصل على النتيجة التالية عند التشغيل

كود:
Hello Mhamad, welcome to our company

المثال الثالث

كود:
#include <iostream>
using namespace std;
// عند إستدعاءها نمرر لها عددين فتقوم بإرجاع ناتج جمعهما get_sum هنا قمنا بتعريف دالة إسمها
int getSum(int a, int b)
{
    return a + b;
}
int main()
{
    // x في المتغير get_sum() هنا قمنا بتخزين ناتج العددين 3 و 5 الذي سترجعه الدالة
    int result = getSum(3, 7);
 
    // و التي ستساوي 10 result هنا قمنا بعرض قيمة المتغير
    cout << "Result = " << result;
 
    return 0;
}
سنحصل على ناتج جمع العددين فسيكون الناتج هو


كود:
Result = 10

نستطيع عند وضع(Parameter) في ال (Functions) أن نمرر له قيمة إفتراضية
حيث أن اللغة البرمجية ++c تتيح لك وضع قيم إفتراضية للبراميترات مما يجعلك عند إستدعاء الدالة مخيّر على تمرير قيم مكان البراميترات بدل أن تكون مجبراً على ذلك
القيمة الإفتراضية التي نضعها للبراميتر يقال لها Default Argument

مثال على ذلك

كود:
#include <iostream>
using namespace std;
// و يمكنك عدم تمرير قيمة لأنه أصلاً يملك قيمة language عند إستدعاءها يمكنك تمرير قيمة لها مكان الباراميتر .printLanguage هنا قمنا بتعريف دالة إسمها
void printLanguage(string language="English")
{
    cout << "Your language is " << language << endl;
}
int main()
{
    // "English" و بالتالي ستظل قيمته language بدون تمرير قيمة مكان الباراميتر printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage();
 
    // "Arabic" و بالتالي ستصبح قيمته language للباراميتر 'Arabic' مع تمرير القيمة printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage("Arabic");
 
    return 0;
}



في المثال التالي قمنا بتعريف دالة إسمهاprintLanguage
هذه الدالة فيها باراميتر واحد إسمه language يملك النص"English" كقيمة إفتراضية
حيث أن كل ما تفعله هذه الدالة عند إستدعاءها هو طباعة قيمة الباراميتر language
ملاحظة: وبما أننا قمنا بتمرير قيمة إفتراضية , فهذا يعني أننا لم نعد مجبرين على تمرير قيمة له عند إستدعاء الدالة لأنه اصلا يمتلك قيمة

سنحصل على النتيجة التالية عند تشغيل البرنامج


كود:
Your language is English
Your language is Arabic

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


🌸يعطيكم العافية🌸

فهرس الدروس
دروس البرمجة الكائنية
 
التعديل الأخير بواسطة المشرف:
الدالة ( Function ) عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها
حيث يوجد دوال جاهزة ودوال التي يقوم المبرمج بتعريفه (سوف يتم الشرح بشكل مفصل :giggle: )
الدوال الجاهزة في C++ يقال لها Built-in Functions
الدوال التي يقوم المبرمج بتعريفها يقال لها User-defined Functions.

بناء الدوال في ++c​

لتعريف إي دالة في ++c علينا أن نتبع الشكل التالي :-

كود:
returnType functionName(Parameter)
{
    // Function Body
}

. returnType يقوم بتحديد النوع الذي سترجعه الدالة عندما تنتهي أو إذا كانت لن ترجع أي قيمة

.functionName يمثل الإسم الذي نعطيه للدالة, و الذي من خلاله يمكننا استدعاءها

. Parameter المقصود بها الباراميتر ( وضع الباراميترات إختياري ) "سامحوني على الجمع العربي😅😂"

. function body تعني جسم الدالة, و المقصود بها الأوامر التي نضعها في الدالة

ونوع الإرجاع ( returnType ) في الدالة يمكن أن يكون أي نوع من أنواع البيانات الموجودة في C++
( string - bool - double - int إلخ...)
و في حال كانت الدالة لا ترجع أي قيمة, يجب وضع الكلمة void مكان returnType

الأن سوف أقوم بإعطاء بعض الأمثلة (لتوضيح بشكل كافي بإذن الله )

المثال الأول
كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة myFunction هنا قمنا بتعريف دالة إسمها
void myFunction() {
    cout << "My first function is called";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها myFunction() هنا قمنا باستدعاء الدالة
    myFunction();
    return 0;
}

في المثال التالي قمنا بتعريف دالة إسمها myFunction نوعها void حيث تحتوي على أمر طباعة فقط
بعدها قمنا باستدعائها في الدالة () main حتى يتم تنفيذ أمر الطباعة الموضوع فيها

سنحصل على النتيجة التالية عند التشغيل
كود:
My first function is called

المثال الثاني

كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة greeting هنا قمنا بتعريف دالة إسمها
//  (Parameter)قمنا بوضع براميتر
    (void greeting( string name     
{
    cout << "Hello " << name << ", welcome to our company.";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها greeting() هنا قمنا باستدعاء الدالة
    greeting("Mhamad");
    return 0;
}

في هذا المثال قمنا بتعريف دالة إسمها greeting ,عند إستدعاءها نمرر لها إسم فتطبع رسالة ترحيب للإسم الذي تم تمريره لها( محمد)

سنحصل على النتيجة التالية عند التشغيل

كود:
Hello Mhamad, welcome to our company

المثال الثالث

كود:
#include <iostream>
using namespace std;
// عند إستدعاءها نمرر لها عددين فتقوم بإرجاع ناتج جمعهما get_sum هنا قمنا بتعريف دالة إسمها
int getSum(int a, int b)
{
    return a + b;
}
int main()
{
    // x في المتغير get_sum() هنا قمنا بتخزين ناتج العددين 3 و 5 الذي سترجعه الدالة
    int result = getSum(3, 7);
   
    // و التي ستساوي 10 result هنا قمنا بعرض قيمة المتغير
    cout << "Result = " << result;
   
    return 0;
}
سنحصل على ناتج جمع العددين فسيكون الناتج هو


كود:
Result = 10

نستطيع عند وضع(Parameter) في ال (Functions) أن نمرر له قيمة إفتراضية
حيث أن اللغة البرمجية ++c تتيح لك وضع قيم إفتراضية للبراميترات مما يجعلك عند إستدعاء الدالة مخيّر على تمرير قيم مكان البراميترات بدل أن تكون مجبراً على ذلك
القيمة الإفتراضية التي نضعها للبراميتر يقال لها Default Argument

مثال على ذلك

كود:
#include <iostream>
using namespace std;
// و يمكنك عدم تمرير قيمة لأنه أصلاً يملك قيمة language عند إستدعاءها يمكنك تمرير قيمة لها مكان الباراميتر .printLanguage هنا قمنا بتعريف دالة إسمها
void printLanguage(string language="English")
{
    cout << "Your language is " << language << endl;
}
int main()
{
    // "English" و بالتالي ستظل قيمته language بدون تمرير قيمة مكان الباراميتر printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage();
   
    // "Arabic" و بالتالي ستصبح قيمته language للباراميتر 'Arabic' مع تمرير القيمة printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage("Arabic");
   
    return 0;
}



في المثال التالي قمنا بتعريف دالة إسمهاprintLanguage
هذه الدالة فيها باراميتر واحد إسمه language يملك النص"English" كقيمة إفتراضية
حيث أن كل ما تفعله هذه الدالة عند إستدعاءها هو طباعة قيمة الباراميتر language
ملاحظة: وبما أننا قمنا بتمرير قيمة إفتراضية , فهذا يعني أننا لم نعد مجبرين على تمرير قيمة له عند إستدعاء الدالة لأنه اصلا يمتلك قيمة

سنحصل على النتيجة التالية عند تشغيل البرنامج


كود:
Your language is English
Your language is Arabic

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


🌸يعطيكم العافية🌸
صدقاً هاذ ابداع ب ابداع
بارك الله فيك يا سديل وجزاك الله كل خير وننتظر جديدك بإذن المولى عز وجل 🔥
تقبلي مروري
ستورم
 
صدقاً هاذ ابداع ب ابداع
بارك الله فيك يا سديل وجزاك الله كل خير وننتظر جديدك بإذن المولى عز وجل 🔥
تقبلي مروري
ستورم

صدقاً هاذ ابداع ب ابداع
بارك الله فيك يا سديل وجزاك الله كل خير وننتظر جديدك بإذن المولى عز وجل 🔥
تقبلي مروري
ستورم
والله شكرا على الكلام اللطيف والمشجع 🤍🙏 منتعلم منكم الصراحة😊
 
  • Love
التفاعلات: STORM
الدالة ( Function ) عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها
حيث يوجد دوال جاهزة ودوال التي يقوم المبرمج بتعريفه (سوف يتم الشرح بشكل مفصل :giggle: )
الدوال الجاهزة في C++ يقال لها Built-in Functions
الدوال التي يقوم المبرمج بتعريفها يقال لها User-defined Functions.

بناء الدوال في ++c​

لتعريف إي دالة في ++c علينا أن نتبع الشكل التالي :-

كود:
returnType functionName(Parameter)
{
    // Function Body
}

. returnType يقوم بتحديد النوع الذي سترجعه الدالة عندما تنتهي أو إذا كانت لن ترجع أي قيمة

.functionName يمثل الإسم الذي نعطيه للدالة, و الذي من خلاله يمكننا استدعاءها

. Parameter المقصود بها الباراميتر ( وضع الباراميترات إختياري ) "سامحوني على الجمع العربي😅😂"

. function body تعني جسم الدالة, و المقصود بها الأوامر التي نضعها في الدالة

ونوع الإرجاع ( returnType ) في الدالة يمكن أن يكون أي نوع من أنواع البيانات الموجودة في C++
( string - bool - double - int إلخ...)
و في حال كانت الدالة لا ترجع أي قيمة, يجب وضع الكلمة void مكان returnType

الأن سوف أقوم بإعطاء بعض الأمثلة (لتوضيح بشكل كافي بإذن الله )

المثال الأول
كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة myFunction هنا قمنا بتعريف دالة إسمها
void myFunction() {
    cout << "My first function is called";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها myFunction() هنا قمنا باستدعاء الدالة
    myFunction();
    return 0;
}

في المثال التالي قمنا بتعريف دالة إسمها myFunction نوعها void حيث تحتوي على أمر طباعة فقط
بعدها قمنا باستدعائها في الدالة () main حتى يتم تنفيذ أمر الطباعة الموضوع فيها

سنحصل على النتيجة التالية عند التشغيل
كود:
My first function is called

المثال الثاني

كود:
#include <iostream>
using namespace std;
// عند استدعاءها تقوم بطباعة جملة greeting هنا قمنا بتعريف دالة إسمها
//  (Parameter)قمنا بوضع براميتر
    (void greeting( string name    
{
    cout << "Hello " << name << ", welcome to our company.";
}
int main()
{
    // حتى يتنفذ الأمر الموضوع فيها greeting() هنا قمنا باستدعاء الدالة
    greeting("Mhamad");
    return 0;
}

في هذا المثال قمنا بتعريف دالة إسمها greeting ,عند إستدعاءها نمرر لها إسم فتطبع رسالة ترحيب للإسم الذي تم تمريره لها( محمد)

سنحصل على النتيجة التالية عند التشغيل

كود:
Hello Mhamad, welcome to our company

المثال الثالث

كود:
#include <iostream>
using namespace std;
// عند إستدعاءها نمرر لها عددين فتقوم بإرجاع ناتج جمعهما get_sum هنا قمنا بتعريف دالة إسمها
int getSum(int a, int b)
{
    return a + b;
}
int main()
{
    // x في المتغير get_sum() هنا قمنا بتخزين ناتج العددين 3 و 5 الذي سترجعه الدالة
    int result = getSum(3, 7);
  
    // و التي ستساوي 10 result هنا قمنا بعرض قيمة المتغير
    cout << "Result = " << result;
  
    return 0;
}
سنحصل على ناتج جمع العددين فسيكون الناتج هو


كود:
Result = 10

نستطيع عند وضع(Parameter) في ال (Functions) أن نمرر له قيمة إفتراضية
حيث أن اللغة البرمجية ++c تتيح لك وضع قيم إفتراضية للبراميترات مما يجعلك عند إستدعاء الدالة مخيّر على تمرير قيم مكان البراميترات بدل أن تكون مجبراً على ذلك
القيمة الإفتراضية التي نضعها للبراميتر يقال لها Default Argument

مثال على ذلك

كود:
#include <iostream>
using namespace std;
// و يمكنك عدم تمرير قيمة لأنه أصلاً يملك قيمة language عند إستدعاءها يمكنك تمرير قيمة لها مكان الباراميتر .printLanguage هنا قمنا بتعريف دالة إسمها
void printLanguage(string language="English")
{
    cout << "Your language is " << language << endl;
}
int main()
{
    // "English" و بالتالي ستظل قيمته language بدون تمرير قيمة مكان الباراميتر printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage();
  
    // "Arabic" و بالتالي ستصبح قيمته language للباراميتر 'Arabic' مع تمرير القيمة printLanguage() هنا قمنا باستدعاء الدالة
    printLanguage("Arabic");
  
    return 0;
}



في المثال التالي قمنا بتعريف دالة إسمهاprintLanguage
هذه الدالة فيها باراميتر واحد إسمه language يملك النص"English" كقيمة إفتراضية
حيث أن كل ما تفعله هذه الدالة عند إستدعاءها هو طباعة قيمة الباراميتر language
ملاحظة: وبما أننا قمنا بتمرير قيمة إفتراضية , فهذا يعني أننا لم نعد مجبرين على تمرير قيمة له عند إستدعاء الدالة لأنه اصلا يمتلك قيمة

سنحصل على النتيجة التالية عند تشغيل البرنامج


كود:
Your language is English
Your language is Arabic

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


🌸يعطيكم العافية🌸
ماشاء الله عليك يا سديل، تطور مذهل في الكتابة وشغلك متعوب عليه، الله يوفقك 🎉
 
الدالة ( Function ) عبارة عن مجموعة أوامر مجمعة في مكان واحد و تتنفذ عندما نقوم باستدعائها

ماشاء الله عليك يا سديل، تطور مذهل في الكتابة وشغلك متعوب عليه، الله يوفقك 🎉
من بعد توجيهاتك عمر🙏🤍 شكرا شكرا🤗
 

آخر المشاركات

عودة
أعلى