السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
اللهم لاسهل الاماجعته سهلآ وانت تجعل الحزن اذا شئت سهلآ
سنبدا الشرح
1. Function
وهي عبارة عن دالة يتم استدعائها لتؤدي عمل شي معين .
أنواعها وهي أربع أنوع :
• لا تأخذ متغيرات من الدالة الرئيسية ولا ترجع بقيمة .(يتم أخذ المتغيرات من المستخدم أو تكون ثابتة في الدالة و المعالجة عليها و طباعتها).
مثل:
البرنامج يطلب من المستخدم إدخال الـ(a,b) و يحسب له الـ(Circumference,Area).
كود:
#include<stdio.h>
#include<conio.h>
void Circumference ()
{double a, b,Circumference,Area;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
Circumference=(a + b) * 2;
Area=a*b;
printf("Circumference = %lf \n", Circumference);
printf("Area= %lf \n",Area);
}
void main()
{Circumference ();
getch();
}
• لا تأخذ متغيرات من الدالة الرئيسية وترجع قيمة .( يتم أخذ المتغيرات من المستخدم أو تكون ثابتة في الدالة و المعالجة عليها و إرجاع القيمة للدالة الرئيسية).
مثل:
البرنامج يطلب من المستخدم إدخال الـ(a,b) و يحسب له الـ(Sum).
كود:
#include<stdio.h>
#include<conio.h>
double sum ()
{double a, b,sum;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
sum=(a + b);
return(sum);
}
void main()
{
printf("Sum = %lf \n", sum());
getch();
}
• تأخذ قيمة من الدالة الرئيسية ولا ترجع بقيمة .( يتم أخذ المتغيرات من الدالة الرئيسية و المعالجة عليها و الطباعة في نفس الدالة ).
مثل:
البرنامج يطلب من المستخدم إدخال الـ(a,b) و يحسب له الـ(Sum).
كود:
#include<stdio.h>
#include<conio.h>
void sum (double a,double b)
{double sum;
sum=(a + b);
printf("Sum = %lf \n", sum);
}
void main()
{double a,b;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
sum(a,b);
getch();
}
• تأخذ قيمة من الدالة الرئيسية و ترجع بقيمة .( يتم أخذ المتغيرات من الدالة الرئيسية و
المعالجة عليها و إرجاع القيمة للدالة الرئيسية ).
مثل:
البرنامج يطلب من المستخدم إدخال الـ(a,b) و يحسب له الـ(Circumference,Area).
كود:
#include<stdio.h>
#include<conio.h>
double Circumference (double a, double b)
{
return (a + b) * 2;
}
double Area (double a, double b)
{
return a * b;
}
void main()
{
double a, b;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
printf("Circumference = %lf \n", Circumference(a,b));
printf("Area= %lf \n", Area(a,b));
getch();
}
وترجع الـ(function) للـ(Main) القيم بال(double or int or char)
وقد لاترجع قيم وتكون (void).
كتابة الـ(function) :
تكتب بطريقتين :
• تكون في بداية الكود (قبل الـ(main) ).
مثل:
كود:
#include<stdio.h>
#include<conio.h>)
double Circumference (double a, double b)
{
return (a + b) * 2;
}
double Area (double a, double b)
{
return a * b;
}
void main()
{
double a, b;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
printf("Circumference = %lf \n", Circumference(a,b));
printf("Area= %lf \n", Area(a,b));
getch();
}
• تكون في نهاية الكود (بعد الـ(main)).
بشرط يكون الدالة معرفة في بداية الكود .
مثل:
كود:
#include<stdio.h>
#include<conio.h>
double Circumference (double a, double b);
double Area (double a, double b);
void main()
{
double a, b;
printf("Enter A : ");
scanf("%lf",&a);
printf("Enter B : ");
scanf("%lf",&b);
printf("Circumference = %lf \n", Circumference(a,b));
printf("Area= %lf \n", Area(a,b));
getch();
}
double Circumference (double a, double b)
{
return (a + b) * 2;
}
double Area (double a, double b)
{
return a * b;
}
2. if statement and switch
أولا: if وهي دالة تأخذ شرط ويكون له حالتين أما صحيح و إما خطا .
إذا كان الشرط صحيح تنفذ الجمل التي داخل الشرط .
أما إذا كان الشرط خاطئ تنتقل للجمل التي بعد الشرط.
• if طريقة كتابتها :
إذا كانت لتنفيذ جملة واحدة :
كود:
if (condtion)
Sentence
else if (condtion)
Sentence
else
Sentence
إذا كانت لأكثر من جملة فلابد من وجود الاقواس {}.
كود:
if (condtion)
{Sentence1;
Sentence2;
Sentence3;
Sentence4;
}
else if (condtion)
{Sentence1;
Sentence2;
Sentence3;
Sentence4;
}
else
{Sentence1;
Sentence2;
Sentence3;
Sentence4;
}
أمثلة :
هذا البرنامج يطلب من المستخدم أربع أعداد و يطبع العدد الأكبر و الاصغر.
كود:
# include <stdio.h>
int main(){
double a,b,c,d,max,min ;
printf("enter 4 number" ) ;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
if ( a<b&&a<c&&a<d )
max=a;
else if ( b<c&&b<d )
max=b;
else if ( c<d )
max=c;
else
max=d;
printf("max is %f\n",max) ;
if ( a>b&&a>c&&a>d )
min=a;
else if ( b>c&&b>d )
min=b;
else if ( c>d )
min=c;
else
min=d;
printf("min is %f\n",min) ;
return(0);
}
وهذا نفس البرنامج بس بالـ(function).
كود:
# include <stdio.h>
double min (double a,double b,double c,double d ){
double m ;
if ( a<b&&a<c&&a<d )
{m=a;}
else if ( b<c&&b<d )
{m=b;}
else if ( c<d )
{
m=c;}else
{m=d;}
return( m );}
double max (double a,double b,double c,double d ){
double m ;
if ( a>b&&a>c&&a>d )
{m=a;}
else if ( b>c&&b>d )
{m=b;}
else if ( c>d )
{
m=c;}else
{m=d;}
return( m );}
main(){
double a,b,c,d ;
printf("enter 4 number" ) ;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
printf("min is %f\n",min(a,b,c,d)) ;
printf("max is %f\n",max(a,b,c,d)) ;
}
ثانيا : switch
وهي دالة تأخذ متغير واحد وتقارنه بالقيم المحددة . لذالك كل دالة switch نستطيع أن نحولها
لدالة if ولأ كن لا نستطيع تحويل كل دالة if إلي switch .
أمثلة :
كود:
# include <stdio.h>
int main(){
int grade ;
printf("Enter the grade for the course>>");
scanf("%d",&grade);
grade = grade / 10;
switch (grade)
{
case 10:
printf("GPA =A\n");break;
case 9:
printf("GPA =A\n");break;
case 7:
printf("GPA =C\n");break;
case 8:
printf("GPA =B\n");break;
case 6:
printf("GPA =D\n");break;
default :
printf("GPA =F\n");break;
}
return(0);
}
3. loops
تكون ثلاث أنواع :
• (for) يعمل تكرار بعدد محدد من المرات .
أمثلة :
هذا برنامج يطبع الأعداد من 1 إلى 10:
كود:
# include <stdio.h>
int main(){
int i;
for ( i=1;i<=10;i++ )
{
printf("%d",i);
}}
هذا برنامج يطبع الاعداد من 1 إلى 30 ما عاد الأعداد التي تقبل القسمة على 5:
كود:
# include <stdio.h>
int main(){
int i;
for ( i=1;i<=30;i++ )
{if(i%5==0){}
else{
printf("%d\n",i);}
}}
هذا برنامج يحسب المضروب:
كود:
# include <stdio.h>
int main(){
int i,s;
int x=1;
printf("Enter number >\n");
scanf("%d",&s);
for ( i=1;i<=s;i++){
x=x*i;
}
printf(">>%d<<\n",x);
}
• (while) يعمل تكرار بتحقق الشرط.
مثل :
هذا البرنامج يحسب مجموع خمسة أعداد :
كود:
#include <stdio.h>
int main(void)
{
int x ,i=1, sum=0 ;
while(i<=5)
{printf("Enter Number %d please>\n",i);
scanf("%d",&x);
sum=sum+x;
i++;
}
printf("the Sum of 5 digits = %d\n", sum );
return (0);
}
• (do while) يعمل تكرار مرة واحدة على الأقل ومن ثم تتكرر في حالت تحقق الشرط.
أمثلة :
هذا برنامج الآلة الحاسبة :
كود:
#include <stdio.h>
int main(void)
{
double x,y,z;
int a=0,b=0,c;
char d;
do
{
printf("Enter first number");
scanf("%lf",&x);
printf("Enter second number");
scanf("%lf",&y);
printf("Enter the operation +,-,*,/\n");
scanf(" %c",&d);
switch(d)
{
case '+':z=x+y;
printf("%f+%f=%f",x,y,z);
break;
case '-':z=x-y;
printf("%f-%f=%f",x,y,z);
break;
case '*':z=x*y;
printf("%f*%f=%f",x,y,z);
break;
case '/':
if(y==0){
printf("cann't calculate");}
else
{z=x/y;
printf("%f/%f=%f",x,y,z);}
break;
case '%':
a=x;
b=y;
z= a%b;
printf("%d mod(%d)= %f",a,b,z);
break;
default:printf("cann't calculate");
break;
}
printf("\nto calculate press 1\n");
scanf("%d",&c);
}while(c==1);
return(0);
}
أتمنى يكون مفهوم
وبالتوفيق للجميع