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

درس بسيط عن ال Functions بالسي!

مغلق
بدأه SoNaTa في 4 سبتمبر 2005 · 5 رد · 2,741 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كما قررت قبل فتره ان اقوم بحمله من مواضيع السي (وليس السي بلس بلس) نظرا لان الاعضاء طفشت من لغه السي لقله المراجع عن هذه اللغه <_< <_< .

خلونا بالمهم... ساحاول قدر المستطاع ان اختصر الموضوع واقول المهم .

ال Functions او كما تسمى بالعربي (دوال) , فائدتها الاساسيه هي توفير الجهد وتقسيم البرنامج بحيث يسهل على المبرمج تطويره.

عادة تكتب الداله بهذه الصيغه:

data type + function name (parameter1, parameter2, etc)
{
...
some code here
....
return (value)
}

حتى اوضح اكثر , سأقوم بكتابه مثال عملي والمثال سيكون بسيط جدا وهو عباره عن داله تقوم بحساب متغيرين ثم تعطيك الناتج.

int func ( int x, int y)
{

int sum;

sum = x + y;

return (sum);
}

في البدايه قمنا بتعريف نوع الداله وهي int , ثم قمنا بكتابه اسم للداله وانا اخترت الاسم func, ثم كتبت الباراميترز التي سأستخدمها بالاضافه الى التعريف بنوعهم وكتبتها كما شاهدت هكذا ( int x, int y) ثم قمت بكتابه قوس البدايه لاكتب كود الداله . ثم قمت بتعريف المتغير sum لاضع فيه ناتج جمع x و y. ثم كتبت sum = x + y; لان هذا ما اريد ان تقوم به الداله. ثم في السطر القبل الاخير قمت بأعاده ناتج sum (كل داله يجب ان تعود بقيمه معينه). ثم انهيت عمل الداله بكتابه }

الان قد تتسائل , ما الفائده من هذا كله ؟؟؟؟ الفائده هي كالتالي :

#include <stdio.h>
int func ( int x, int y)
{

int sum;

sum = x + y;

return (sum);
}

int main()
{
	printf("number 5 + number 6 = %d", func(5, 6));
	return 0;
}

قمنا بكتابه الداله مره واحده ثم قمنا بأستدعائها ونستطيع ان نستدعي الداله التي قمنا بكتابتها في اي مكان بالبرنامج. سأقوم بشرح بعض النقاط التي قد تبدو غامضه للمبتدئين.

1. نقوم بكتابه الدوال قبل الداله الرئيسيه وهي main()

2.عندما نريد استعمال داله نقوم فقط بكتابه اسمها في داخل البرنامج وهي ستقوم بالباقي كما في البرنامج السابق.

===========

توجد functions لا تحتاج لأعاده اي قيمه , هذا مثال بسيط عنها :

void simple (void)
{
printf("hello, this is a simple function");
}

دائما نقوم بتعريف الدوال التي لا تعيد قيمه ب كلمه void اي ان الداله لا تعيد اي قيمه.

والان هذا برنامج يشمل درس اليوم.

#include <stdio.h>
float perimeter (float x, float y)
{
	float sum;
	sum = (x + y) * 2;
	return (sum);
}

void success (void)
{
printf("it was a simple exampel :)");
}

 int main()
{
	printf("the perimeter of a rectangle is:%f\n", perimeter (4.3, 2.4));

	success();
  return (0);
}

هناك function تسمى بال recursion functions لكني لن اتطرق الى شرحها , لانها لا تستعمل بكثره وتسبب ارباك للمبتدئين بالاضافه الى انه لا ينصح بأستعمالها بكثره لان تؤثر سلبيا على عمل البرنامج.

في حال وجود خطأ ارجوا تصحيحه :)

والسلام عليكم

#2

تاابع :unsure:

تم تعديل هذه المشاركة بواسطة MsH3AL في 4 سبتمبر 2005 في 20:57

#3

نسيت ان اوضح شي اخر ,,,, في بعض الاحيان ترى انه يتم تعريف الداله ثم استخدامها ثم كتابه اجزائها. حتى اوضح اكثر شوف البرنامج البسيط اللي كتبناه بالاخير كيف رح يصير

#include <stdio.h>
float perimeter (float x, float y);

void success (void)
{
printf("it was a simple exampel :)");
}

int main()
{
printf("the perimeter of a rectangle is:%f\n", perimeter (4.3, 2.4));

success();
 return (0);
}

float perimeter (float x, float y)
{
float sum;
sum = (x + y) * 2;
return (sum);
}

لاحظ اننا قمنا بكتابه اسم الداله فقط بالبدايه float perimeter (float x, float y);

وبعد نهايه البرنامج الرئيسي قمنا بكتابه عمل اللداله, لاحظ الاختلاف بين طريقه كتابه البرنامجين, ولاحظ اننا اضفنا ( ; ) بعد اسم الداله float perimeter (float x, float y).

الطريقه الثانيه انا لا احبذها ابدا لكني ذكرتها لان فيه كثير مبرمجين يكتبوها بهالطريقه.

تم تعديل هذه المشاركة بواسطة SoNaTa في 4 سبتمبر 2005 في 20:52

#4

وعليكم السلام

تسلم ياااا SoNaTa على المقدمه وبارك الله فيك وكثررررررر الله من عشاااق السي :rolleyes:

ولي رجعه للقراءه ومناقشه اذ وجدت

بارك الله فيك

#5

هلا مشعل ,,,, ان شاء الله يكون الدرس واضح وما رح تحتاج تسأل عن اي شي :)

#6

أشجع الدروس التي بتلك النوعية

أن تختار موضوعا ثم تتكلم عنه

هكذا أفضل :)

بارك الله فيك.

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

هذا الموضوع مغلق.

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