من ويكي الجامعة, مركز التعليم الحر
كتلة من النصوص البرمجية، تستدعى باسمها.
لن نحتاج لكتابة الأوامر البرمجية سوى مرة واحدة.
مجموعة من المدخلات (قد تكون بلا مدخلات)، بخرج وحيد أو بدون.
من الممكن أن تكون بلا خرج عندها يكون النوع (type void)
main هو دالة! المدخلات: لا يوجد،
الخرج: int (return0 !)
قبل الدالة الرئيسة main!
بعد الدالة الرئيسة main، لكن يجب التصريح عنها قبل الدالة الرئيسة.
الطريقة الأولى
الطريقة الثانية
void fon1 (){
-----
-----
}
int main (){
-----
fon1 ();
-----
return 0 ;
}
void fon2 ();
int main (){
-----
fon2 ();
-----
return 0 ;
}
void fon2 (){
-----
-----
}
مثال 1
التصريح والتعريف قبل الدالة الرئيسة main (الدالة 1)
التصريح قبل الدالة الرئيسة main والتعريف بعدها.(الدالة 2)
#include <stdio.h>
void fon1 (){
printf ( "Avant main \n " );
}
void fon2 ();
int main (){
fon1 ();
fon2 ();
return 0 ;
}
void fon2 (){
printf ( "Apres main \n " );
}
مثال 2
دالَّتان: واحدة للعثور على الحد الأعلى والثانية للعثور على الحد الأدنى بين رقمين تم إدخالهما.
الدالة main
الدالتان min & max
int main (){
int maxi , mini , x , y ;
printf ( "Enter two different numbers: \n " );
scanf ( "%d %d" , & x , & y );
maxi = max ( x , y );
mini = min ( x , y );
printf ( " the maximum is: %d, the minimum is : %d" , maxi , mini );
return 0 ;
}
int max ( int x1 , int x2 ){
if ( x1 > x2 )
{ return x1 ;}
else
{ return x2 ;}
}
int min ( int x1 , int x2 ){
if ( x1 < x2 )
{ return x1 ;}
else
{ return x2 ;}
}
حالة خاصة: إعادة الدالّة استدعاء ذاتها.
يلزم أن تكون هناك قيمة ثابتة تُرجع في نهاية السلسلة.
احذر من استهلاك الذاكرة.
مثال
دالة لحساب ناتج ضرب عدد تكراريًا.
الدالة main
الدالة factorial
int main (){
int result1 , N ;
printf ( "Enter a number \n " );
scanf ( "%d" , & N );
result1 = factorial ( N );
printf ( "%d!= %d" , N , result1 );
return 0 ;
}
int factorial ( int a ){
if ( a == 1 )
{ return 1 ;}
else
{ return a * factorial ( a -1 );}
}