Professional Documents
Culture Documents
ان Visual Basicشخصية اصيلة معتزة بامجادها وتاريخها ،فما زالت Visual Basicمحتفظة بسمات
لغة البرمجة BASICالتي تصنف من لغات البرمجة العليا ، High level programming language
لغة BASICهي روح لغة البرمجة Visual Basic ،وهي اللغة التي زادت من اسهم وشعبية Visual
Basicالى جانب مصمم النماذج .Form Designerفمعظم الصيغ Syntaxالتي ظهرت بها اللغة
منذ بداية الستينات مازالت مدعومة بشكل جيد في احدث اصدارات Visual Basic .ليس هذا فقط،
بل اضيفت اليها العشرات من الدوال والصيغ البرمجية حتى تالئم قوة Visual Basicوتحاكي تطبيقات
Windowsفي امكانياتها.
المتغيرات والثوابت
المتغيرات والثوابت هي اساس أي لغة برمجة .إن استيعاب انواع المتغيرات من المسائل الضرورية
التي تمكنك من اختيار االنواع المناسبة للمتغيرات سواء الرسالها الى الدوال او إلجراء العمليات
الحسابية عليها .بودي التحدث عن مبدئا قابلية الرؤية وعمر الحياة قبل الخوض في تفاصيل
المتغيرات.
اما عمر الحياة LifeTimeللمتغير ،فهي تمثل الفترة التي يظل فيها المتغير محتفظا بقيمته،
فالمتغير Xالموجود في الكود السابق ،سينتهي ويزال تلقائيا من الذ اكرة بمجرد الخروج من االجراء
.Sub1ولكي تفهم االسلوب الذي يتبعه Visual Basicلتطبيق مبدأ قابلية الرؤية وعمر المتغيرات،
عليك معرفة انواع المتغيرات من منظور الرؤية وعمر الحياة:
الناتج من عملية الطباعة Printفي الكود السابق لن يكون كما هو متوقع" الشركة التجارية"،
فالمتغير المستخدم في السطر الثاني هو sConpanyNameوليس sCompanyNameوهذا الخطأ
كفيل في نمو الشوائب البرمجية Bugsفي برامجك.
سبب آخر قد يجعلك تحبذ االلتزام بعملية التصريح وهو ان جميع المتغيرات تكون من النوع Variant
ان لم يتم تصريح نوع غير ذلك ،والنوع Variantهو ابطأ انواع المتغيرات كما سيأتي الحقا.
في مثالنا السابق؛ يؤدي فرض االعالن عن المتغيرات Option Explicitإلى االعالن عن خطأ و توقف
البرنامج .وفي جميع الحاالت فإن الخطأ في كتابة اسم المتغير أو اسناد قيمة إلى متغيرات لم
يتم االعالن عنها مسبقا سيتتسبب في اإلعالن عن خطأ ،وسيتوقف البرنامج ايضا.
مالحظة :توفر لك بيئة التطوير المتكاملة IDEخيار يلزمك بعملية التصريح أي بكتابة الكلمة المحجوزة
Option Explicitفي جميع وحدات برامجك كنوافذ النماذج ،ملفات البرمجة ....الخ .لتفعيل االختيار،
حدد االختيار Require Variable Declarationمن خانة التبويب Editorفي صندوق الحوار.Options
اخيرا ،القيمة االبتدائية للمتغير العددي المصرح هي ، 0والحرفي يكون قيمة حرفية خالية "" ،اما
الكائنات فهي ال شئ .Nothing
2
)( Sub PrintData
Print sName
Print iAge
End Sub
اما اذا كنت تريد تعريف متغيرات عامة قابلة للوصول من جميع انحاء المشروع ،فالكلمة المحجوزة
Publicتفي بالغرض:
في ملف برمجة ‘
Public iNumberOfUsers As Integer
في نافذة نموذج‘ Form1
Public sCurrentUser As String
المتغيرات
نستطيع ان نعرف المتغيرات بمنظورين ،بالمنظور الرياضي يعرف المتغير على انه مجهول س يحتوي
على قيمة معينة ،اما بالمنظور البرمجي– وهو االهم – يعرف المتغير على انه قيمة تحفظ في
ذاكرة الجهاز .وتختلف المساحة المحجوزة لحفظ هذه القيمة باختالف نوع المتغير ،فمتغيرمن النوع
Byteال يستهلك سوى بايت واحد من ذاكرة الحاسب ،في حين أن متغير من نوع Stringقد يحجز
مساحة تصل الى 2جيجابايت .وفيما يلي عرض لجميع انواع المتغيرات المدعومة من قبل :Visual
Basic
المتغيرات من النوع:Byte
يستطيع هذا النوع االحتفاظ باي قيمة صحيحة ضمن المجال العددي ] [ 0 , 255وهو اصغر انواع
المتغيرات اذ ال يحتجز سوى 1بايت .
المتغيرات من النوع:Long
المتغيرات من نوع Longتستطيع حمل قيم عددية صحيحة في المجال
3
] [ 2,147,483,648 , 2,147,483,647فهي تحجز مساحة قدرها 4بايت للمتغير الواحد ،فهي
تحمل قيم كبيرة جدا مقللة الخوف من ظهور خطأ وقت التنفيذ . Overflow
المتغيرات من النوع:Boolean
المتغيرات من النوع Booleanهي نفس المتغيرات من النوع Integerولكن القيم التي تمكنك من
اسنادها اليها تكون اما False 0او ، - True 1حجم المتغيرات من النوع Booleanمثل حجم
المتغيرات من النواع Integerأي 2بايت ،اال انها ال تستخدم سوى 1بت متجاهلة ال 15بت االخرى
.صحيح ان الحجم 2بايت يعتبر زيادة غير مستخدمة ،اال ان المتغيرات من النوع Booleanتسهل
عليك عملية قراءة وفهم االكواد.
المتغيرات من النوع:Single
مجال القيم التي يمكن للمتغيرات من النوع Singleاحتوائها هو االعداد الموجبة من
1.401298e-45الى 3.402823e38او االعداد السالبة من -3.402823e38الى
-1.401298e-45وتستهلك مساحة 4بايت .ربما يفضل معظم مبرمجي Visual Basicالنوع Single
على النوع Doubleالعتقادهم ان األول اسرع في التنفيذ من الثاني ،هذا االعتقاد صحيح في النوع
القديم من المعالجات والتي ال تحتوي على مساعد رياضي Math Coprocessor،
اما اغلب المعالجات الجديد تحتوي على المساعد الرياضي وهو خاص بالعمليات الحسابية لالعداد
ذات الفاصلة العائمة Floating Pointمما يجعل السرعة متقاربة جدا بين النوعين Singleو Double
.
المتغيرات من النوع:Double
مجال القيم التي يمكن للمتغيرات من النوع Doubleاحتوائها هو االعداد الموجبة
من 4.9406564581247e-324الى 1.79769313486232e308او االعداد السالبة
من -4.9406564581247e-324الى -1.79769313486232e308وتستهلك
مساحة 8بايت .معظم دوال Visual Basicالخاصة باالعداد تعود بقيمة من النوع Doubleلذ لك هو
النوع المفضل دائما ،اال ان عيبه الوحيد هو في المساحة الكبير التي يحتجزها ،وقد يظهر هذا العيب
جليا في المصفوفات الكبيرة من النوع .Double
المتغيرات من النوع:Currency
يمكن للمتغيرات من النوع Currencyاالحتفاظ بقيم عشرية للفاصلة الثابتة Fixed-Point
شريطة ان تكون محصورة في داخل المجال ، [- 922,337,203,685,477.5808
] 922,337,203,685,477.5808وحجمها 8بايت ايض ا .يوفر هذا النوع من المتغيرات
عناء التقريب باستخدام دوال التقريب ك Fix .... ، Roundالخ والتي تستخدمها بكثرة مع المتغيرات
من النوع Doubleو Singleمما يبطئ العمليات الحسابية ،مع ذلك االستخدام المجرد للمتغيرات
من النوع Currencyابطأ خمس او اربع مرات من المتغيرات Doubleو Singleفال تستخدمها بكثرة
في حالة تطبيق آالف العمليات الحسابية عليها.
4
المتغيرات من النوع :Date
هذا النوع من المتغيرات يحمل قيم تاريخية تبدأ من التاريخ 1كانون الثاني 100الى 31
كانون االول 9999ويشمل نفس المتغير وقت يبدأ من الساعة 00:00:00ص حتى الساعة
23:59:59م وتستهلك مساحة 8بايت .
5
المتغيرات من النوع :Variant
ظهرت المتغيرات من النوع Variantفي االصدار ، VB3ويستطيع حمل جميع انواع البيانات السابق
ذكرها مثل String .... ،Date ،: Longالخ .الحجم الذي يستهلكه المتغير Variantهو 16
بايت،البايت االول يحدد نوع القيمة الموجودة في المتغير ،والبايتات من 2الى 7ال تستخدم اال في
حالة كون القيمة من النوع ، Decimalاما البايتات من 8الى 15فهي تمثل القيمة التي يحملها
المتغير.
الميزة التي تتميز بها المتغيرات من نوع Variantليس فقط في امكانية اشتمالها على انواع مختلفة
من البيانات بل واجراء العمليات الحسابية او المنطقية عليها ،حيث يقوم Visual Basicباختبار نوع
المتغيرات ومن ثم اجراء العملية الحسابية او المنطقية المناسبة لها:
Dim X As Variant
Dim Y As Variant
Dim Z As Variant
قيمة من النوعX = 2000 ‘ Integer
قيمة من النوعY = CLng(2000) ‘ Long
قيمة من النوعZ = X + Y ‘ Long
قيمة من النوعX = CDbl(2.5) ‘ Double
قيمة من النوعZ = X + Y ‘ Double
ال تحاول االعتماد على الطرق السابقة بشكل استثنائي ،فقد تعطيك نتائج غير متوقعة ،كما
المتغيرات من هذا النوع ابطئ انواع المتغيرات.
الثوابت
ابسط انواع الثوابت هي الثوابت العددية والتي يمكنك كتابتها مباشرة بالنظام العشري Decimalاو
باضافة البادئة & Hللنظام الستعشري Hexadecimalاو البادئة & Oللنظام الثماني:
جميع االعداد التالية تساوي‘ 15
Print 15
Print &HF
Print &O17
من الضروري ان انبه هنا بان جميع االعداد المستخدمة في النظام الستعشري Hexadecimalآ، 0
.... 2 ،E ، F ،1والنظام الثما ني Octalوالتي تكتبها في اكوادك تعتبر في نظر Visual Basicاعداد
من النوع Integer
فكرة الثوابت المسماة شبيهه بفكرة المتغيرات ،ويكمن الفرق بينهما في أن قيم الثوابت اليمكنك
تعديلها وقت التنفيذ النها قيم ليست موجودة بالذاكرة كقيم المتغيرات ،وانما يتم استبدال هذه
االسماء بقيمتها الفعلية في الكود اثناء عملية الترجمة ، Compilingفالثوابت تحفظ مباشرة في
الملف التنفيذي EXEللبرنامج.
تستطيع تعريف ثابت جديد باستخدام العبارة:Const
Const PI = 3.14
Print PI
كما يفضل تعريف نوع الثابت لزيادة سرعة التعامل معه:
6
Const PI As Double = 3.14
”Const PROGRAMMER_NAME As String = “Computer department
&Const SPECIAL_VALUE As Long = &H32FE
العمليات الحسابية
الجدول التالي يبين العمليات الحسابية حسب االسبقية.
7
التحكم في سير البرنامج
اوSelect وIf من االجراءات لن تكون ذات قيمة معنوية كبيرة مالم تستخدم عبارات التفرع%90
الفقرات التالية تشرح، لتتحكم في سير البرنامجDo … Loop اوFor … Next الحلقات التكرارية ك
.Looping Statements وعبارات التكرارBranch Statements عبارات التفرع
IFالتفرع باستخدام
وحسب وانما في جميع لغاتVisual Basic ليس في، الجميلة ال يستغني عنها اي مبرمجIf جملة
وهي تنجز اما في، من اكثر العبارات استخدام ا في البرنامجIf ومما ال شك فيه تعتبر. البرمجة
:عدة سطور- سطر واحد او– المفضل
‘في سطر واحد
If X > 0 Then Y = 0
If X > 0 Then Y = 0 Else Y = X
8
9