لغة C الدرس الثاني ( عالم من المتغيرات )

blog article

► لغة C الدرس الثاني ( عالم من المتغيرات ) :



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

تلخيص و تذكير بالدرس السابق :


لقد تعلمتم في الدرس السابق كيف تصنعون مشروعا جديدا و كيف تنشؤون برنامجا بسيطا بالكونصول و ذلك بإستخدام ال IDE مثل Dev و Code::Blocks إلخ...
و قد شرحت لكم كم أنه من الصعب علينا نحن المبيدئين إنشاء برامج بالنوافذ لذلك و طيلة دروسنا القادمة سنتعامل فقط مع الكونصول.

 


الآن تعرفون كيفية كتابة نص على الشاشة  ، نستكمل  الدرس التاني :
 ما هي المتغيرات في البرمجة 
! المتغيرات , كل لغات البرمجة فيها متغيرا كائنة من كانت و لغة السي ليست خارجة المجموعة .

 



قد يتساءل البعض : و ما هو التغير ؟

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

 



عنوان الموضوع

تعريف المتغير
إنشاء متغير
إظهار محتوى متغير
إسترداد قيمة مخزنة

 



تعريف المتغير :


المتغير و بكل إختصاؤ هو عبارة عن قيمة أو معلومة صغيرة يتم تخزينها على الذاكرة Ram.
و سبب تسميته "متغير" هي أن قيمته يمكن أن تتغير خلال عمل البرنامج . مثلا قيمة المتغير 8 هذه القيمة مثلا نعترها عدد حياة اللاعب في لعبة ما ,هذه القيمة يمكنها أن تتغير كلما خسر اللاعب فتصبح 7 ...6 ...5 ....
برامجنا القادمة و كما أشرت سابقا ستكون معمرة بالمتغيرات لذلك أعطوني كل إنتباهكم .

في لغة سي , المتغير له شيئين رئيسيين :

له قيمة :وهي العدد الذي يأخذه المتغير مثلا 6.
له إسم : و هذا ما يساعدنا على معرفته .عندما نبرمج بلغة سي يجب علينا تحديد أسماء للمتغيرات .

كيفية تسمية متغير:

في لغة سي إذا كل متغير يجب أن يكون له إسم . و
مثلا نريد تسمية متغير في لعبة و هو يمثل الوقت المتبقي لذلك نسميه مثلا :"Times" لكن هناك بعض القواعد التي يجب إحترامها:

1/تسمية المتغير لا تقبل سوى الأرقام و الحروف الكبيرة و الصغيرة .مثلا :abAB012...
2/إسم المتغير يجب أن يبدأ بحرف.
3/الفراغات ممنوعة منعا كليا , يكمننا إستعمال "underscore" _ وهو الركز الوحيد المحل إستخدامه كرمز دون الجروف و الأرقام .
4/ليس لكم الحق في إستخدام les accents و هم : éàê ...

و أخيرا و هو الشيئ الأكثر أهمية , و يجبمعرفته و هو أن لغة سي تفرق بين الحروف الكبيرة و الصغيرة .. مثلا هذا المتغيران ليسا متشابهين :"Times", "times" .
و لكي تعلموا فلكل مبرمج طريقته الخاصة في تسمية المتغيرات .. لذلك أنصحكم بأن تبتكروا طريقة خاصة بكم في التسمية .

مع أن لنا كل الحرية في إختيار إسم المتغير فهذا لا يعني تسمية المتغير عشوائيا بدون تفكير , بتعبير آخر يجب على المتغير أن يحمل إسم وظيفته -كنصيحة-.

و الآن سنمر إلى ما هو أهم و هو :


دورات تدريبية عن بعد

   مع الأستاذة / جيهان حسين

دورة السوشيال ميديا والخيانة الزوجية
احجز معنا في دورة السوشيال ميديا والخيانة الزوجية أسباب وأعراض _ نتائج وعلاج 


أنواع المتغيرات:

حاسوبنا,كما لاحظتم و تلاحظون ,ليس سوى آلة للحسابة فهو لا يعرف سوى معالجة الأرقام .
إليكم الآن مجموعة من أنواع الأرقام و التي تعرفونها بلا شك :

 

لدينا , الأعداد الحقيقية الموجبة :

45
357
14025

و لدينا الأعداد العشرية و هي تلك التي فيها الفاصلة :

75,909
1,7741
9810,7

إضافة إلى ذلك لدينا الأعداد الحقيقية السالبة \ك

87-
128-

و أيضا أعداد عشرية سالبة :

76,12-
100,7589-

الحاسوب أو الكومبيوتر بحاجة لمساعدة ! فعندما نطلب منه تخزين عدد من الأعداد , يجب عليكم ذكر نوع هذا العدد ..

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



الأنواع الثلاثة الأوائل يمكنون المبرمج من تخزين أعداد حقيقية .
التوعين الأخيرين يمكنان من تخزين أعداد عشرية .

ستلاحظون أننا في مشوارنا الدراسي سنستخدم بشكل كبير الأعداد الحقيقية char, long و double.


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

بالنسبة للأنواع فأنا لم أذكرها كلها بل ركزت على الأساسيات .


إنشاء متغير


الآن أنشئوا مشروعا جديدا و أسموه "variables".
سننشئ الآن متغيرا أي سنطلب من الكومبيوتر أن يسمح لنا بإستخدام قليل من الذاكرة.

إنشاء متغير جد سهل الآن خاصة بعد أن تعلمنا الأمور الأساسية , فقط يجب علينا أن نقون بالآتي بالتتابع:

تحديد نوع المتغير .
+فراغ
+كتابة إسم المتغير
+و أخيرا لا تنسوا النقطة الفاصلة .

و بذلك نكتب كالآتي :

كود PHP:

long NameOfVariable;  

هذا كل شيئ .

أظن أنكم فهمتم المبدأ.

هذه الحركة تسمى بإستدعاء المتغير déclaration de variable.
و نقوم بهذه العميلة في أول أو بداية ال fonction . و نحن الآن نتعامل فقط مع fonction واحدة ألا و هي fonction main.. و بذلك تكون عملية إستدعاء البرنامج تتم على الشكل التالي :

كود PHP:

#include  
#include  
 
int main(int argc, char *argv[]) 

  // بداية ال fonction 

  long BraKing;    
  
  system("PAUSE");       
  return 0; 
  // نهاية ال fonction 
}  

عند عمل البرنامج تلاحظون أنه...لا يقوم بأي شيئ

شروحات لهذه الحالة :

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

للإختصار فمعظم المبرمجين عندما يريدون إنشاء مجموعة من المتغيرات مثلا 6 متغيرات فبدل تضييع الوقت في الكتابة و إعادة الكتابة نقوم بالتالي :

كود PHP:

long Time, Level, Pro;  

هذا الكود سينشأ 3 متغيرا من نفس النوع long و هي : Time و Level و Pro.
و الآن؟
بعد أن أنشأنا متغير يمكننا أن نعطي له قيمته أليس كذلك ؟؟


إعطاء قيمة للمتغير :


نريد مثلا أن نعطي للمتغير Level القيمة 3 .
هذا سهل جدااااااااااا يكفي أن نقوم بالكتابة كالتالي :

كود PHP:

Level = 3;  

ليس هناك شيئ صعب لفعله فقط علينا إستدعاء المتغير ثم فراغ ثم علامة تساوي ثم نكتب قيمة المتغير ..و لا ننسى النقطة الفاصلة كالعادة.
الآن سنقوم بالتطبيق ... نعطي للمتغير Level القيمة 5 داخل برنامج :

كود PHP:

#include  
#include  
 
int main(int argc, char *argv[]) 

  long Level; 
  Level = 5; 
  
  system("PAUSE");       
  return 0; 
}  

هنا أيضا لا يجدث شيئ , الكل يحدث بين الذاكرة و البرنامج .

و كما قلت عن سبب تسميت المتغير "متغيرا" ..يمكننا اللعب و تبديل قيمة المتغير إلى أي قيمة و في نفس البرنامج :

كود PHP:

long Level;  
Level = 5; 
Level = 4; 
Level = 150;  

في هذا المثال المتغير Level سيأخذ أولا القيمة 5 ثم بعد ذلك القيمة 4 و القيمة 150 . بما أن الكومبيوتر سريع فإننا لا نشعر بتغير قيمة المتغير... و ها قد إنتهى البرنامج

قيمة متغير

إليكم سؤالا مهما , و إذا كنت قد طرحته مسبقا فهذا دليل على أنك قد تصبح مبرمجا جيدا :

عندما نستدعي المتغير أية قيمة يأخذها ؟

في الحقيقة الحاسوب عندما يقرأ هذا السطر :

كود PHP:

long level;  

يقوم بحجز مكان صغير في الذاكرة . و لكن ما هي قيمة المتغير في هذه اللحظة ؟هل توجد قيمة أصلية (0 مثلا).

إذا ... الجواب هو لا و لا و لا . لا توجد فيمة أصلية (par defaut).المكان محجوز لكن القيمة لا تتغير , أي أن المتغير يمكن أن يأخذ أية قيمة مهما كانت 
لذلك يجب الحذر كي لا نقع في مثل هذه الأخطاء في المستقبل .و الأحسن دائما أن نعطي لمتغيراتنا قيما عندما نستدعيها.و في الأخير , هذا يتطلب منا دمج الإستدعاء و إعطاء القيمة :

كود PHP:

long Level = 5;  

هنا , المتغير Level يأخذ القيمة 5.
الإيجابي هنا هو أننا نعرف أن متغيرنا يأخذ القيمة 5 و ليس أية قيمة مهما كانت .

الثوابت constantes

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

هذه المتغيرات الخاصة نسميها بالثوابت constantes, نظرا لأن قيمتهم ثابتة لا تتغير طيلة عمل البرنامج .

مثال لإستدعاء ثابت:

كود PHP:

const long LEVEL_CONSTANT = 5;  

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

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

أخطاء الترجمة تظهر أسفل البرنامج .. في هذه الحالة , المترجم سيظهر لكم كلمات كالآتي :

كود:

[Warning] assignment of read-only variable ' NOMBRE_DE_VIES_INITIALES'



إظهار محتوى متغير



حتى الآن تعلمنا كيف نظهر كتابة على الشاشة بإستعمال الدالة printf .
الآن سنتعلم كيفية إظهار قيمة(محتوى) بإستعمال نفس الدالة .

في الحقيقة نحن نستعمل الدالة printf بنفس الطريقة, بإستثاء أننا نضيف رمزا في المكان الذي نريد لقيمة المتغير أن تظهر فيه .
مثلا:

كود PHP:

printf("Il vous reste %ld vies");  

هذا "الرمز الخاص و المميز" الذي تحدثت عنه هو % متبوع بالحرفين ld. هذه الحروف و الرموز تبين ماذا نريد أن نظهر."ld"تعني أن الرقم هو عدد صحيح.
هناك عدة رموز لكن و لأننا لا أقول مبتدئين لكن فوق المبتدئين بدرجة سنركز على هذان الإثان :
+%ld : عدد صحيح (مثل : 4, 5 , 6 ,150)
+%lf :عدد عشري (5.18, 18.3, 120.32589)

في الدروس القادمة سنتحدث عن عدة رموز أخرى في وقت مناسب فلكل مقام مقالفي وقتنا الحالي , إعلموا أننا عندما نريد إظهار قيمة متغيرات صحيحة (char, int, long...),يجب إستعمال %ld, و بالنسبة لأرقام عشرية (float, double), يجب إستعمال %lf.

شارفنا على النهاية . لكن عندما نظهر محتوى المتغير يجب أن نبين للدالة printf أي متغير يجب إظهار قيمته .
لكي نفعل هذا, يجب ذكر إسم المتغير بعد المزدوجتان و ذلك بعد إضافة فاصلة , مثلا:

كود PHP:

printf("Il vous reste %ld vies", Vies);  

%ld سيعوض بقيمة المتغير المذكور بعد الفاصلة .
لماذا لا نقوم بتجربة كل هذا في برنامج ؟

كود PHP:

#include  
#include  

int main(int argc, char *argv[]) 

  long nombreDeVies = 5; // Au départ, le joueur a 5 vies 
  
  printf("Vous avez %ld vies\n", nombreDeVies); 
  printf("**** B A M ****\n"); // Là il se prend un grand coup sur la tête 
  nombreDeVies = 4; // Il vient de perdre une vie ! 
  printf("Ah desole, il ne vous reste plus que %ld vies maintenant !\n\n", nombreDeVies); 
  
  system("PAUSE");       
  return 0; 
}  

يمكن أن يكون هذا البرنامج لعبة (لا يتطلب الأمر سوى قليل من الخيال العلمي)

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

1. في البداية اللاعب لدية خمس نقاط حياة ,نظهر هذا بإستعمال الدالة printf.
2. ثم يحدث إنفجار قرب اللاعب .
3. و في الأخير يصبح عدد نقاط حياته 4 , و نظهر هذه القيمة بواسطة printf.


كيفية إظهار محتوى عدة متغيرات في نفس ال printf .


يمكن لكل شخص أحب أن يظهر محتوى عدة متغيرات في نفس الدالة printf.يتطلب الأمر أن تبينوا المكان و نوعية العدد : %ld أو %lf , ثم تكتبوا أسماء المتغيرات كما في السابق لكن و بما أنه عندنا عدة متغيرات فيجب ذكرها و لكن حسب ترتيب الكتابة :

كود PHP:

printf("Vous avez %ld vies et vous etes au niveau n°%ld", Vies, Level);  

يجب إحترام الترتيب ففي هذا البرنامج ال%ld الأول يأخذ قيمة المتغير الأول Vies و%ld الثاني يأخذ قيمة المتغير الثاني Level.




إسترداد قيمة مخزنة



المتغيرات الآن بدأت تصبح مهمة . سنتعلم الآن أن نطلب من المستخدم إدخال قيمة و سنقوم يتخزينها في متغير .عندما ستتعلمون هذه الخاصية يسيكون بمقدوركم إنجاز الكثير من الأشياء الجميلة

لكي نطلب من المستخدم إدخال قيمة , سنستعمل دالة أخرى ألا و هي الدالة :scanf.
هذه الدالة تشبه كثيرا الدالة printf .يجب عليكم إدخال ld% أو lf% بين مزدوجتين "" لكي نبين إن كنا نريد من المستخدم إدخال عدد صحيح أو عشري ثم بعد ذلك يجب أن ذكروا إسم المتغير بعد الفاصلة ثم إضافة الركز &.
مثلا:

كود PHP:

scanf("%ld", &age);  

لا يجب وضع سوى ld% أو %lf بين المزدوجتين .
لكن يجب وضع الرمز & أمام إسم المتغير الذي سيتلقى القيمة .

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


أسئلة الدرس :

1/ بين هذه المتغيرات من هو المتغير الخاطئ:

-positionMeNuS
-largueurFenêtre
-age_du_capitaine 

2/ من هو نوع المتغير الذي سيمكننا من حفظ هذا العدد :76.8:

-char
-long
-double
-int

3/ لنفترض أن لدي متغيرا "bank" ذو القيمة 65000004 ماذا سيظهر هذا السطر في الشاشة :

كود PHP:

printf("Vous avez %ld euros sur votre compte", compteEnBanque);  

-Vous avez %ld euros sur votre compte
-Vous avez 6 500 000 euros sur votre compte
-Vous avez d euros sur votre compte, compteEnBanque


تمرين الدرس

من الآن فصاعدا سأقوم بوضع تمرين لكل درس بما أننا بدأنا في لغة سي فعلا و تمرين اليوم هو :

أكتب برنامجا يطلب من المستخدم عمره و شهر ميلاده و يوم ميلاده و سنة ميلاده و يظهرها على الشكل التالي :

مرحبا بك أيها المستخدم ,من خلال ما أدخلت فأنت ذو العمر 16 ولدت في 1/8/1976.
عد في العام المقبل لتتحرى عمرك .

و إنتهى درسنا .

إنتظروا الدرس القادم تحت عنوان : العمليات الحسابية في لغة سي .


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

في هذا الدرس سنتعلم كيفية القيام بمختلف العمليات التي يعرفها حاسوبكم و سنستعمل ما تعلمناه في الدرس السابق ألا و هو المتغيرات . الفكرة و المحور الرئيسي الذي تدور عليه كلمة "العمليات الحسابية في لغة C" هو جمع المتغيرات ببعضها , ضربها , تخزين الناتج في متغير آخر ...إلخ.

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

عنوان درسنا:


العمليات القاعدية
الإختصارات
المكتبة الرياضية La librairie mathématique




العمليات القاعدية :

الشيئ الذي يجب معرفته هو أن الحاسوب هو عبارة عن آلة حاسبة متمكنة و ممتازة , طالما هو يعرف العمليات البسيطة:

الجمع
الضرب
الطرح
القسمة
* Modulo (سأقوم بشرحه فيما بعد)

إذا أردتم القيام بعمليات معقدة (الأس , الخوارزميات , الجذور المربعة...) يجب عليكم برمجتهم أي يجب تعريفهم للحاسوب .
من حسن حظنا , وهذا ما سنراه في بقية الدرس , أن هناك مكتبة رياضية تضم مجموعة من الدوال الرياضية الجاهزة. إذا فلن تحتاجوا لإعادة كتابتهم , إلا إذا كنتم أساتذة رياضيين فهذا الحل ممكن أيض ا.

لنبدأ الآن بعملية الجمع.
لكي نقوم بعملية الجمع , سنستعمل الرمز +(إنني لا أمزح )
و يجب عليكم وضع الناتج في متغير آخر . إذا نسقوم مثلا بإستدعاء متغير و لنسمه "Resultat" أي ناتج من نوع Long و يكون الناتج على هذا الشكل:

كود PHP:

long Resultat = 0; 

Resultat = 5 + 3;  

لا يتطلب منك الأمر أن تكون محترفا لكي تخمن أن المتغير "Resultat" سيأخذ القيمة 8 أثناء التشغيل .

بالطبع لا شيئ يظهر في الشاشة مع هذا الكود .لكن إذا أردتم رؤيت قيمة المتغير , أضيفوا الدالة Printf كما تعلمت أن تفعلوا في الدرس السابق :

كود PHP:

printf("5 + 3 =  %ld", Resultat);  

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

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

إذا كنتم قد إستعملتم الآلة الحاسبة في جهازكم فستعرفون هذه الرموز حق معرفنها .
ليس هناك أية صعوبة فيما يخص العمليات, بإستثناء الإثنين الأخيرين (القسمة و Modulo). لذلك خصصت لهم فقرة لنتحدث عن كل واحدة بدقة .


القسمة

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

لنأخذ الآن مثالا آخر لقسمة لها باقي مثل : 2 / 5.
2 / 5, تعطينا إذا قمنا بحسابها جيداتساوي 2.5

و مع ذلك أنظروا لهذا البرنامج ماذا يفعل:

كود PHP:

long resultat = 0; 
    
resultat = 5 / 2; 
printf ("5 / 2 = %ld", resultat);  

هناك مشكل كبير. طلبنا من الحاسوب أن يقوم ب 2 / 5, فكنا ننتظر منه أن يعطينا 2.5 كنتيجة, لكن هذه الآلة الحاسبة المتمكنة و الممتازة أعطتنا 2!!!!

ما هذا؟؟؟ هل أجهزتنا غبية لهذا الحد ؟
في الحقيقة, عندما يرى الأعداد 5 و 2, يقوم الحاسوب بقسمة لأعداد صحيحةهذا يعني أنه سيخطئ في النتيجة لأنه لا يحتفظ إلا بالطرف الصحيح(2).

آه أستاذ..استاذ أنا أعرف ! هذا لأننا إستعملنا المتغير Resultat من نوع long ! لو كان من النوع double, لإستطعنا أن نخزن قيمة عشرية !!!

و مع ذلك
جربوا نفس الكود السابق مع تغيير نوع المتغير الذي نخزن فيه النتيجة إلى النوع double, و سترون أن النتيجة لا تتغير

إذا أردنا من الحاسوب أن يعطينا النتيجة الصحيحة, يجب علينا تغيير أعداد العملية 5 و 2 إلى أعداد عشرية, أي أن نكتب 5.0 و 2.0 (إنها نفس الأعداد السابقة, لكن بالنسبة للحاسوب فهي أعداد عشرية, لذلك فهو يقوم بقسمة لأعداد عشرية):

كود PHP:

double resultat = 0; 
    
resultat = 5.0 / 2.0; 
printf ("5 / 2 = %lf", resultat);  

العدد الناتج الآن صحيح.

لكن ستسألونني, كيف يمكننا معرفة الباقي في القسمة؟
هنا يتدخل الخارق: Modulo .

MODULO

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

Modulo, كما قلت يمثل بالرمز %.
إليكم بعض الأمثلة :

5 % 2 = 1
14 % 3 = 2
4 % 2 = 0

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


العمليات بين المتغيرات :


الشيئ المهم الآن, بعد أن تعرفتم إلى العمليات الخمس القاعدية , سنقوم الآن بالتدرب على بعض العمليات الأكثر أهمية.
في الحقيقة لا شيئ يمنعنا من فعل :

كود PHP:

resultat = nombre1 + nombre2;  

هذا السطر يقوم بجمع قيمتي المتغيرين nombre1 و nombre2, و يخزن الناتج في متغير آخر "resultat".


تخيلوا معي برنامجا يطلب من المستخدم رقمين . هذه الأرقام, نخزنها في متغيرات.
ثم, نقوم بجمع هذه المتغيرات, و نخزن الناتج في متغير آخر و لنسمه "resultat".

و من ثم لا عليكم سوى إظهار الناتج على الشاشة.

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

كود PHP:

int main(int argc, char *argv[]) 

  long resultat = 0, nombre1 = 0, nombre2 = 0; 
  
  // نطلب من المستخدم إدخال رقمين :
  
  printf("Entrez le nombre 1 : "); 
  scanf("%ld", &nombre1); 
  printf("Entrez le nombre 2 : "); 
  scanf("%ld", &nombre2); 
  
  // نقوم بالعملية:
  
  resultat = nombre1 + nombre2; 
  
  // نظهر ناتج الجمع:
  
  printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat); 
  
  system("PAUSE");       
  return 0; 
}  

هنا قمنا بعمل أول برنامج مهم حتى الآن ...أليس كذلك ؟

أنصحكم بأن تقوموا بنفس العملية مع العمليات الأخرى...
يمكنكم أيضا إضافة متغير آخر ليقوم الحاسوب بجمع متغيرات ثلاث و الطريقة تعمل %100:

كود PHP:

resultat = nombre1 + nombre2 + nombre3;  

الإختصارات:


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

يوجد في لغة تقنيات تمكننا من إختصار كتابة العمليات.
و لماذا نستعمل الإختصارات؟لأننا, غالبا, نستعمل عمليات متكررة. ستفهمون ما أعنيه و ذلك بعد أن تتعرفوا على ما نسميه ب:incrémentation .

incrémentation

في غالب الأحيان ستحتاجون إلى زيادة 1 إلى المتغير. مهما كان نوع البرنامج, ستكون هناك متغيرات تزداد قيمتها واحدا بواحد.
تخيلوا معي متغيرا إسمه "N". هل تستطيعون إضافة 1 على المتغير, دون معرفة القيمة التي يحتويها؟
إليكم الطريقة :

كود PHP:

N = N + 1;  

ماذا هناك؟ نقوم بحساب N+1 ثم نخزن الناتج في N !!! أجل, إذا كانت قيمة المتغير N 4 فهي الآن 5 و إذا كانت 8 فهي الآن 9 ...

تعتبر هذه العملية تكرارية. المتخصصون في هذا المجال لن يتركونا كالحمقى نكتب إسم المتغير مرتين
و هكذا قاموا بعمل إختصار لهذه الكتابة التي نسميها incrémentation. الكود الذي في الأسفل يفعل نفس الشيئ كالذي في الأعلى :

كود PHP:

N++;  

هذه الطريقة فعالة خصوصا ف;ي المستقبل فكما قلت سنكون مضطرين إلى إضافة 1 إلى المتغير.
كما لاحظتم لدينا الرمز : ++ الذي يوجد أيضا في إسم لغة البرمجة المشهورة : ++C. أظنكم فهمتم من أين أتى هذا الإسم العجيب فهو يعني لغة معدلة و مطورة (1+).

décrémentation

و هي عكس زيادة 1 أي : ننقص 1 من قيمة المتغير.
النقصان عندما نكتبه بصيغته الكاملة :

كود PHP:

N = N - 1;  

و بصيغته المختصرة :

كود PHP:

N--;  


إختصارات أخرى

 



يوجد العديد من الإختصارات و التي تعمل على نفس المبدأ السابق. لكن هذه المرة هذه الإختصارات تعمل على جميع العمليات : + - * / %.
و تمكننا الإختصارات من التخلص من تكرار إسم المتغير المراد إجراء العملية عليه عدة مرات. كذلك إذا أردتم ضرب متغير في 2 :

كود PHP:

N = N * 2;  

و يمكنكم كتابتها بطريقة مختصرة :

كود PHP:

N *= 2;  

إذا كان المتغير يحمل القيمة 12 فسيحمل القيمة 24 عند نهاية الأمر.
بالنسبة لباقي العمليات فهي تقام بنفس الطريقة. إليكم برنامجا مصغرا كمثال :

كود PHP:

long N = 2; 

N += 4; // N = 6... 
N -= 3; // ... N = 3 
N *= 5; // ... N = 15 
N /= 3; // ... N = 5 
N %= 3; // ... N= 2  

هيا!!!!!! فكروا قليلا, فالتفكير لم يقتل أحدا يوما.
ما يجب تذكره هو أن الزيادة ب1 يبقى الإختصار الأكثر إستعمالا.

إنتهى


 


 

شارك المقالة