الحاسوب فصل أول

المواد المشتركة أول ثانوي

icon

المتغيرات (Variables)

عند كتابة البرامج نتعامل مع ثوابت ومتغيرات فمثلًا عند كتابة معادلة مساحة الدائرة والتي تُحسب حسب القانون الآتي: 

Area = R × R × 3.14

حيث Area هي مساحة الدائرة. 

R  هي نصف القطر

يُعتبر كل من Area and R متغيرات بينما 3.14 ثابت لا تتغير قيمته أثناء تنفيذ البرنامج 

المتغيرات هي أسماء تمثل مواقع في الذاكرة ذات قيم قابلة للتغير أثناء تنفيذ البرنامج، ويُعطى كل متغير اسم فريد لا يتكرر ضمن البرنامج، ويحدد نوع المتغير حجم الذاكرة التي سوف تخصص له.

أسماء المتغيرات:

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

  • يجب أن يبدأ اسم المتغير بحرف من حروف اللغة اللاتينية ( A – Z, a – z)، أو رمز الشرطة السفلية ( _ ) Underscore.
  • أن لا يحتوي اسم المتغير على الرموز الخاصة والفراغات، باستثناء الشرطة السفلية ( _ ) وإشارة الدولار($).
  • أن لا يكون اسم المتغير من كلمات لغة C++ المحجوزة.

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

 ومن هذه الكلمات: 

main, int, float, char, const, string, double, class, cin, if, else, for, while, default, break, continue, sizeof, switch, case, return, and, or, not.

  • يتكوّن اسم المتغير من أي عدد من حروف اللغة اللاتينية، أو رمز الشرطة السفلية، أو الأرقام.

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

الجدول الآتي يُظهر بعض أسماء المتغيرات غير المقبولة في لغة C++.

أسماء المتغيرات غير المقبولة

ملاحظة هامة:

لغة C++ تفرق بين الحرف الكبير والصغير في اللغة الإنجليزية أي أنها (حساسة لحالة الحروف الكبيرة والصغيرة)، والأسماء التالية تعتبر جميعها مختلفة من وجهة نظر لغة C++، مع أنهم يتكونون من نفس الحروف:

Speed, speed, SPEED, sPeed, SpEED

 

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

تعاملت في برنامجي إكسل وأكسس  على أنواع مختلفة من البيانات وكذلك تختلف أنواع البيانات في برمجية ++c وبناءً على اختلاف أنواع البيانات فإن أنواع المتغيرات أيضًا تختلف بحسب نوع البيانات المخزنة فيها. تحتوي لغة C++ على  أنواع مختلفة عديدة من  البيانات فمنها: الأعداد الصحيحة، والأعداد الكسرية، والرموز، والجمل النصيّة، والقيم المنطقية. والجدول الآتي يوضح بعض هذه الأنواع.

أنواع البيانات

يتم حجز مواقع للمتغيرات في ذاكرة الحاسوب بالاعتماد على نوع البيانات المستخدمة للمتغيرات وذلك للتقليل قدر الإمكان من حجز مواقع في الذاكرة بدون الحاجة لها، فنوع char الذي يخزن رمز واحد فقط لا يحتاج لأكثر من 1 Byte من الذاكرة، بينما الأعداد الصحيحة int فإنها تحتاج إلى 4 Bytes من الذاكرة.

البرنامج الآتي سيستخدم الأمر sizeof( ) لحساب الحجم الذي يحجزه كل نوع من أنواع البيانات من الذاكرة بوحدة التخزين البايت Byte ويظهر الناتج مباشرة على شاشة المخرجات. 

وناتج تنفيذ البرنامج هو: 

size of output

نلاحظ من البرنامج السابقة أنّ أول نوع من أنواع البيانات هو bool وهذا هو نوع البيانات المنطقي أي أنه يحتفظ بقيمة واحدة فقط من بين قيمتين هما True و False ويحجز Byte 1 من الذاكرة. النوع الثاني char وتحدثنا عنه قبل الحديث عن البرنامج يُحتفظ برمز واحد ويحتاج إلى 1 Byte من الذاكرة. 

الأعداد الصحيحة Int والأعداد الكسرية float تقوم بحجز 4 Byte من الذاكرة. 

بينما الأعداد الكسرية الضخمة وتسمى double فهي تحجز 8 Byte من الذاكرة . 

لاحظ أن كل الأنواع السابقة تحجز مقدارًا ثابتًا من الذاكرة ولكن string لا يفعل ذلك. فالنص الأول احتوى على حرف واحد فقط وله 1 Byte ويُضاف Byte آخر لكل نص فيصبح حجمه 2 Byte.

النص الأخير احتوى ثلاثة رموز أي 3 Byte وأُضيف له Byte فارغ فأصبح 4 Byte.

أي أن لغة C++ تقوم بإضافة رمز مخفي في نهاية كل جملة نصيّة يعبر عنه بكلمة NULL حيث أن NULL تقوم بإعلام البرنامج بأن الجملة النصيّة قد انتهت.

 

نشاط (2-7): حجم أنواع البيانات

بالتعاون مع أفراد مجموعتك نفذ البرنامج الآتي:

size of program1

وناتج هذا البرنامج هو: 

  • عدّل على الأعداد في البرنامج بزيادة 10، ثم قم ببناء وتنفيذ البرنامج.

نشاط 2 - 7 - 2

  • غيّر الحرف C في البرنامج واجعله الحرف Z، قم ببناء وتنفيذ البرنامج.

  • ماذا تلاحظ على الأحجام؟ هل تغيّرت؟ لماذا؟

         لم تتغير الأحجام بقيت ثابتة لأنها خاصة بأنواع البيانات.