منتديات وهران
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتديات وهران

°°شعبي لايقهر و ضيفي لايحقر°°
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 دروس تعليمية في البرمجة بلغة الـ c

اذهب الى الأسفل 
كاتب الموضوعرسالة
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 4:58 am

الســـــلام عليـــــكم ورحمـــــة الله وبـــــركـــــاتـــــه


أولا وقبل البدء في تعلم البرمجة , علينا أن نوضح بعض الأشياء , مثل خصائص البرنامج الجيد :

1) البساطة والوضوح .
2 ) الدقة ( صحة الخطوات ) .
3 ) التوفيق .

والآن وبعد تعريف البرنامج الجيد نقوم بتعريف أنواع البيانات , والتي تنقسم إلى بيانات بسيطة , وبيانات مركبة .

البيانات البسيطة : مثل الأعداد , والرموز ( الحروف ) والبيانات المنطقية , وغير ذلك من البيانات البسيطة المشابهة .

البيانات المركبة : مثل المصفوفات , السلاسل الرمزية , وغير ذلك من البيانات المركبة المشابهة .

نقوم الآن بشرح وصف البيانات العددية , وهيا كالتالي :

المتغيرات Variables :

1 ) متغيرات صحيحة Integer variables :

ويتم تعريفها في البرنامج كالتالي <===<< ; int x,y,z

حيث ترمز كلمة int للمتغير الصحيح , وباقي الرموز هيا تعريف المتغير في البرنامج الرئيسي .

مثل :

;x=3
;y=-4
;z=0

2 ) متغيرات حقيقية Float variables :

ويتم تعريفها في البرنامج كالتالي <===<< ; float a,b,c

حيث ترمز كلمة float للمتغير الحقيقي , وباقي الرموز هيا تعريف المتغير في البرنامج الرئيسي .

مثل :

; a=5.5
; b=1.3
; c=-1.1

ملاحظة : هذا الرمز ; نقوم بوضعه كنهاية عند أي جملة رياضية أو منطقية أو علاقة مكتملة , كما سبق ولاحظنا في السابق , حتى يتعرف معالج البرنامج على نهاية هذه الجملة .

والآن نستعرض بعض الرموز التي تستخدم في تعريف المتغيرات :

c% ===== للحرف
s% ===== للسلسة الرمزية
f% ===== للعدد الحقيقي
d% =====للعدد الصحيح
x% =====للعدد الصحيح بالنظام السادس عشر
o% =====للعدد الصحيح بالنظام الثماني
n\ ===== القفز إلى سطر جديد
r\ ===== البدء من أول السطر
t\ =====التقدم سبع ( 7 ) مسافات

وسأتقدم بشرح طريقة استعمال كل رمز لاحقاً إن شاء الله .


والآن , نقوم بتعريف بعض الدوال والأكواد المستعملة في هذه اللغة , ونبدأ بدالة القراءة scanf .

الشكل العام للدالة في البرنامج :
;(Scanf(“Format”,&Varibale

Format : تعني تعريف نوع المتغير ( أحد الرموز السابق ذكرها , مثل f% ,أو d% أو غير ذلك من الرموز السابقة ) .

Variable : رمز المتغير الذي تم تعريفه ( وهو الرمز الذي تم تعريف المتغير به في بداية البرنامج ) .

وستتضح الرؤية بإذن الله عند شرح أول برنامج بسيط للتوضيح .

دالة الطباعة أو دالة الإخراج printf .

الشكل العام للدالة في البرنامج :

هناك شكلان لهذه الدالة , الأول شكل يقوم بطباعة جملة معينة فقط أو تعليق معين مثل :

;("printf("Comments

حيث Comments : أي جملة أو تعليق يرغب المبرمج في إضافته .

والشكل الآخر لدالة printf لا يختلف كثيراً عن الشكل الأول , إلا أنه مصحوب بقيم للمتغيرات أو نتائج معينة , مثل :

;(Printf(“Comments and Formats”,variable

حيث Comments : جملة أو تعليق مناسب لرسالة الطباعة .

Formats : نوع المتغير المطلوب طباعته .

Variable: رمز المتغير حسب تعريفه في البرنامج .


والآن نقوم بكتابة برنامج يقوم باستقبال قيمة عددية x,y مع إيجاد مجموعهما .


The Program :
كود:

#include <stdio.h> #include <conio.h> void main() { int x,y,sum=0; clrscr(); printf(“Enter Value Of X = “); scanf(“%d”,&x); printf(“Enter Value Of Y = “); ScanF(“%d”,&y); Sum=x+y; Printf(“ Sum = X + y = %d + %d = %d ”,x,y,sum) ; getch(); }
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 4:59 am

في المثال السابق قمنا بتعريف مكتبين هما :

مكتبة : <stdio.h> وهذه المكتبة مهمة حتى تقوم كل من دالتي scanf , و printf بالعمل .

وكتبة : <conio.h> وهذه المكتبة مهمة حتى تقوم كل من دالتي clrscr , و getch بالعمل , والأولى تقول بتنظيف الشاشة , والتانية تقوم بإيقاف الشاشة عند نهاية البرنامج حتى يتمكن المبرمج من رؤية نتائج برامجه .

طبعا كل مكتبة تحتوي على عدد من الدوال , ولا تعمل هذه الدوال من دون مكتابتها الخاصة , ويمكن للمبرمج معرف هذه المكتبات والدوال من المساعدة الخاصة بالبرنامج ( Help ) .

بعد تعريف المكتبتين قمنا بتعريف المتغيرات , وهيا :

x : المتغير الأول .
y : المتغير الثاني .
sum : حاصل جمع المتغيرين , وقمنا بتصفيره حتى لا يتم الأخذ بأي قيمة أخرى له قد تكون عالقة في ذاكرة الجهاز .

بعد تعريف المتغيرين قمنا بطباعة جملة توضيحية وظيفتها طباعة جملة على الشاشة توضح للمبرمج ضرورة إدخال قيمة للمتغير X , وهيا توضيحية .

وبعد ذلك قمنا بكتابة دالة scanf وظيفتها استقبال قيمة X وتخزينها في ذاكرة الجهاز .

ونفس الشيء بالنسبة للمتغير Y .

وبعد ذلك قمنا بإيجاد حاصل جمع كل من x,y , وتخصيص قيمة الجمع للمتغير sum في جملة رياضية منطقية .

وبعد ذالك قمنا بكتابة جملة طباعة printf , وظيفتها طباعة رسالة معينة عن جمع العددين , وحاصل هذا الجمع .

وبعد ذلك قمنا بكتابة جملة getch ووظيفتها كما سبق وذكرها إيقاف الشاشة حتى يتمكن المبرمج من رؤية نتائج برنامجه .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:00 am

وفي الدرس الثاني نقوم بعرض برنامج جديد لإيضاح ما سبق دراسته في الدرس الأول من دوال ومكتبات .

كما نقوم بدراسة الجمل والتعبيرات التي سنتعامل مع بعضها في البرمجة بلغة الـ C .

أولا برنامج للمراجعة , يقوم هذا البرنامج البسيط بقراءة أربع قيم حقيقية , مع إيجاد متوسطها .

The Program :

#include <stdio.h>
#include <conio.h>
main()
{
float n1,n2,n3,n4,avg,sum=0;
printf(“ Enter four numbers : “);
scanf(“%f%f%f%f”,&n1, &n2, &n3, &n4) ;
sum=n1+n2+n3+n4 ;
avg=sum/4 ;
printf(\n Sum = %.3f \n Avg = %.2f”,sum,avg);
getch();
return 0;
}


حيث يقوم البرنامج بقراءة أربع قيم حسب الترتيب وهيا n1 , n2 , n3 , n4 , وبعد ذلك يقوم بجمع هذه القيم وتخصيصها للمتغير sum , وبعد ذلك يقوم بايجاد متوسط هذه القيم وتخصيص هذه القيمة للمتغير avg , ثم يقوم بطباعة ناتج البرنامج , وذلك بطباعة قيمتي كل من المجموع والمتوسط .

نلاحظ في البرنامج أننا استعملنا طريقة جديدة في الناتج , وهيا :
كود:

printf(\n Sum = %.3f \n Avg = %.2f”,sum,avg);



نلاحظ وجود الرقم .3 , ومعنى هذا الرقم هوا طبع النتيجة بوجود ثلاث أرقام فقط بعد الفاصلة , لأن النتيجة ستكون عدد حقيقي .

ونلاحظ أيضاً وجود الرقم 2. , وله نفس المعنى السابق .

ومن هنا نلاحظ أنه يمكننا التحكم في عدد الأرقام بعد الفاصلة في نتائج الأعداد الحقيقة , وذلك كما في المثال السابق .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:01 am

الجمل والمؤثرات والتعبيرات في لغة الـ C :

1 ) التعبيرات Expressions :

2.5 >>>===> ثابت >>>===> Constent
X >>>===> متغير >>>===> Variable
x+y >>>===> تعبير حسابي >>>===> Arithmetic Expression
grade>=50 >>>===> تعبير منطقي >>>===> Logical Expression

2 ) الجمل Statements :

جملة التخصيص :


Variable = Expression ;


وستتضح أكثر في الأمثلة التالية .

3 ) المؤثرات Operator :

أ ) المؤثرات الحسابية Arithmetic Operators :

+ جمع
- طرح
* ضرب
/ قسمة
باقي القسمة

ب) المؤثرات العلائقية ( ذات العلاقات ) :

== يساوي
=! لا يساوي
> أقل من
=> أقل من أو يساوي
< أكير من
=< أكير من أو يساوي

جـ ) المؤثرات المنطقية Logical operators :

&& and
|| or
! not

***********


عذراً لذكري لما سبق دون إيضاح , ولكن سأعمل على الإيضاح في الأمثلة القادمة إن شاء الله .

مثال توضيحي :

اكتب برنامج لقراءة أطوال أضلاع مستطيل n,m مع حساب :
1 ) محيط المستطيل V .
2 ) مساحة المستطيل A .


The Program :


كود:

#include <stdio.h> #include <conio.h> void main() clrscr(); int n,m,v,a ; printf(“Enter the value of N = “); scanf(“%d”,&n); printf(“Enter the value of M “); scanf(“%d”,&m); v=(n*2)+(m*2) ; a=n*m ; printf(“V = %d \t A = %d”,v,a) ; getch() ; }


يقوم البرنامج السابق بقراءة طولي ضلع المستطيل , وتخصيص القيمتين لكل من المتغيرين n,m .

وبعد ذلك يقوم بعملية حسابية , يحسب فيها محيط المستطيل , ومساحته .

ثم يقوم بطباعة ناتج هذه العملية كما في المثال .

ولكن توجد طريقة أخرى لاختصار البرنامج , دون التأثير في نتائجه , وهيا كالتالي :


The Program :


كود:

#include <stdio.h> #include <conio.h> void main() clrscr(); int n,m ; printf(“Enter the value of N = “); scanf(“%d”,&n); printf(“Enter the value of M “); scanf(“%d”,&m); printf(“\n V = %d \n A = %d”,n*2+m*n,n*m); getch() ; }




وقمنا في المثال السابق بنفس الخطوات السابقة , ولكن باستثناء أننا قد ألغينا العمليات الحسابية لكل من المحيط والمساحة في البرنامج الرئيسي , وقمنا بهذه العمليات في دالة الطباعة printf في نهاية البرنامج , وذلك اختصاراً لطول البرنامج في مثل هذه النوعية من البرامج البسيطة .

ملاحظة : يجب كتابة البرنامج بحروف صغيرة ( عدا التعليقات والرسائل الإخراج لدالة printf ) وذلك حتى يتمكن معالج البرنامج من قراءة البرنامج وتنفيذه .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:02 am

هذا الدرس يتحدث عن مؤثرات الزيادة والنقصان , وأولويات تنفيذ هذه المؤثرات , بالإضافة إلى بعض الأمثلة التوضيحية .


مؤثرات الزيادة والنقصان :

هذه المؤثرات هيا من أهم مميزات لغة الـ C , إذ أنها غير موجودة في أي لغة برمجة أخرى وهيا بسيطة الفكرة , سهلة الاستعمال , تحتاج إلى تركيز .

وتعرف بمؤثرات الزيادة والنقصان لأنها تزيد أو تنقص من قيمة المتغير , وهيا إما على صورة :

++ , --

وتكون مصحوبة قبل أو بعد المتغير , وقيمة المتغير تتوقف على مكان هذه المؤشرات ( أي إذا ما كانت قبله أو بعده ) .

مثال توضيحي على استعمال مؤثرات الزيادة والنقصان :

The Program :

كود:

#include <stdio.h> #include <conio.h> main () { int I,j,k; clrscr(); i=2; j=2; k= ++i; printf(“I = %d \t K = %d \n”,i,k); k= j++; printf(“J = %d \t K = %d”,j,k); getch(); return 0; }
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:04 am

في المثال السابق قمنا بتعريف ثلاث متغيرات صحيحة وهيا حسب الترتيب i,j,k

ثم ثمنا بتحديد قيمتي كل من i,j=2

وبعد ذلك قمنا بتحديد قيمة k=++i

والآن ندرس طريقة قيام المعالج بهذه العملية :
يقوم المعالج بتخصيص قيمة المتغير i للمتغير k ولكن سيصتدم بمؤثر زيادة للمتغير i لذا سيعمل على زيادة هذه القيمة قبل تخصيصها للمتغير k .

وتتم معالجة القيمة i , بما أنه جاء مسبوقاً بمؤثر زيادة ++ , فهذا يعني زيادة قيمة المتغير بمقدار واحد , ويصبح i=3

وبعد تحديد قيمة المتغير i , يقوم المعالج بتخصيص هذه القيمة للمتغير k , فيصبح قيمة هذا المتغير k=3

وهذه طريقة التعامل مع مؤثر الزيادة , ونفس الشيء بالنسبة لمؤثر النقصان ( غير أن مؤثر النقصان طرح وليس جمع ) .

وبعد ذلك تقوم دالة الطباعة بطباعة النتائج على الشاشة .

والآن ندرس الخطوة الثانية وهيا k=j++

في هذه الحالة , يقوم المعالج بتخصيص قيمة j للمتغير k , وقيمة j=2 , إذاً k=2 أيضاً

ولكن المعالج يصدم بعد ذلك بمؤثر زيادة بعد j , لذا يعمل على زيادة قيمة j بمقدار واحد فتصبح j=3

وعند قيام البرنامج بالتنفيذ والعرض على الشاشة سنتأكد بأنفسنا من النتائج السابقة .
ملاحظة :

الأولوية دائماً لمؤثرات الزيادة والنقصان .


مثال آخر لتوضيح عمل المؤثرات في معادلة رياضية :

كود:

#include <stdio.h> #include <conio.h> main () { int s1,s2,a=5,b=3; clrscr(); s1= a + ++a ; s2= b + b++ ; printf(“S1 = %d \t S2 = %d”,S1,S2); getch(); return 0; }



في المثال السابق قمنا بتعريف أربع متغيرات , مع تحديد قيمتي متغيرين كما في المثال .

وبعد ذلك قمنا بعملية رياضية لـ S1 , والتي سنشرح معناها الآن :

يقوم المعالج في المثال بقراءة المعادلة , فيجد أمامه مؤثر الزيادة مصحوباً بقيمة a , فيعمل على تغير قيمة a , وزيادتها 1 لتصبح a=6

وبالتالي تصبح المعادلة

S1= 6 + 6


بينما في الحالة الثانية نقوم بحساب قيمة S2 :

حيث يقوم المعالج جمع b , مع b , وتخصيص القيمة الجديدة لـ S2 , وبعد ذلك يقوم بحساب قيمة b الجديدة من مؤثر الزيادة , وهيا b = 4 , ولكنها غير مطلوبة في البرنامج .

وبالتالي تصبح المعادلة

S2 = 3 + 3


وسنجد أن نتائج البرنامج مساوية لكل من القيم السابقة .


بعض المؤثرات الجديدة :

كود:

x+=9;



العملية السابقة مساوية تماماً لعملية :
كود:

x=x+9;



وتعطي نفس النتائج بالضبط , ويمكن تجربة ذلك بنفسك .

وهيا ليست العملية الوحيدة , إذ يوجد بعض العمليات الأخرى مثل :
كود:

x-=10 ; y*=5 ; z/=11 ; x%= 3;



والعمليات السابقة مساوية للعمليات :
كود:

x=x-10 ; y=y*5 ; z=z/11 ; x=x %3;



ولكنها مختصرة , وهذه إحدى مميزات لغة الـ C .

مثال توضيحي على أحد العمليات السابقة :

كود:

#include <stdio.h> #include <conio.h> void main () { int a,b; clrscr(); a= 10 ; b= 5 ; a-=b ; printf(“a = %d “,a); getch(); }


في المثال السابق قمنا بتعريف متغيرين a,b , ثم بتحديد قيمتين للمتغيريت كما في المثال .

ثم قمنا بعملية رياضية كالتالي :
كود:

a-=b;



وهيا مساوية للمعادلة :

كود:

a=a-b;



وتعطي نفس النتائج دون أي فرق , ويمكنك تجريب المعادلتين والتأكد من نتائجك بنفسك .

طبعاً الأمثلة السابقة أمثلة توضيحية فقط , و سأوضح لكم بإذن الله أمثلة تطبيقية تستطيعون بها الاستفادة من جميع المؤثرات السابقة , وذلك بعد أن نأخذ بعض الدوال والجمل الجديدة في لغة الـ C
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:05 am

الدرس الرابع يتحدث عن بعض الجمل الهامة جداً في لغة الـ C ونستطيع تسميتها بجمل الاختيار والتبديل , وهيا شائعة الاستخدام في الكثير من البرامج , ومتشابهة من حيث الفكرة في كل لغات البرمجة , لما لها من أهمية في هذه اللغات .

سنقوم في بادئ الأمر بعرض هذه الجمل , ثم نتحدث عن كل جملة مع التوضيح بمثال إن شاء الله .

1 ) جملة إذا if statement .

2 ) جملة if – else statement ( لا تختلف كثيراً عن الجملة السابقة ) .

3 ) جملة إذا المتداخلة Nested if statement .

4 ) جملة التبديل Switch statement .

***********


والآن نقوم بشرح أول جملة .

1 ) جملة إذا if statement :

الشكل العام لهذه الجملة :

كود:

if ( Condition ) statement; next statement;


نشرح الآن الشكل العام :

يتكون الشكل العام لهذه الجملة من الصيغة الرئيسية المتمثلة في if , والذي يعني إذا , وبعد ذلك كلمة نقوم بفتح قوس وإغلاق قوس , ومحتوى القوسين يكون شرط التنفيذ Condition , وهذا الشرط هوا الذي تتوقف عليه تنفيذ الجملة Statement إذا ما كان الشرط صحيح , أو ينتقل إلى الجملة Next statement إذا ما كان الشرط غير صحيح .

وحتى تضح لكم الرؤية , نقوم بتنفيذ برنامج بسيط يحتوي على هذه الجملة الجديدة , وظيفة هذا البرنامج هوا قراءة أي عدد تدخله أنت إليه , ثم يقوم باختبار هذه العدد ما إذا كان أكبر من الصفر أو أقل منه عن طريق جملة if , ثم يطبع رسالة في حالة أن العدد موجب تقول أن هذا العدد موجب , وتجاهل طبع هذه الرسالة في حالة كون العدد سالب أو يساوي صفر .

The Program :


كود:

#include <stdio.h> #include <conio.h> main() { int number; clrscr(); printf(“\n Enter the number : “); scanf(“%d”,&number); if ( number > 0 ) printf(“The %d is positive number “,number); getch(); return 0;



والآن نقوم بشرح البرنامج :

بعد أن قمنا بتعريف مكتبتين في السطر الأول والثاني نقوم بتعريف المتغير number في السطر الخامس , ثم نقوم بمسح شاشة الإخراج لمسح أي مخرجات قديمة عن طريق clrscr() في السطر السادس , ثم يقوم البرنامج بطبع رسالة معنى مضمونها هوا أدخل الرقم Enter the number , وبعد ذلك يقوم البرنامج باستقبال الرقم من لوحة المفاتيح وتخزينه في ذاكرة البرنامج , وبعد ذلك يقوم البرنامج باختبار هذا الرقم عن طريق جملة if , وذلك كما رأينا في البرنامج بمقارنة هذا الرقم مع الصفر مقارنة منطقية , فإذا كان الرقم أكبر من صفر يقوم البرنامج بطباعة رسالة إخراج معناها أن الرقم موجب , وإذا كان الرقم صفر أو أقل من الصفر يتجاهل طبع هذه الرسالة وينتقل إلى الجملة التالية والتي هيا جملة إيقاف الشاشة حتى ترى النتائج getch() , وبعد ذلك يصل إلى نهاية البرنامج .

[color=red ملاحظة : [/color] أرجو أن تقوموا بإدخال عدد موجب , وعدد سالب , وصفر حتى تتأكدوا بأنفسكم من صحة البرنامج وطريقة عمله , وتستوعبون فكرته .

قد يقوم البرنامج بتنفيذ أكثر من جملة في حالة صحة الشرط , وتتمل هذه العملية بوضع هذه الجمل بين قوسين { , وقوس } , وهوا ما يعرف في لغات البرمجة بالـ Block , أو الحصر .

الشكل العام في هذه الحالة :

كود:

if ( condition ) { statement 1; statement 2; : : statement n; }



ويمكن رؤية ذلك بعد تعديل البرنامج السابق بعض الشيء :

The Program :


كود:

#include <stdio.h> #include <conio.h> main() { int number; clrscr(); printf(“\n Enter the number : “); scanf(“%d”,&number); if ( number > 0 ) { printf(“The number is bigger than zero ( %d > 0 )”,number); printf(“The %d is positive number”,number); } getch(); return 0;




والآن ننتقل إلى جملة جديدة .

2 ) جملة if – else statement ( لا تختلف كثيراً عن الجملة السابقة ) :

الشكل العام :

كود:

if ( condition ) statement 1; else statement 2;




هذه الجملة لا تختلف كثيرا عن السابقة , لذا لن نكرر ما شرحنا عن الجزء الأول من هذه الجملة عن معنى if .

وسنشرح الجزء المختص بـ else , والذي هوا جديد علينا , ولكنه بسيط .

المقصود بكلمة else في هذه الجملة هوا حالة عكس الشرط , فمثلا يقوم البرنامج باختبار شرط معين , وفي حالة صحة هذا الشرط يقوم بتنفيذ جملة التالية للشرط مباشرة , وفي حالة خطأ الشرط يقوم بتنفيذ الجملة التالية لكلمة else .

برنامج توضيحي لعمل هذه الجملة :

The Program :


كود:

#include<stdio.h> #include<conio.h> main() { int n; clrscr(); printf("Enter the number :"); scanf("%d",&n); if ( n>0 ) printf("The %d is positive number",n); else printf("The %d is negative number",n); getch(); return 0; }




البرنامج السابق يقوم بنفس خطوات البرنامج الأول , ولكن عند وصوله في الجملة الشرطية يقوم بالتأكد من صحة الشرط , فإذا ما كان الشرط صحيح يقوم بطبع الرسالة أن العدد موجب Positive number , وإذا كان الشرط خطأ يتجاهل جملة الطباعة ويوجه إلى كلمة else , ويقوم بتنفيذ جملتها , والتي هيا في هذا البرنامج طباعة رسالة negative number .

3 ) جملة إذا المتداخلة Nested if statement :

الشكل العام :
كود:

if ( condition 1 ) { statement 1; statement 2; } else if ( condition 2 ) { statement 3; statement 4; }
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:06 am

كما رأينا من الشكل العام لهذه الجملة أنه لا فرق بينها وبين جملة if – else statement , ولكنها تحتوي على الكثير من الشروط , ونستعمل هذه الجملة في حالة وجود عدد من الشروط التي تحتاج للكثير من جمل if وتكون مرتبطة ببعض .

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

The Program :


كود:

#include <stdio.h> #include <conio.h> main() { int number; clrscr(); printf(“\n Enter the number : “); scanf(“%d”,&number); if ( number > 0 ) printf(“The %d is positive number “,number); else if ( number <0 ) printf("The %d is negative number",n); else printf(“The %d is Zero”,n); getch(); return 0;




وهذا البرنامج لا يختلف في شرحه عن البرامج السابقة إلا في أشياء بسيطة من الناحية الشرطية .

إذ أن البرنامج يقوم بالتحقق واختبار ما إذا كان العدد أكبر من صفر , في حالة صحة هذا الشرط يطبع رسالة تفيد بأن العدد هوا عدد موجب positive number , ويخرج من الجملة الشرطية دون المرور على باقي جمل else , وذلك لكونه صواباً من الأول .

وفي حالة كون الشرط الأول خطأ يتوجه إلى جملة else , ويقوم بالتحقق من الشرط الثاني , فإذا كان العدد أصغر من الصفر يقوم بطبع رسالة negative number , ويخرج من الجملة الشرطية دون المرور على else وذلك لكون الشرط صحيح .

أما إذا كانت كل الشروط السابقة خطأ يمر على الشرط الأخير والذي يفيد بأن العد هوا صفر Zero ويقوم بطاعة رسالة تفيد بأن العديد هوا صفر Zero , وذلك لعدم تحقق الشرطين الأولين .

والآن ننتقل إلى جملة التبديل , والتي هيا آخر مواضيعنا لهذا الدرس إن شاء الله .

4 ) جملة التبديل Switch statement :

الشكل العام :

كود:

switch ( expression ) { case constant 1 : statement ; break ; case constant 2 : statement ; break ; default : statement ; break; }




تحل هذه الجملة بدل جملة if في الحالات التي تكثر وتتنوع فيها قيم المتغير , قد نقوم بعملية حسابية لمتغير من نوع صحيح , ويكون ناتج هذه العملية هوا قيمة جديدة للمتغير يتوقف عليها عدد من العمليات , لذا بدل استعمال جملة if في كل قيمة للمتغير , نستعمل جملة switch , وتقوم هذه الجملة بتبديل التعبير المعطى expression بالقيمة لهذا التعبير أو هذا المتغير والمتمثلة في الثوابت الجديدة constant , حيث أنه من الممكن أن يكون هنالك أكثر من ثابت , لذا قمنا بترقيمها , وعند تماثل قيمة المتغير مع قيمة الثابت يقوم بتنفيذ الجملة المقابلة لجملة الثابتة , والتي تتوقف عليها طريقة التعامل مع المتغير .
ووظيفة جملة break; هيا تنبيه المعالج إلى انتهاء معالجة هذا الجزء من المتغير , والانتقال إلى باقي البرنامج .

ووظيفة جملة default هيا أنها في حالة عدم تطابق التعبير ( المتغير ) مع أي من الثوابت المعطية في البرنامج constants , يقوم بالدخول على جملة default , ومعالجة المتغير في هذه الجملة .

والآن حتى تضح طريقة عمل هذه الجملة سنعمل على تطبيقها في برنامج يقوم بقراءة متغير x من النوع الصحيح , وإيجاد قيم المعادلات الآتية عندما تكون قيمة x كالتالي :


x= -6 >>>-------> y = ( x*x ) – x .
x= 1 or 5 >>>-------> y = ( x*10 ) / 2 .
x=2 >>>-------> y = x + x .
x=4 or -4 >>>-------> y = x*x .
x= أي قيمة أخرى غير السابق >>>-------> y = x + 11 .


The Program :


كود:

#include <stdio.h> #include <conio.h> void main() { int x,y; clrscr(); printf("\n Enter Value Of X = "); scanf("%d",&x); switch (x) { case -6: y=(x*x)-x ; printf("X=%d and (x*x)-x=%d",x,y); break; case 1: case 5:y=(x*10)/2 ; printf("X=%d and (X*10)/2=%d",x,y); break; case 2: y=x+x; printf("X=%d and X+X=%d",x,y); break; case -4: case 4: y=x*x; printf("X=%d and X*X=%d",x,y); break; default: y=x+11; printf("X=%d and X+11=%d",x,y); break; } getch(); }



شرح البرنامج :

يقوم البرنامج في بادئ الأمر بقراءة قيمة x التي يتم إدخالها من قبل المبرمج , وبعد ذلك يقوم بتخزينها , ثم معالجتها في جملة switch , حيث يقارن قيمة x المدخلة بالقيمة الثابتة , وفي حالة تساوي قيمة x المدخلة مع أحد الثوابت , يقوم بتنفيذ الجملة المقابلة لهذا الثابت , وحساب العملية الحسابية , وطباعة رسالة بناتج هذه العملية .

في حالة عدم تساوي قيمة x مع أي من هذه الثوابت , يقوم بتنفيذ الجملة المقابلة لـ default , وحساب المعادلة الرياضية وطباعة الرسالة المعطاة .

ولكن قد يسألك أحدكم سؤال مهم , وهوا : ماذا يحدث إذا لم نكتب جملة break; في أحد جمل البرنامج ؟

كما سبق وشرحنا جملة break تحدد نهاية جملة case المخصصة لها , وفي حالة عدم كتابتها سيستمر البرنامج في تنفيذ كل الجملة حتى تقابله جملة break أخرى , أو يتفذ كل جمل البرنامج في حالة عدم وجود break نهايئاً .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:07 am

الدرس الرابع يتحدث عن جمل التكرار في لغة الـ C وهيا من الجمل المهمة أيضا في هذه اللغة , وتستعمل لتكرار جملة أو مجموعة من الجمل تحت شرط معين يفرضه المبرمج في البرنامج .

نستعرض ثلاث أنواع من جمل التكرار , وهيا كالتالي .

1 ) جملة ( while statement ) .

2 ) جملة ( do … while statement ) .

3 ) جملة ( for statement ) .

نبدأ باسم الله في عرض أول الجمل وطريقة استعمالها :

جملة ( while statement ) :

الشكل العام للجملة :

كود:

while ( condition ) { statement 1; statement 2; : : statement n; }



والآن نشرح معنى هذا الكلام :

نلاحظ من بداية الشكل العام أن الجملة تبدأ بتنفيذ التعبير while , والذي يعني : عندما .

وتقول بالتحقق من الشرط Condition , فإذا وجد المعالج أن الشرط صحيح يقوم بتنفيذ باقي الجمل statements , وإذا وجد أن الشرط خطأ لا يقوم بتنفيذ باقي الجمل , ولا يمر على الجمل أصلاً في حالة الشرط الخطأ .

وحتى نعرف كيفية استخدام هذا الشرط وطريقة قيام المعالج بتنفيذه نقوم ببرمجة هذا البرنامج البسيط والذي يقوم بطباعة الأعداد من 1 ..... إلى 10 .

The Program :


كود:

#include <stdio.h> #include <conio.h> void main() { clrscr(); int n=1; while ( n<=10 ) { printf(“n = %d \n “,n); ++n; } getch() ; }



والآن نشرح هذا البرنامج وطريقة قيام معالج اللغة بمعالجته :
يقوم المعالج في بادئ الأمر بتعريف المتغير الصحيح n , ويحجز له مساحة في الذاكرة , ويساوي قيمته بالعدد 1 .

ثم يقوم المعالج بالمرور على الجملة التالية , وهيا جملة while , ويقوم بالتحقق من الشرط , ولكن كيف ؟

يتم ذلك بأن يستعرض قيمة المتغير n , ويتحقق إذا كانت تساوي أو أقل من القيمة المعطاة في الشرط ( 10 ) وعندما يجد أن 1 أقل من عشرة يقوم بتنفيذ جمل الشرط , ويطبع قيمة n على الشاشة , ثم يقوم بتغيير قيمة n في الذاكرة , ويضع بدلها القيمة الجديدة الناتجة من الجملة ++n , والتي تعني زيادة العدد n مقداراً واحداً .

ويكرر البرنامج جملة التكرار while مرة أخرى , ويتحقق من الشرط , ويجد أن العدد 2 أقل من 10 , فيقوم بطباعة القيمة الجديدة لـ n على الشاشة , وزيادة القيمة الأولى عدداً صحيحاً واحداً .

وهكذا حتى يصل للعدد 10 , وهنا سيجد أن العدد n يساوي العدد 10 , ويقوم بطباعته كما سبق وذكرنا , ولكن عندما يزيد العدد n مقداراً واحداً , ستصبح قيمته 11 , وعند مقارنة هذه القيمة بالشرط سيجد أنها أكبر من الشرط ولا تساويه , لذا سيخرج المعالج من جملة التكرار , وسيتجه للجملة التالية لهذه الجملة , والتي هيا جملة getch() , والتي سبق وذكرنا فائدتها , ثم يتوجه إلى نهاية البرنامج .

هذه إخواني الأعزاء , أخواتي العزيزات جملة while باختصار وإيضاح .


2 ) جملة ( do … while statement ) :

الشكل العام :

كود:

do { statement 1; statement 2; : : statement n; } while ( condition ) ;



من المؤكد أنكم قد لاحظتم تشابه هذه الجملة مع جملة while السابقة , وهيا فعلا تتشابه معها تشابهاً جذرياً من حيث الأداء والشرط , ولكن تختلف عنها بعض الشيء , وهذا الاختلاف هوا كالتالي :

قد لا يمر المعالج على جملة while أبداً , وذلك في حالة عدم صحة الشرط من الأول .
بينما يمر المعالج على جملة do … while على الأقل مرة واحدة , حتى إذا كان الشرط غير صحيح .

كما أن جملة do … while تبدأ بتنفيذ جملة واحدة , أو عدة جمل , ويتم التحقق من هذه الجمل عند نهاية هذه الجملة , عن طريق الشرط .

وحتى تتضح الرؤية سنقوم بحل البرنامج السابق هذه المرة بجملة do while , حتى نستوعب الفرق الذي سيتضح في الشرط :

The Program :


كود:

#include <stdio.h> #include <conio.h> void main() { clrscr(); int n=1; do { printf(“n = %d \n “,n); ++n; } while ( n <= 10 ) ; getch() ; }



شرح البرنامج :

يقوم البرنامج بنفس الخطوات السابقة في البرنامج السابق حتى يصل إلى do , وهنا يقوم مباشرة بتنفيذ الجملة التالية لـ do دون التقيد بالشرط , لأن الشرط موجود في نهاية الجملة , وعند وصوله لنهاية الجملة يقوم بالتحقق من الشرط , فإذا وجد أن الشرط محقق , يكرر الجمل مرة أخرى , وإذا بطل الشرط , يخرج من جملة do … while نهايئاً , ويتجه إلى الجملة التالية .

أرجو أن أكون قد أوضحت الفكرة العامة للجملتين السابقتين , وإذا لم تتضح سأوضحها بإذن الله في أمثلة قادمة إن شاء الله .


3 ) جملة ( for statement ) :

وتعتبر من أهم جمل التحكم , وتستعمل لتكرار مجموعة من الجملة , وهذا التكرار يكون معلوم مقداره , بمعنى أن يتم تكرار الجمل مرة واحدة , أو مرتين , أو أكثر على حسب رغبة المبرمج , لذا تعتبر جملة تكرار , وفي نفس الوقت جملة تحكم , لقدرة المبرمج على التحكم في مقدار التكرار .

الشكل العام :
كود:

for ( expression 1; expression 2; expression 3 ) { statement 1; statement 2; : : statement n; }



والآن نشرح هذه الجملة البسيطة المهمة :

يقوم المعالج عند معالجة جملة for بالتعرف على التعبير الأول expression 1 , ثم يقوم بمقارنته بالشرط في التعبير الثاني expression 2 , ثم يقوم عملية حسابية في التعبير الثالث expression 3 , ونلاحظ أنه يمكن الاستغناء عن التعبير الثالث , وكتابته كجملة ملحقة بجملة for , أي تحت جملة for , وسنشرح هذا في المثال التالي :

نقوم ببرمجة برنامج لطباعة الأعداد من 1 إلى 10 ( نفس البرنامج السابق ) ولكن بجملة for :

The Program :


كود:

#include <stdio.h> #include <conio.h> void main() { clrscr(); int n; for (n=1;n<=10;n++) { printf(“n = %d \n “,n); } getch() ; }


والآن نشرح البرنامج السابق :
يقوم هذا البرنامج بنفس وظيفة البرامج السابقة في هذا الدرس , أي طباعة الأعداد من 1 إلى 10 .

ولكن كيف يقوم المعالج بمعالجة جملة for ؟

يقوم المعالج بذلك كالتالي : عندما يصل جملة for , يقوم في بادئ الأمر بالتأكد من expression 1 , والتأكد من وجود تعريف للمتغير ووجود قيمة له , وبعد ذلك يقوم باختباره بالشرط في expression 2 , وإذا ما كان الشرط صحيح ينفذ باقي الجمل , وعند نهاية الحلقة يقوم بتنفيذ expression 3 , ثم يعيد التكرار مرة أخرى .

سؤال هل يمكن تجاهل كتابة قيمة المتغير expression 1 في جملة for ؟

نعم يمكن تجاهل ذلك في البرنامج , ولكن بشرط أن يكون المتغير معرف بقيمة معطاة في أول البرنامج , ونستطيع التأكد من ذلك بتكرار البرنامج السابق ولكن بعد إجراء التعديل السابق .

The Program :

كود:

#include <stdio.h> #include <conio.h> void main() { clrscr(); int n=1; for (;n<=10;n++) { printf(“n = %d \n “,n); } getch() ; }



نلاحظ في البرنامج السابق عدم كتابتنا للتعبير expression 1 , والذي كان فيما قبل n=1 , وقد استعضنا عن ذلك بوضع قيمة n في بداية البرنامج عند تعريفها int n=1 , ولكن نلاحظ أننا قد وضعنا الرمز ; الذي يدل على نهاية التعبير expression 1 , حتى وان لم يوجد هذا التعبير .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
The 7oNoseT

The 7oNoseT


جنس العضو : انثى
تَارِيخْ التَسْجِيلْ : 30/08/2009 المُسَــاهَمَـــاتْ : 131
بلد العضو : دروس تعليمية في البرمجة بلغة الـ c 2hxc36d

الأوسمة و جوائز بينات الإتصال بالعضو آخر مواضيع العضو

دروس تعليمية في البرمجة بلغة الـ c Empty
مُساهمةموضوع: رد: دروس تعليمية في البرمجة بلغة الـ c   دروس تعليمية في البرمجة بلغة الـ c Emptyالأربعاء نوفمبر 18, 2009 5:09 am

سندرس طريقة جديدة من طرق حفظ البيانات , وهذه الطريقة والحق يقال من الطرق المهمة للغاية , وهذا قول ناتج عن خبرة شخصية وتجربة عملية في لغات البرمجة .

الدرس وباختصار يتعلق بالمصفوفات , وطرق التعامل معها , والفائدة المرجوة منها في المستقبل .

وسنقوم بطرح فكرة مبسطة عن مصفوفة البعد الواحد , ومصفوفة البعدين , حيث أن هذان النوعان هما من أكثر الأنواع شيوعاً واستعمالاً .

مصفوفة البعد الواحد :

الشكل العام للمصفوفة :

كود:

int array_name[index];


Or


كود:

type array_name[index];



لا يخفى عليكم أعزائي أنني قد قمت بوضع شكلان عامان للمصفوفة , أحدهما بالصورة التقليدية كما تعودنا في الصورة الأولى , وذلك بتعريف المصفوفة كعنصر صحيح , أو حقيقي , , حيث أن array_name هوا عبارة عن اسم المصفوفة , ونستطيع ترميزه بأي رمز مثل ( x,y,z,xyz,array1 ) , ثم كلمة index , وهيا عناصر المصفوفة .

والطريقة الثانية هيا طريقة عملية ومهمة جداً في تعاملنا مع كل أنواع البيانات وليس المصفوفات فحسب , وهيا تعريف البيانات حسب نوعها , ثم إدراج هذا النوع في البرنامج حسب الطلب , ولكن سنأجل دراسة هذا النوع مؤقتاً , حتى نفهم الطرق العادية ونجيدها تماماً , ثم سأقوم بشرح هذا النوع لاحقاً إن شاء الله .

والآن وكما تعودنا نقوم بوضع مثال يوضح فائدة المصفوفة , وطريقة تعامل معالج لغة الـ C مع المصفوفة .

كمثال بسيط يوضح فائدة كبيرة للمصفوفة , نقوم مثلاً ببرمجة برنامج حسابي بسيط يقوم بقراءة 10 أعداد صحيحة , وجمع هذه الأعداد وطباعة ناتج جمعها على الشاشة .

في السابق كنا نقوم بتعريف 10 متغيرات كأعداد صحيحة , ولكن الآن وبفضل المصفوفة , سنقوم باختصار هذه الـ 10 أعداد إلى تعريف مصفوفة واحدة فقط , وهذه فائدة رائعة للمصفوفات , إذ أنها توفر الوقت والجهد في بناء البرامج والمنظومات الكبيرة , وهذا ما سنطرحه في المستقبل إن شاء الله بعد إنهائنا لدروس لغة الـ C ( إن شاء الله إذا عشنا حتى ذلك الوقت ) .

والآن , طريقة البرنامج كما يلي :

The Program :


كود:

#include <stdio.h> #include <conio.h> void main() { clrscr(); int x[10],i,sum=0; for (i=0;i<10;i++) { printf("\n Enter X[%d] = ",i); scanf("%d",&x[i]); sum+=x[i]; } printf("\n Sum = %d ",sum); getch(); }



والآن نشرح البرنامج بالتفصيل :

في أول البرنامج قمنا بتعريف متغيرات , منها [10]x , وهذا يعني أن اسم المصفوفة هوا x , وأن هذه المصفوفة تحوي داخلها عشرة متغيرات , وكل هذه المتغيرات من النوع الصحيح , وذلك لأننا قمنا بتعريف المصفوفة كمتغير صحيح , ثم قمنا بتعريف عداد للمصفوفة Counter , ورمزنا لهذا العداد بالرمز i , ثم قمنا بتعريف المتغير sum , وهوا اختصار لكلمة summation , والتي تعني مجموع , وهوا الذي سنحفظ فيه مجموع عناصر المجموعة .

والآن إلى الخطوة التالية , أرجو الإهتمام والتركيز في هذه الخطوة , حتى نوضع فائدة العداد :

نقوم بوضع المتغير i في جملة for , وذلك لأننا سنعرف i كعداد للمصفوفة , ونقوم بوضع قيمة ابتدائية لـ i وهيا صفر ( 0 ) , لأنه للحصول على 10 عناصر للمصفوفة أو أي عدد في لغة الـ C , تبدأ المصفوفة من المتغير [10]x , وتنتهي عند المتغير [10]x , وعند حسابنا نجدهم 10 عناصر .

والآن نقوم بتحديد الدورة التي سنقوم بها , في أول حالة سيقوم المعالج بوضع قيمة صفر للمتغير i , ثم يقوم بمقارنتها بالعدد 10 , فيجدها أقل منه , لذا يستمر في الدورة أو الحلقة , فيقوم بطباعة جملة

كود:

printf(“\n Enter x[%d] = “,i);



وهذه الجملة هيا مجرد جملة توضيحية للمبرمج , توضح له أنه عليه أن يقوم بإدخال قيمة المتغير المراد تخزينه في الصف [x[%d , حيث أن %d تتغير بتغير i .

ثم يقوم البرنامج باستقبال قيمة المتغير ويضعه في المصفوفة حسب التريب , يستقبله في الخانة [x[i , ونتيجة لذلك فأنه من المستحيل أن يضع قيمتين في نفس الخانة , لأن i تتغير وتزيد بمقدار واحد كل دورة i++ , وهذه فائدة العداد .
ثم يقوم المعالج بالعملية الحاسبة التالية :
كود:

sum+=x[i];


وهذه العملية هيا نفس العملية :
كود:

sum=sum+x[i];


حيث شرحنا معناها في السابق , ونحيطكم علماً مرة أخرى بأن معناها أن المجموع سيقوم في كل دورة بإضافة قيمة العدد الجديد إلى المجموع , حتى نتحصل على المجموع الكلي .

ويستمر البرنامج بهذه العملية حتى تصل قيمة i للعدد 10 , وفي هذه الحالة يقوم البرنامج بالخروج من الحلقة , ويطبع رسالة النهاية التي توضح قيمة المجموع النهائية على الشاشة .

طبعاً أرجو من الإخوة تجربة البرنامج حتى تتمكنوا من فهمه بطريقة أفضل , فالتجربة خير دليل على صحة البرنامج وأفضل طريقة لفهمه .


المصفوفات ذات البعدين :

الشكل العام :
كود:

int array_name[index1][index2]


نلاحظ زيادة قوسان جديدان , ومعناهما كالتالي :


array_name = اسم المصفوفة
index1 = عدد الصفوف
index2= عدد الأعمدة


لأن المصفوفة الثنائية مكونة من صفوف وأعمدة , وليس صفوف فقط كالأحادية ذات البعد الواحد .

والآن نقوم بكتابة برنامج يقوم بقراءة عدد من القيم وتخزينها في مصفوفة ذات بعدين , ثم يقوم بطباعة هذه القيم على هيئة مصفوفة .

The Program :


كود:

#include <stdio.h> #include <conio.h> #define row 2 #define col 2 void main() { int i,j; int x[row][col]; clrscr(); for (i=0;i<row;i++) for (j=0;j<col;j++) { printf("\n x[%d][%d] = ",i,j); scanf("%d",&x[i][j]); } printf("\n"); for (i=0;i<row;i++) { for (j=0;j<col;j++) printf("%d \t ",x[i][j]); printf("\n"); } getch(); }



قد يبدو لكم البرنامج معقداً , ولكنه في الحقيقة بسيط وسهل , يحتاج إلى شرح بسيط وبإذن الله ستفهمونه .

البرنامج يبدأ بداية تقليدية , ويقوم بالتعرف على المتغيرات المعطاة , ونلاحظ هنا وجود اثنان for , وهذا التعقيد الوحيد , ولكن لنفهم هذا التعقيد يجب أن نعرف طريقة تعبئة المصفوفات , فالمصفوفات تقوم بتعبئة العنصر الأول في الصف الأول والعمود الأول , ثم العنص الثاني في الصف الأول والعمود الثاني , وهكذا , حتى تصل للعنصر الأخير في الصف الأول العمود الأخير , بمعنى أنها تقوم بتعبئة جميع الأعمدة في الصف الأول , ثم عند انتهائها تنزل للصف التالي وتقوم بتعبئة جميع الأعمدة , وهكذا حتى تقوم بتخزين جميع عناصر المصفوفة .
تحياتي اختكم The 7oNoseT
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
دروس تعليمية في البرمجة بلغة الـ c
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» المبتدأ في البرمجة
» دروس في قانون الأسرة
» تحميل دروس طب الاعشاب
» سلسلة دروس التصميم
» دروس التاريخ بكالوريا 2009 bac

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات وهران :: ركن شروحات البرامج-
انتقل الى: