C++ وظائف مع أمثلة البرنامج

ما هي الوظيفة في C++?

A وظيفة in C++ يشير إلى مجموعة من البيانات التي تأخذ المدخلات وتعالجها وترجع المخرجات. الفكرة وراء الوظيفة هي الجمع بين المهام المشتركة التي يتم تنفيذها بشكل متكرر. إذا كان لديك مدخلات مختلفة، فلن تكتب نفس الرمز مرة أخرى. ستقوم ببساطة باستدعاء الوظيفة بمجموعة مختلفة من البيانات تسمى المعلمات.

كل C++ يحتوي البرنامج على وظيفة واحدة على الأقل، وهي الوظيفة الرئيسية (). يمكنك تقسيم الكود الخاص بك إلى وظائف مختلفة. ويجب أن يكون هذا التقسيم بحيث تقوم كل وظيفة بمهمة محددة.

هناك العديد من الوظائف المضمنة في C++ مكتبة قياسية. يمكنك استدعاء هذه الوظائف داخل البرنامج الخاص بك.

لماذا استخدام الوظائف؟

هناك العديد من الفوائد المرتبطة باستخدام الوظائف. وتشمل هذه:

  • تقوم كل وظيفة بتجميع التعليمات البرمجية ذات الصلة معًا. وهذا يسهل على المبرمجين فهم التعليمات البرمجية.
  • تعمل الوظائف على تسهيل البرمجة من خلال القضاء على تكرار التعليمات البرمجية.
  • تسهل الوظائف إعادة استخدام التعليمات البرمجية. يمكنك استدعاء نفس الوظيفة لأداء مهمة ما في أقسام مختلفة من البرنامج أو حتى خارج البرنامج.

وظائف مدمجة

In C++ وظائف المكتبة مدمجة C++ وظائف. لاستخدام هذه الوظائف، ما عليك سوى استدعاءها/الاتصال بها مباشرةً. ليس عليك كتابة الوظائف بنفسك.

مثال 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

الإخراج:

وظائف مدمجة

فيما يلي لقطة شاشة للكود:

وظائف مدمجة

شرح الكود:

  1. قم بتضمين ملف رأس iostream في برنامجنا لاستخدام وظائفه.
  2. قم بتضمين مكتبة cmath لاستخدام وظائفها. نريد استخدام الدالة sqrt() المحددة فيها.
  3. قم بتضمين مساحة الاسم std في الكود الخاص بنا لاستخدام فئاتها دون استدعائها.
  4. استدعاء الدالة الرئيسية (). يجب إضافة منطق البرنامج داخل نص هذه الوظيفة.
  5. أعلن عن متغيرين مزدوجين، num، وsquareRoot.
  6. طباعة بعض النص على وحدة التحكم. يطلب النص من المستخدم إدخال رقم.
  7. قراءة مدخلات المستخدم من لوحة المفاتيح. سيصبح الإدخال قيمة المتغير num.
  8. استدعاء دالة المكتبة sqrt()، التي تحسب الجذر التربيعي للرقم. لقد مررنا المعلمة num إلى الدالة، مما يعني أنها ستحسب الجذر التربيعي للعدد. تم تعريف هذه الوظيفة في مكتبة cmath.
  9. اطبع الرقم الذي أدخله المستخدم وجذره التربيعي وبعض النصوص الأخرى على وحدة التحكم.
  10. يجب أن يقوم البرنامج بإرجاع القيمة عند اكتماله بنجاح.
  11. نهاية نص الدالة main().

وظائف محددة من قبل المستخدم

C++ يسمح للمبرمجين بتحديد وظائفهم الخاصة. الغرض من الوظيفة هو تجميع التعليمات البرمجية ذات الصلة. يتم بعد ذلك إعطاء الكود معرفًا فريدًا، وهو اسم الوظيفة.

يمكن استدعاء/استدعاء الوظيفة من أي جزء آخر من البرنامج. سيقوم بعد ذلك بتنفيذ الكود المحدد داخل جسمه.

مثال 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

الإخراج:

وظائف محددة من قبل المستخدم

فيما يلي لقطة شاشة للكود:

وظائف محددة من قبل المستخدم

شرح الكود:

  1. قم بتضمين ملف رأس iostream في برنامجنا لاستخدام وظائفه.
  2. قم بتضمين مساحة الاسم std في الكود الخاص بنا لاستخدام فئاتها دون استدعائها.
  3. قم بإنشاء وظيفة معرفة من قبل المستخدم باسم sayHello().
  4. اطبع بعض النص على وحدة التحكم عند استدعاء الدالة sayHello().
  5. نهاية نص الدالة sayHello().
  6. استدعاء الدالة الرئيسية (). يجب إضافة منطق البرنامج داخل نص هذه الوظيفة.
  7. استدعاء/استدعاء الوظيفة المسماة sayHello().
  8. يجب أن يقوم البرنامج بإرجاع القيمة عند اكتماله بنجاح.
  9. نهاية نص الدالة main().

إعلان الوظيفة/النموذج الأولي

إذا قمت بتعريف وظيفة محددة من قبل المستخدم بعد الوظيفة main()، فإن C++ مترجم سيرجع خطأً. والسبب هو أن المترجم لا يعرف تفاصيل الدالة المحددة من قبل المستخدم. وتتضمن التفاصيل اسمها وأنواع الوسائط وأنواع إرجاعها.

In C++يعلن إعلان الوظيفة/النموذج الأولي عن وظيفة بدون نص. وهذا يعطي للمترجم تفاصيل الوظيفة المحددة من قبل المستخدم.

إعلان الوظيفة/النموذج الأولي

في الإعلان/النموذج الأولي، قمنا بتضمين نوع الإرجاع واسم الوظيفة وأنواع الوسائط. لا تتم إضافة أسماء الوسائط. ومع ذلك، فإن إضافة أسماء الوسيطات لا ينشئ أي خطأ.

تعريف الوظيفة

الغرض من إعلان الوظيفة هو إخبار C++ مترجم حول اسم الوظيفة ونوع الإرجاع والمعلمات. تعريف الدالة يحكي C++ مترجم حول الجسم الوظيفي.

تعريف الوظيفة/النموذج الأولي

بناء الجملة

return_datatype function_name( parameters) {
   function body 
}

مما سبق، تعريف الدالة يحتوي على رأس الدالة ونصها. وفيما يلي شرح المعلمات:

  • return_datatype- تقوم بعض الوظائف بإرجاع القيمة. تشير هذه المعلمة إلى نوع بيانات القيمة المرجعة. بعض الوظائف لا ترجع القيمة. في هذه الحالة، تصبح قيمة هذه المعلمة فارغة.
  • function_name- هذا هو اسم الوظيفة. يشكل اسم الوظيفة والمعلمات توقيع الوظيفة.
  • المعلمات- هذا هو النوع والترتيب وعدد معلمات الوظيفة. بعض الوظائف لا تحتوي على معلمات.
  • نص الوظيفة - هذه عبارات تحدد ما ستفعله الوظيفة.

استدعاء الوظيفة

لكي تقوم دالة بتنفيذ المهمة المحددة وإرجاع المخرجات، يجب استدعاؤها. عند استدعاء دالة، فإنها تنفذ البيانات المضافة داخل نصها.

استدعاء الوظيفة

يسمى البرنامج باسمه . إذا كانت الدالة تأخذ معلمات، فيجب تمرير قيمها أثناء المكالمة. إذا كانت الخدمة لا تأخذ أي معلمات، فلا تمرر أي قيمة أثناء المكالمة.

تمرير الحجج

In C++، الوسيطة/المعلمة هي البيانات التي تم تمريرها إلى دالة أثناء مكالمتها. يجب أن تتم تهيئة القيم للمتغيرات الخاصة بكل منها.

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

يمكن للمرء تعيين القيم الافتراضية لمعلمات الوظيفة. إذا لم تقم بتمرير قيمة للمعلمة أثناء استدعاء الدالة، فسيتم استخدام القيمة الافتراضية.

مثال 3: كيفية كتابة دالة واستدعاءها

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

الإخراج:

تمرير الحجج

فيما يلي لقطة شاشة للكود:

تمرير الحجج

شرح الكود:

  1. قم بتضمين ملف رأس iostream في برنامجنا لاستخدام وظائفه.
  2. قم بتضمين مساحة الاسم std في الكود الخاص بنا لاستخدام فئاتها دون استدعائها.
  3. قم بتعريف دالة باسم addFunc() تأخذ معلمتين صحيحتين. يؤدي هذا إلى إنشاء النموذج الأولي للوظيفة.
  4. استدعاء الدالة الرئيسية (). يجب إضافة منطق البرنامج داخل نص هذه الوظيفة.
  5. قم بتعريف ثلاثة متغيرات صحيحة، x، y، وsum.
  6. اطبع بعض النصوص على وحدة التحكم. يطلب النص من المستخدم إدخال رقمين.
  7. اقرأ إدخال المستخدم من لوحة المفاتيح. يجب على المستخدم إدخال رقمين للمتغيرين x وy، مفصولين بمسافة.
  8. قم باستدعاء الدالة addFunc() ومرر إليها المعلمات x وy. ستعمل الدالة على هذه المعلمات وتخصص الناتج للمتغير sum.
  9. اطبع قيم المتغيرات x وy والمجموع على وحدة التحكم بجانب النص الآخر.
  10. يجب أن تقوم الدالة بإرجاع قيمة عند اكتمالها بنجاح.
  11. نهاية نص الدالة main().
  12. تعريف الوظيفة. نحن نحدد الدالة addFunc(). سنذكر ما ستفعله الدالة داخل جسمها، { }.
  13. الإعلان عن متغير عدد صحيح يسمى addFunc.
  14. إضافة قيم المعلمات num1 و num2 وتعيين النتيجة إلى المتغير addFunc.
  15. يجب أن تقوم الدالة addFunc() بإرجاع قيمة المتغير addFunc.
  16. نهاية جسم الوظيفة، أي تعريف الوظيفة.

ملخص

  • وظيفة في C++ يساعدك على تجميع التعليمات البرمجية ذات الصلة في واحد.
  • تسهل الوظائف إعادة استخدام التعليمات البرمجية.
  • بدلاً من كتابة تعليمات برمجية مماثلة، مراراً وتكراراً، يمكنك ببساطة تجميعها في وظيفة. يمكنك بعد ذلك استدعاء الوظيفة من أي مكان داخل الكود.
  • يمكن أن تكون الوظائف مكتبة أو معرفة من قبل المستخدم.
  • وظائف المكتبة هي وظائف مدمجة مختلفة C++ وظائف.
  • لاستخدام وظائف المكتبة، ما عليك سوى تضمين مكتبة التعريف الخاصة بها واستدعاء الوظيفة. أنت لا تحدد الوظيفة.
  • الوظائف المعرفة من قبل المستخدم هي الوظائف التي تحددها على أنها C++ مبرمج.
  • يخبر إعلان الدالة المترجم عن اسم الوظيفة ونوع الإرجاع وأنواع المعلمات.
  • يضيف تعريف الوظيفة نص الوظيفة.
  • إذا كانت الدالة تأخذ معلمات، فيجب تمرير قيمها أثناء استدعاء الدالة.

تلخيص هذه التدوينة بـ: