البرمجة بلغة السى – الجزء الثالث – 3- أنواع الدوال المعرفة بمعرفة المستخدم
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
البرمجة بلغة السى – الجزء الثالث – 3- أنواع الدوال المعرفة بمعرفة المستخدم
البرمجة بلغة السى – الجزء الثالث – 3- أنواع الدوال المعرفة بمعرفة المستخدم
لفهم الأدلة وعائد الدالة بشكل أفضل ، يمكن تصنيف الدوال المعرفة بمعرفة المستخدم كما يلى :
1- دالة بدون أدلة وبدون قيمة عائد .
2- دالة بدون أدلة وبفيمة عائد .
3- دالة بأدلة ولكن بدون قيمة عائد
4- دالة بأدلة وبقيمة عائد .
دعنا نأخذ مثال لإيجاد ما إذا كان اارقم أساسى أو لا باستخدام الأربعة تصنيفات للدوال المعرفة بمعرفة المستخدم :
دالة بدون أدلة وبدون قيمة عائد :
الدالة prime() تستخدم لسؤال المستخدم عن الدخل ، واختبار ما إذا كان هذا الدخل أساسى أو لا وعرضه وفقا لذلك . لا يوجد أدلة لتمريرها ولا يوجد عائد من الدالة prime() .
الدالة بدون أدلة ولكن بقيمة عائد :
لا يوجد أدلة لتمريرها للدالة input() ولكن قيمة n يتم إعادتها (إرجاعها) من الدالة input() للدالة الرئيسية main() .
الدالة بأدلة وبقيمة عائد :
هنا الدالة "اختبار العرض" check_display() تستخدم لاختبار ما إذا كان n أساسى أو لا وعرضه وفقا لذلك . هنا يتم تمرير الدليل إلى الدالة المعرفة بمعرفة المستخدم ولكن لا يتم إعادة (إرجاع) قيمة من هذه الدالة إلى الدالة التى استدعتها .
الدالة بأدلة وبقيمة عائد :
هنا ، الدالة check() تستخدم لاختبار ما إذا كان العدد أساسى أو لا . فى هذا البرنامج ، الدخل من المستخدم يمرر إلى الدالة check() ويتم إعادة (إرجاع) قيمة عدد صحيح منها . إذا كان العدد المدخل أساسى يتم إرجاع صفر (0) وإذا لم يكن العدد أساسى يتم إرجاع واحد (1) .
لفهم الأدلة وعائد الدالة بشكل أفضل ، يمكن تصنيف الدوال المعرفة بمعرفة المستخدم كما يلى :
1- دالة بدون أدلة وبدون قيمة عائد .
2- دالة بدون أدلة وبفيمة عائد .
3- دالة بأدلة ولكن بدون قيمة عائد
4- دالة بأدلة وبقيمة عائد .
دعنا نأخذ مثال لإيجاد ما إذا كان اارقم أساسى أو لا باستخدام الأربعة تصنيفات للدوال المعرفة بمعرفة المستخدم :
دالة بدون أدلة وبدون قيمة عائد :
- الكود:
/*C program to check whether a number entered by user is prime or not using function with no arguments and no return value*/
#include <stdio.h>
void prime();
int main(){
prime(); //No argument is passed to prime().
return 0;
}
void prime(){
/* There is no return value to calling function main(). Hence, return type of prime() is void */
int num,i,flag=0;
printf("Enter positive integer enter to check:\n");
scanf("%d",&num);
for(i=2;i<=num/2;++i){
if(num%i==0){
flag=1;
}
}
if (flag==1)
printf("%d is not prime",num);
else
printf("%d is prime",num);
}
الدالة prime() تستخدم لسؤال المستخدم عن الدخل ، واختبار ما إذا كان هذا الدخل أساسى أو لا وعرضه وفقا لذلك . لا يوجد أدلة لتمريرها ولا يوجد عائد من الدالة prime() .
الدالة بدون أدلة ولكن بقيمة عائد :
- الكود:
/*C program to check whether a number entered by user is prime or not using function with no arguments but having return value */
#include <stdio.h>
int input();
int main(){
int num,i,flag;
num=input(); /* No argument is passed to input() */
for(i=2,flag=i;i<=num/2;++i,flag=i){
if(num%i==0){
printf("%d is not prime",num);
++flag;
break;
}
}
if(flag==i)
printf("%d is prime",num);
return 0;
}
int input(){ /* Integer value is returned from input() to calling function */
int n;
printf("Enter positive enter to check:\n");
scanf("%d",&n);
return n;
}
لا يوجد أدلة لتمريرها للدالة input() ولكن قيمة n يتم إعادتها (إرجاعها) من الدالة input() للدالة الرئيسية main() .
الدالة بأدلة وبقيمة عائد :
- الكود:
/*Program to check whether a number entered by user is prime or not using function with arguments and no return value */
#include <stdio.h>
void check_display(int n);
int main(){
int num;
printf("Enter positive enter to check:\n");
scanf("%d",&num);
check_display(num); /* Argument num is passed to function. */
return 0;
}
void check_display(int n){
/* There is no return value to calling function. Hence, return type of function is void. */
int i,flag;
for(i=2,flag=i;i<=n/2;++i,flag=i){
if(n%i==0){
printf("%d is not prime",n);
++flag;
break;
}
}
if(flag==i)
printf("%d is prime",n);
}
هنا الدالة "اختبار العرض" check_display() تستخدم لاختبار ما إذا كان n أساسى أو لا وعرضه وفقا لذلك . هنا يتم تمرير الدليل إلى الدالة المعرفة بمعرفة المستخدم ولكن لا يتم إعادة (إرجاع) قيمة من هذه الدالة إلى الدالة التى استدعتها .
الدالة بأدلة وبقيمة عائد :
- الكود:
/* Program to check whether a number entered by user is prime or not using function with argument and return value */
#include <stdio.h>
int check(int n);
int main(){
int num,num_check=0;
printf("Enter positive enter to check:\n");
scanf("%d",&num);
num_check=check(num); /* Argument num is passed to check() function. */
if(num_check==1)
printf("%d in not prime",num);
else
printf("%d is prime",num);
return 0;
}
int check(int n){
/* Integer value is returned from function check() */
int i;
for(i=2;i<=n/2;++i){
if(n%i==0)
return 1;
}
return 0;
}
هنا ، الدالة check() تستخدم لاختبار ما إذا كان العدد أساسى أو لا . فى هذا البرنامج ، الدخل من المستخدم يمرر إلى الدالة check() ويتم إعادة (إرجاع) قيمة عدد صحيح منها . إذا كان العدد المدخل أساسى يتم إرجاع صفر (0) وإذا لم يكن العدد أساسى يتم إرجاع واحد (1) .
مواضيع مماثلة
» البرمجة بلغة السى – الجزء الثالث – 2- الدوال المعرفة بمعرفة المستخدم User-defined functions
» البرمجة بلغة السى – الجزء الثالث – 1- مقدمة الدوال Functions
» البرمجة بلغة السى – الجزء الثالث – 4- استدعاء الدالة لنفسها :
» البرمجة بلغة السى - أمثلة الجزء الأول - البرنامج الثانى : طباعة عدد صحيح يتم إدخاله بواسطة المستخدم.
» البرمجة بلغة السى - أمثلة الجزء الأول - البرنامج الثالث : جمع عددان صحيحان .
» البرمجة بلغة السى – الجزء الثالث – 1- مقدمة الدوال Functions
» البرمجة بلغة السى – الجزء الثالث – 4- استدعاء الدالة لنفسها :
» البرمجة بلغة السى - أمثلة الجزء الأول - البرنامج الثانى : طباعة عدد صحيح يتم إدخاله بواسطة المستخدم.
» البرمجة بلغة السى - أمثلة الجزء الأول - البرنامج الثالث : جمع عددان صحيحان .
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الفئة الأولى :: منتدى البرمجة بلغة السى C Programming
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى