المتابعون للمدونة

الأربعاء، 15 مارس 2017

الثوابت Constants


الثوابت Constants:

يتشابه الثابت والمتغير في أمور كثيرة:
1- فكلاهما مخزن في الذاكرة توضع فيه قيمة معينة.
2- وكلاهما يمكن قراءة قيمته واستخدامها في البرنامج.
3- وكلاهما له نوع بيانات خاص به من بين أنواع البيانات التي تعرفنا عليها (Integer، Boolean، String... إلخ)

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

ويوجد نوعان من الثوابت في فيجيوال بيزيك: الثوابت الجوهرية Intrinsic Constants، والثوابت المسماة.

1- الثوابت الجوهرية Intrinsic Constants:
وهي ثوابت جاهزة معرفة داخل فيجيوال بيزيك نفسها، ويمكنك استخدامها مباشرة، مثل الثابت vbCrLf الذي يمثل سطرا جديدا ضمن النص.. ولتجربة هذا الثابت، افتح مشروعا جديدا، وضع مربع نص وزرا على النموذج، واكتب ما يلي في حدث ضغط الزر:

TextBox1.AppendText("مرحبا ")
TextBox1.AppendText(vbCrLf)

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

هذا يوضح لك وظيفة الثابت vbCrLf، وأنه فعلا يمثل سطرا جديدا.. لاحظ أن السطر الجديد هو نص String يتكون من حرفين:
- الحرف الأول يوضع في نهاية السطر الحالي، ويمثله الثابت vbCr.
- والحرف الثاني يوضع في بداية السطر الجديد، ويمثله الثابت vbLf.
وقد تم دمج الحرفين معا في ثابت واحد هو vbCrLf.

كما توجد ثوابت أخرى في فيجوال بيزيك مقسمة إلى أنواع تسمى المرقمات أو التعبيرات الرقمية Enums.. الحكمة في هذا هي جمع كل الثوابت المرتبطة معا تحت اسم عام واحد.. وكمثال على هذا مرقم الألوان Color Enum.. هذا المرقم يحتوي على عشرات الثوابت التي تمثل الألوان المختلفة، مثل: 

الثابت
معناه
Color.Black
اللون الأسود
Color.Blue
اللون الأزرق
Color.Brown
اللون البني
Color.Gold
اللون الذهبي
Color.Red
اللون الأحمر
Color.Yellow
اللون الأصفر
Color.White
اللون الأبيص

لاحظ أننا نسبنا كل ثابت إلى المرقم الخاص به، وذلك بوضع نقطة بينهما.. يمكنك اعتبار المرقم كائنا Object، والثوابت الموجودة داخله خصائص Properties تابعة له.

والمثال التالي يغير لون خلفية مربع النص إلى اللون الأحمر:
TextBox1.BackColor = Color.Red 

2- الثوابت المسماة:
وهي ثوابت خاصة بك تقوم بتعريفها بنفسك، وإعطائها القيم التي تريدها، تبعا لاحتياجك في البرنامج.
ويتم تعريف الثابت على مستوى النموذج (خارج الدوال والإجراءات ومعالجات الأحداث) باستخدام الكلمة Const مع وضع قيمته في نفس السطر كالتالي:

Const MyValue As Integer = 10
Const MyPercent As Double = 0.71
Const MyName As String = "Ali" 

أو باختصار:

Const MyValue = 10I
Const MyPercent = 0.71R
Const MyName = "Ali"

حيث I هو اختصار تفهم منه فيجيوال بيزيك أنك تريد التعامل مع عدد صحيح، و R هو اختصار للعدد المزدوج، بينما لا يحتاج النص إلى اختصار.. والجدول التالي يلخص أنواع الاختصارات الرقمية المستخدمة في فيجيوال بيزيك:
 

الاختصار
النوع
S
Short
I
Integer
L
Long
D
Decimal
F
Single
R
Double

 

لاحظ أنك لو حاولت كتابة سطر من الكود يقوم بتغيير قيمة الثابت MyValue فستعطيك فيجوال بيزيك خطأ.. هذا الكود مرفوض في أي موضع في برنامجك:
MyValue = 12

يمكنك فقط أن تقرأ قيمة هذا الثابت وتستخدمها في أية عملية.. والمثال التالي يعرض قيمة الثابت في رسالة:
MsgBox(MyValue)

لو جربت هذا المثال في حدث ضغط أي زر، فستعرض الرسالة الرقم 10.. لاحظ أن الحرف I لن يظهر في الرسالة، لأنه مجرد اختصار موجه إلى فيجيوال بيزيك أثناء كتابة الكود، لتفهم منه أن نوع الثابت عدد صحيح Integer، ولا يؤثر هذا أثناء تشغيل البرنامج على القيمة التي يتم حفظها في هذا الثابت، وهي العدد 10. 

من كتاب المبرمج الصغير للصف الثالث الإعدادي (الفصل الدراسي الثاني).. للتنزيل كاملا:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر