شرح تعريف المتغيرات في برنامج فيجوال بيسيك Visual Basic
أنواع المتغيرات في فيجوال بيسيك Visual Basic
هنالك العديد من أنواع المتغيرات في فيجوال بيسيك، لكن سنعرض منها فقط
أربعة متغيرات رئيسية وهي على النحو التالي:
1- العدد الصحيح Integer
2- العدد الحقيقي Double
3- النص String
4-
الجبر البولي Boolean
تعريف المتغيرات في فيجوال بيسيك
يتم تعريف المتغيرات في بيئة الفيجوال بيسيك على النحو التالي:
Dim اسم المتغير As نوع المتغير
فمثلا، إذا أردنا تعريف المتغير x على أنه عدد صحيح، فنكتب الأمر
Dim x As Integer
أما إذا أردنا تعريف المتغير y
على أنه عدد حقيقي
Dim y As Double
أولا: العدد الصحيح Integer
يطلق على الأعداد التي لا تشمل في
قيمها على أعشار أو كسور اسم الأعداد الصحيحة. وهي مجموعة الأعداد:
… , -4 , -3 , -2 , -1 , 0 , 1 , 2 , 3 , 4 , …
فإذا أردنا تخزين أي من تلك الأعداد
داخل المتغير Z، فيجب تعريف هذا المتغير على أنه عدد صحيح
بحسب الصيغة التالية:
Dim Z As Integer
مثال على تخزين وطباعة الأعداد الصحيحة
في فيجوال بيسيك:
قم بكتابة كود (أوامر برمجية)
لتخزين العدد 7 داخل المتغير Z
وطباعة قيمة ذلك المتغير على شاشة الحاسوب؟
بما أن العدد المطلوب تخزينه داخل
المتغير Z هو عدد صحيح، فيجب تعريف المتغير Z على أنه عدد صحح أيضا. ومن هنا نجد أن الحل لهذا المثال هو:
Dim Z As Integer
Z = 7
Print Z
ثانيا: العدد الحقيقي Double
يطلق على جميع الاعداد التي نعرفها
باسم الأعداد الحقيقية، وتلك الأعداد تشتمل على الأعداد الصحيحة، الأعداد الكسرية،
الأعشار، الجذور، الأعداد غير النسبية وغيرها من الأعداد التي قد تستخدم في
عالمنا. ومن الأمثل على تلك الأعداد:
في هذا المثال، العدد 3.14 هو عدد
غير صحيح، بل هو عدد حقيقي، وبما أن المتغير R سيقوم باحتواء وتخزين العدد الحقيقي 3.14 لذا وجب تعريف المتغير R على أنه من
النوع متغير حقيقي أي Double كما في الكود
البرمجي التالي:
Dim R As Double
R = 3.14
Print R
ثالثا: النص String
يطلق على جميع الأعداد والأحرف والرموز
المطلوب اظهارها كما هي بدلا من اظهار قيمها باسم النص، أي String.
مثال: قم بتخزين وطباعة الاسم Ahmad داخل المتغير النصي S ؟
Dim S As String
S = “Ahmad”
Print S
ويجب مراعاة وضع علامتي التنصيص عند
الاسم المطلوب تخزينه أي في حال النصوص
لكي نقوم بالتوضيح أكثر أنظر المثال
التالي:
‘قم بتعريف المتغير S على أنه متغير من النوع
نص’
|
Dim S As String
|
‘قم بتخزين العبارة Hello World! بداخل المتغير النصي S ‘
|
S = “Hello World!”
|
‘سيطبع على الشاشة محتويات المتغير S وهي العبارة
Hello World! ‘
|
Print S
|
‘سيطبع الحرف S على
الشاشة كما هو’
|
Print “S”
|
نلاحظ في مثالنا السابق استخدام
علامتي التنصيص " " عند وضع النص داخلهما، وذلك لمعرفة بداية النص
ونهايته، إضافة الى التمييز بين طباعة رمز المتغير وطباعة محتوى ذلك المتغير.
مثال على المتغير النصي String مع علامات التنصيص: قم بطباعة جدول الضرب للعدد 7 لأول خمسة
أرقام؟
في هذا المثال، قد لا تضطر الى تعريف
متغير نصي، بل العمل مباشرة بأمر الطباعة Print مع علامات التنصيص كما في
الكود التالي:
Print “7 X 1 =
”; 7 * 1
Print “7 X 2 =
”; 7 * 2
Print “7 X 3 =
”; 7 * 3
Print “7 X 4 =
”; 7 * 4
Print “7 X 5 =
”; 7 * 5
علما أن إشارة النجمة * تعني
الضرب في لغة الفيجوال بيسيك. أما الفاصلة المنقوطة ;
والتي يطلق عليها Semicolon
فهي للفصل بين النص المطبوع والقيم الحسابية التي تليها.
والشكل التالي يوضح القيم المطبوعة
على الشاشة للمثال السابق:
سؤال: ماذا لو طلب منا طباعة جدول الضرب
للعدد 7 لأول مئة رقم؟ أي
7 X 1 , 7 x 2 , … 7 x 100 !!
في هذه الحالة لا نستخدم تكرار
الجمل السابقة، بل نلجأ الى ما يعرف بالدورات Loops وهي على عدة أشكال، حيث سنتطرق اليها لاحقا.
رابعا: الجبر البولي Boolean
عندما يتم تعريف متغير على أنه متغير بولي أو منطقي أي لا يأخذ الا
قيمتين متضادتين، فإننا نعرفه على أنه متغير بولي.
مثال: قم بتخزين وطباعة المتغير البولي B
التي قيمته "صحيح"
Dim B As Boolean
B = True
Print B
Print Not B
نلاحظ من الكود أعلاه أن الشاشة ستظهر عليها القيمة True أولا، والناتجة من تنفيذ الأمر Print B، ثم سيتم طباعة معكوس القيمة True كما في
الأمر Print Not B لتظهر الكلمة False
بعد الكلمة True.
إذ أن الكلمة Not تقوم بنفي القيمة التي بعدها أي تغيير قيمة
المتغير البولي B من True الى False كما في الشكل التالي:
- ما الفرق بين العدد الصحيح Integer والعدد الحقيقي Double في بيئة الفيجوال بيسيك؟
قد يتساءل العديد: لماذا لا نستخدم التعريف Double ليحل محل التعريف Integer
في جميع الحالات؟ ومن هنا تأتي الإجابة التالية، نعم نستطيع، لكن سيتم حجز مكان في
الذاكرة في حالة الـ Double بضعف المساحة التي يحتاجها
المتغير من نوع Integer. إذ أنه في حالة الـ Double يتم حجز ذاكرة بمقدار 8 بايت، أم في حال Integer
فإنه يحجز مساحة تخزينية بمقدار 4 بايت فقط. ومنه
سيزداد حجم البرنامج الذي سيتم تصميمه بازدياد أعداد تلك المتغيرات واستخدامها.
لذلك، لا يفضل تعريف المتغيرات التي من النوع عدد صحيح Integer
على أنها عدد حقيقي Double.
- هل يمكن تخزين العدد الحقيقي 3.14 داخل متغير من نوع Integer؟
وماذا يحدث؟
نعم، يجوز تخزين العدد العشري 3.14 داخل متغير من نوع عدد صحيح Integer،
إلا أنه سيتم تقريب القيمة العشرية من العدد 3.14 ليصبح العدد الصحيح 3. أما إذا
أردنا تخزين القيمة 4.7 داخل متغير من نوع Integer
فسيتم تخزينه على أنه العدد المقرب 5.
شروط تسمية المتغيرات
هنالك شرطان لتسمية المتغيرات في فيجوال بيسيك:
1- أن يبدأ المتغير في حرف (بالإنجليزية)
مثل المتغيرات x , x2 , r23d, Ahmad
فجميعها أسماء متغيرات صالحة وقابلة للتعريف.
2- أن لا يشتمل على رموز، فالمتغيرات
التالية D@ , r! , x% هي جميعها أسماء لا تصلح لأن تكون أسماء متغيرات
في بيئة الفيجوال بيسيك. ويظهر لك عبارة الخطأ Expected:
identifier.