السبت، 6 سبتمبر 2014
9:42 ص

الدرس ألـــ11 من دورة احتراف الفجوال بيسك 6 ( المتغيرات و الثوابت و المعاملات) شرحها بالتفصيل (ألقسم ألاول )

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

مقدمــــــــــــــة : 

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

ولكي هذان المثالين ليوضح لك وظيفة كل من المتغيرات والثوابت ..


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

كود:
HisName$=InputBox$("اكتب اسم العميل")
في هذا المثال سيعرض فيجول بيسك علي المستخدم مربع حوار نتيجة لتنفيذ أمر InputBox$ يطالبه فيه بكتابه اسم العميل ويقوم بحفظ اسم العميل الذي يدخله المستخدم في المتغير HisName$ ويبقي المتغير HisName$ يحمل هذا الاسم حتى يقوم المستخدم بتغيره ويتم تغير القيمة التي يحملها المتغير HisName$ بوضع قيمة أخري داخلة فيقوم الفيجول بيسك باستبدال القيمة القديمة بالقيمة الجديدة .
الثوابت . إذا كان عملك يتطلب مجموعة من العمليات الحسابية ترتبط بوحدة ثابتة مثل وحدة القياس المتر وهو يساوي مائه سنتمتر فيمكن الإعلان عن ذلك بالأمر التالي:
كود:
Const Meter=100
(مداخلة : التعريف يتم في القسم General).

وهذه يفيدك عندما تكون جميع حساباتك بالنسبة للوحدة سنتمتر فبدلا من قيمة المتر وكتابة الرقم ( 100 ) في كل مرة سيتم كتابه الثابت Meter في جميع التعليمات المطلوبة داخل البرنامج وهي فائدة كبيرة تجعل برنامجك سهلا وبسيطا.
فائدة أخري يمكن الحصول عليها من استخدام الثوابت ، فمثلاً في حالة تعديل كل حساباتك لتصبح منسوبة لوحدة الملليمتر بدلا من السنتمتر ( والمعروف أن المتر = 1000 ملليمتر ) فبدلا من إجراء هذا التعديل في جميع إجراءات برنامجك ( وهو كتابة الرقم 1000 بدلا من الرقم 100 ) يكفي أن تعدل الرقم 100 ليصبح 1000 في نفس الأمر كآلاتي .
كود:
Const Meter=1000

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

أنواع المتغيرات : 
يوجد في الفيجول بيسك أنواع كثيرة للمتغيرات نوضح منها ما يلي .
نوع المتغير Integer : عدد صحيح صغير نسبيا ــ حجمه 2 Byte ــ مداه من 32768- إلي 32767
نوع المتغير Long : عدد صحيح كبر نسبيا ــ حجمه 4 Byte ــ مداه من 2147483648- إلي 214783674
نوع المتغير Single : عدد حقيقي صغير نسبيا ( يحتوي علي علامة عشرية عائمة Floating Point ) ــ حجمه 4 Byte ــ مداه من 3.402823E38- إلي -1.401298E-45 (قيم سالبة) و من 1.401298E-45 إلي 3.402823E38 (قيم موجبة)
نوع المتغير Double : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية عائمة) ــ حجمه 8 Byte ــ مداه رقم هائل
نوع المتغير Currency : عدد حقيقي كبير نسبيا (يحتوي علي علامة عشرية ثابتة ) ــ حجمه 8 Byte ــ مداه رقم هائل
نوع المتغير Byte : عدد صغير جدا أو بيانات ثنائية ــ حجمه 1 Byte ــ مداه من الصفر إلي 255 
نوع المتغير Boolean : متغير منطقي يحمل قيمتان فقط صفر أو واحد . أو True or False ــ حجمه 2 Byte 
نوع المتغير Data : يحمل قيم تاريخه و وقت وهو من نفس نوع المتغير Double ــ حجمه 8 Byte ــ مداه من التاريخ 1 يناير 100 إلي 31 ديسمبر 9999 ومن الساعة 00:00:00 إلي 23:59:59 
نوع المتغير Object : كائنات أو فئات Classes
نوع المتغير String : سلسلة من الحروف ــ مداه من صفر إلي 65500 حرف تقريبا 
نوع المتغير Variant : الوقت/التاريخ أو عدد ذو علامة عشرية عائمة أو سلسة حروف ــ حجمه 16 Byte ــ مداه التاريخ من 1 يناير 0000 إلي 31 ديسمبر 9999 وفي الأعداد مثل Double وفي الحروف مثل String 

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

الشروط الواجب توافرها عند اختيار اسم للمتغير .. 
يجب أن يبدأ اسم المتغير بحرف أبجدي وليس رقما .
ألا يزيد عدد حروف اسم المتغير عن 40 حرفا .
ويجب ألا يحتوي علي أي مسافات أو نقاط وإذا كان اسم المتغير يحتوي علي كلمتين فأنصحك باستخدام (_) Under Score للفصل بينهما .. 
و يجب أيضا إلا يتضمن كلمة من الكلمات المحجوزة وهي الكلمات التي تستخدم في الأوامر و العبارات التي يستخدمها فيجول بيسك فمثلا لا يسمح باستخدام كلمة Print كاسم للمتغير فإذا احتجت لتسمية متغير مثل كلمة Print فيمكنك أن تكتب الكلمة كجزء من اسم المتغير PrintText مثلا .
فائدة (1) : 
يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه .المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات . 

فائدة (2) : 
يوجد نوعان من المتغير من النوع String وهي متغيرات ثابتة الطول Fixed Length و متغيرات متغيرة الطوال Variable Length . و المتغيرات الحرفية ثابتة الطوال وكما واضح من اسمها هي متغيرات محدد لها عدد الحروف في أثناء التصريح عنها ولا يمكن أن يتغير طولها وتكون بصورة التالية : 


كود:
Dim TafTaf As String * 10

و المتغيرات الحرفية متغيرة الطول تستخدم في حالة عدم معرفتك بطول المتغير المار إليها ومن عيوبها إنها تلتهم حجم كبير جدا من الذاكرة . 

كيفية الإعلان عن المتغيرات : 
عند استخدام المتغير في فيجول بيسك فأن فيجول بيسك تتعرف علي المتغير بمجرد استخدامه في الكود وهذه الطريقة مريحة لأنك لان تحتاج إلي تعريف كل متغير قبل استخدامه ألا إنها يعاب عليها شئ خطير جدا وهو انك إذا أخطأت في كتابة اسم المتغير فأن فيجول بيسك سيعتبره متغيرا جديدا فمثلا إذا أنشأنا متغيرا مثل هذا .. 
كود:
Value = 10              '   قيمة = 10Value هنا أعطينا المتغير
Text1.Text = Valu  'و هنا أخطأنا في كتابة اسم المتغير

و لحل هذه المشكلة الإعلان عن المتغير بأمر Dim مثلا . ( سنتكلم عن أوامر الإعلان عن المتغيرات لاحقا ) 

كود:
Dim Value As Integer
ولجعل فيجول بيسك لا يستخدم متغيرا إلا قبل الإعلان عنه أو بمعني اصح يجبرك للإعلان عن كل متغير تستخدمه بكتابة هذه العبارة في قسم التصاريح العامة General Declaration . بإظهار رسالة خطأ ..
كود:
Option Explicit
ولجعل هذه العبارة تكتب تلقائيا . من قائمة Tools اختر أمر Options وضع علامة صح في صندوق الاختيار أمام عبارة Require Variable Declarations من صفحة Editor أي طلب الإعلان عن أي متغير قبل استخدامه ..


نرجو التقييم للاستمرار بطرح الدورة بالكامل :) 

0 التعليقات:

إرسال تعليق