الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]طلب : شرح التوابع c++

بدأه islamoooo في 18 يوليو 2013 · 2 رد · 1,599 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم شباب

 

كنت حابب لو احد معه شرح عن تجربته يكون فيه كل شىء عن التوابع بالسى ++

 

بس يكون عن تجربته لان فى ناس تبحث وتعطينى روابط

 

انا عايز احد يكون جرب الكتاب او المصدر اللى هيضعه

 

 

وشكرااااا

#2

أخى العزيز

 

  • أولا أحب أوضح لك أولا ما هى الدالة (Function) ؟

- الدالة هى عبارة عن مجموعة من الاوامر أو الاكواد والتى تم إنشائها خصيصا للقيام بعمل معين.

-  وهى تستخدم أيضا لتقليل الكود فى الدالة الرئيسية (Main) .

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

 

مثال:

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

int main(){
   int num, num2, result;
   cout << "Enter the first Number: ";
   cin >> num;
   cout << "Enter the second Number: ";
   cin >> num2;
   result = num + num2;
   cout << result << endl;
  return 0;
}

مثال 2:

سنقوم بعمل نفس البرنامج السابق ولكن بأستخدام الدوال.

void sum(){
	int num, num2, result;
	cout << "Enter the first Number: ";
	cin >> num;
	cout << "Enter the second Number: ";
	cin >> num2;
	result = num + num2;
	cout << result << endl;
}

int main(){
	sum();
	return 0;
}

والان ما رايك أى من الطريقتين أفضل ؟

- بأستخدام الدوال أصبح الكود فى الدالة الرئيسية بسيط وقليل.

- بأستخدام الدوال أصبح التعديل على الكود فى المستقبل سيكون أسهل وأسرع لانك فصلت الكود الخاص بالعملية الحسابية (الجمع) وجعلتة فى مكان منفصل .

 

طبعا أنا لا أتكلم هنا عن هذا الكود المكون من 7 أسطر فهذا أمر بسيط, ولكن فى المستقبل سوف تنشئ برامج تتكون من مئات الاسطر من الاكواد البرميجة, وكل هذة الاسطر سوف تكون مكتوبة فى الدالة الرئيسية (Main), هل تعتقد أنك فى المستقبل سوف تستطيع تعديل الكود الفلانى المسئول عن العملية الفلانية فى هذة المئات من الاسطر , بالطبع سيكون أمر شاق جدا ومتعب . ومن هنا تم إنشاء الدوال .

 

ملحوظة: طبعا أنا كتبت لك فى المثال السابق أبسط شكل للدالة عشان تفهمة , لكن الدالة لها أكثر من شكل .

 

 

 

نأتى الان إلى الكود الذى قمت بإضافتة هنا لشرحة :

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

 

RlPfS.png

  1. نوع البيانات النهائية التى سوف تسترجعها الدالة, من صفات الدوال أنها تقوم بأسترجاع بيانات منها , كمثال الالة الحاسبة مثلا تعطيعا رقمين مثلا لكى تجمعهم ثم تظهر الناتج على الشاشة , لكن هنا لا نقول لها أطبعى الناتج على الشاشة ولكن نقول لها أحتفظى بة لحين أستخدام الدالة , فى رقم واحد فى الصورة هنا نحدد نوع البيانات التى ستحتفظ بها هل هى أرقام عشرية float أم عدد صحيح int أم حرف char وإذا لا تريد أن تجعل الدالة تسترجع شئ فأستخدم النوع void .
  2. هو أسم الدالة تقوم بتحديدة أنت لكى تقوم بأستدعائها بواسطة هذا الاسم .
  3. معاملات الدالة , هذة المعاملات تشبة الرقمين اللذى تعطيهم للالة الحاسبة لكى تجمعهم , وهنا كأننا نقول أحجز متغير من نوع رقم صحيح int بأسم m , ومتغير أخر من نوع رقم صحيح int بأسم g , وهما سوف يكونو الرقمين الذى سيتم جمعهم , ملحوظة طبعا الدالة تأخذ أى عدد من المعاملات ليس شرط أثنين فقط .
  4. هذ القوس فتح الدالة والذى يحدد حدود الدالة .
  5. هذة الكلمة return , كما قلنا فى الخطوة رقم 1 أن الدالة تسترجع قيمة , هذة الكلمة هى التى تعطى أمر للدالة أنها تسترجع القيمة m , أى تحتفظ بها بدون طباعة على الشاشة لحين ما نستخدم الدالة, أما إذا كنت لا تريد أن تسترجع الدالة شئ وأستخدمت void ولا تستخدم هذة الكلمة .
  6. هذا قوس غلق حدود الدالة , أى أن كل ما هو داخل قوس البداية والنهاية هو كود تابع للدالة فقط .

 

خلاصة الكود السابق هو:

إذا كان قيمة m أكبر من قيمة g

    أجعل الدالة تسترجع قيمة m

أما إذا كانت قيمة m أصغر من قيمة g

    أجعل الدالة تسترجع قيمة g

وإلا

   أجعل الدالة تسترجع قيمة g

 

 

نأتى لمرحلة أستخدام الدالة :

int main(){
	int num1,num2;
	cin>>num1;
	cin>>num2;
	int max1=max(num1,num2);
	cout << max1 << endl;
	return 0;
}
  • فى السطر الثانى قمنا بإنشاء متغيرين من نوع عدد صحيح, وذلك لكى نحفظ الرقمين الذي سوف يدخلهم المستخدم .
  • فى السطر الثالث والرابع نعطى أمر أستقبال الرقمين من المستخدم .
  • فى السطر الخامس وهو أهم سطر, قمنا بإنشاء متغير جديد من نوع عدد صحيح لكى نقوم بتخزين ما سترجعة الدالة, هل تتذكر فى الشرح السابق عندما قلت لك أن الدالة سوف تحتفظ بالقيمة التى طلبنا منها أن تحتفظ بها بأستخدام return لحين ما نطلب منها هذة القيمة, هذا هو ما يفعلة السطر الخامس نقول للدالة القيمة التى قلنا لكى أحتفظى بها , الان أسترجعيها وأحفظى هذة القيمة فى المتغير max1 .
  • فى السطر السادس نقوم بطباعة قيمة المتغير max1 والتى أخذها من الدالة max .

 

 

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

أنا لا يهمنى المجهود ولكن كل ما يهمنى أنك تكون أستفدت من الموضوع وفهمت اللى ما كنتش عارف تفهمة .

 

لا تنسانى بالدعوة .

تم تعديل هذه المشاركة بواسطة مستر برمجة في 18 يوليو 2013 في 05:32

2

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#3

الف الف الف الف الف الف شكررررررررررررررررررررر

 

احلى تقيييييم

تم تعديل هذه المشاركة بواسطة islamoooo في 18 يوليو 2013 في 11:41

−1

مواضيع مشابهة