بانر

الدرس الثالث لتعليم لغة السى بلس بلس c++

الدرس الثالث لتعليم لغة السى بلس بلس C++

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


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

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

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

++ , --

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

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

[l]The Program : [/l]
كود:
#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;
}
في المثال السابق قمنا بتعريف ثلاث متغيرات صحيحة وهيا حسب الترتيب 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

وبالتالي تصبح المعادلة
[l]S1= 6 + 6 [/l]

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

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

وبالتالي تصبح المعادلة
[l]S2 = 3 + 3[/l]

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


بعض المؤثرات الجديدة :
كود:
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 , وسنوضح أكثر وظائف هذه الجمل وطرق عملها في البرامج في الدرس القادم إن شاء الله .



الدرس الرابع 
من هنا