12

7 functions

Embed Size (px)

Citation preview

Functions

الدوال هى مجموعة من األوامر والبيانات تحت اسم واحد حيث يمكن استدعائها من أماكن مختلفة فى

، ومن فوائدها التقليل فى شفرة البرنامج وحجم subroutineوهى بما تعرف بالروتين الثانوى . البرنامج

: والصورة التالية توضح االعالن عن دالة . البرنامج، مما يجعله اكثر تنظيما

فسيكون ! Hello, World إذا أردنا عمل دالة تقوم بطباعة الجملة .ويمكن أن تحتوى الدالة على وسائط

: برنامجنا كالتالى

2

عدم تكرار التعليمات داخل البرنامج حيث يتم إنشاء الدالة مرة واحدة ثم يتم استدعائها أكثر من 1.

مرة عند الحاجة اليها

باستخدام الدوال يصبح البرنامج أكثر وضوحا 2.

3

int functionدوال تعيد قيمة صحيحة 1.

float functionدوال تعيد قيمة حقيقة 2.

string functionدوال تعيد عبارة حرفية 3.

char functionدوال تعيد حرف واحد 4.

void functionدوال ال تعيد أى قيمة 5.

structureدوال تعيد قيمة من نوع6.

4

#include<stdio.h>

Void Func HelloWorld ( )

{

printf (“Hello, World!\n”);

}

Main ( )

{

Func HelloWorld ( );

}

ثم نقوم بإعطائها ) prototype يسمى بالنموذج ( هذه طريقة ، أما الطريقة الثانية فهى اإلعالن عن الدالة

: األوامر بعد الدالة الرئيسية وسيصبح المثال السابق كالتالى

5

#include<stdio.h>

Void Func_HelloWorld ( );

Main ( )

{

Func HelloWorld ( );

}

Void Func HelloWorld ( )

{

printf(“Hello, World!\n”);

}

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

: وأيضا بعض المترجمات ال تقبلها وهى

6

# include<stdio.h>

Main ( )

{

Func HelloWorld ( );

}

Void Func_HelloWorld ( )

{

printf(“Hello, World!\n”);

}

وذلك ،Func_HelloWorldالدالة prototypeوإن كان مترجمك قد نبهك عن وجود خطأ فسيكون عن الخطأ عن نموذج

الكلمة المحجوزة . فى األصل هذه الطريقة هى من طرق لغة السى، يعنى أنها طريقة صحيحة فقط بعض المترجمات ال تدعها

void بايت، وهى ال تقوم بأرجاع أى قيم, تستعمل مع الدوال حيث حجمها .

7

Function Type

بالنسبة لدوال . floatأوأعداد حقيقة intللدوال انواع وهى نفسها أنواع المتغير ، يمكن استعمال دالة من نوع أعداد صحيحة

من نوع أعداد صحيحة فهى لها قيمة تقوم بإرجاعها ، أى فى نهاية الدالة تقوم بإرجاع قيمة باستخدام الكلمة المحجوزة

return كما فى المثال التالى :

# include<stdio.h>

Int Int Func(const int num);

Main ( )

{

printf(“%d\n”, Int_Func (5));

}

int Int Func (const int num)

{

return num;

}

8

يمكننا كتابة دوال التى تقوم بإرجاع قيم printf، وفى السطر السابع ، فى الدالة Int _ Funcإلى الدالة int numهنا قمنا بإرجاع قيمة الوسيط

يمكن كتابة الدالة بدون نوع . النها بدون حجم وال يمكنها حمل قيم voidكما فى هذا المثال، وال يمكن استعمال هذه الطريقة مع الكلمة المحجوزة

والمثال السابق سيصبح على intبالنسبة للمثال السابق، ألن دالتنا من نوع أعداد صحيحة، وفى لغة السى الوضع االفتراضى لدوال بدون نوع هو

: الشكل التالى

# include<stdio.h>

Int Func(const int num);

Main ( )

{

printf(“%d\n”, Int_Func (5));

}

Int Func(const int num)

{

return num;

}

9

Function Name

: السم الدالة حدود وهى مثل اسم المتغير

حرف 31أن ال يتجاوز اسم الدالة

أن ال يبدأ اسم الدالة بأرقام

أن ال يكون اسم الدالة يحتوى على مؤثرات مثل الجمع والطرح و ....

باستثناء الرمز ... ( و }و# و % أن ال يكون اسم الدالة يحتوى على رموز مثل _ (

أن ال يكون اسم الدالة مستعمل سابقا فى متغير أو دالة أخرى

أن ال يكون اسم الدالة من أحد أسماء الكلمات المحجوزة

10

Function

Parameters

, long , int , floatالوسائط هى متغيرات تقوم بوضعها على حسب متطلباتنا حيث تكون من االنواع

double , char , char* , char [ ] , unsigned , signed , short . ويمكن أيضا أن تكون

الوسائط عبارة عن مصفوفات أو مؤشرات من كل األنواع

11

Procedureفى لغة السى اإلجراءات يمكن القول عليها هى نفسها الدوال ألنها مدمج معها ، واإلجراء

تسمى إجراء ألنها ال ترجع قيم مثل voidهو دالة ال تقوم بإرجاع قيمة ويمكن القول أن دوال من نوع

أو غيرها، حيث تقوم اإلجراءات بتنفيذ أوامر أما الدوال فهى تقوم floatأو intالدوال من نوع

بعمليات وتعطى نتيجة

12