SoNaTa

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

6 ردود في هذا الموضوع

السلام عليكم

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

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

ال 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 لكني لن اتطرق الى شرحها , لانها لا تستعمل بكثره وتسبب ارباك للمبتدئين بالاضافه الى انه لا ينصح بأستعمالها بكثره لان تؤثر سلبيا على عمل البرنامج.

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تاابع :unsure:

تم تعديل بواسطه MsH3AL
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

#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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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

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

بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

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

هكذا أفضل :)

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .