الثوابت


قد يُصادفك أنك تريد أن تقوم مُتغير وإسناد قيمة ثابتة فيه لا تتغير طوال عمل البرنامج ؛ لذلك أنت تحتاج إلى الثوابت.
الثوابت
هو مُتغير تقوم بإسناد قيمة له ثابتة لا يُمكن تغييرها أبدًا.
تعريف الثوابت
تعريف الثوابت تكون باستخدام الكلمة المحجوزة Const وهى اختصار كلمة Constant أىّ ثابت.
كما يتم تحديد نوع البيانات المختزنة بالثابت عن طريق الكلمة المحجوزة AS.
Const name As Datatype = value
وتستبدل name باسم الثابت ، و Value بقيمة المتغير.
والطريقة الأفضل لكي تستطيع استخدام الثابت في جميع إجراءات البرنامج
هى تعريف الثابت كالتالى
Public const name As Datatype = value

المُتغيرات الجزء الخامس


العمليّات على الأرقام:
إن لم يكن هناك عمليات رياضية مُختلفة على مُتغيرات الأرقام فلن تكون لها أهمية ؛ لذلك توفر لك vb.net مجموعة من المعاملات التى يُمكنك منها تنفيذ عمليات رياضية على المتغيرات التى تحتوى على الأرقام أو حتى على الأرقام مباشرة بدون وضعها فى متغيرات والتى يوضحها لك الجدول التالى:
+
علامة الجمع.
-
علامة الطرح.
*
علامة الضرب.
/
علامة القسمة.. ويمكن أن يكون الناتج عددا صحيحا أو به أرقام عشريّة.. فمثلا:
X = 7 / 2
ستعطي الناتج 3.5.
\
علامة القسمة أيضا، ولكنّ الناتج هو العدد الصحيح فقط.. فمثلا:
X  = 7 \ 2
ستعطي الناتج 3.
ويمكن أداء نفس العمليّة باستخدام الدالة Int، لو شئت ألا ترتبك بين علامتي القسمة المتشابهتين، وذلك كالتالي:
X = Int (7/2)
Mod
إحدى علامات القسمة أيضا، ولكنّها تعطي الباقي من القسمة فحسب.. فمثلا:
X = 7 Mod 2
سيعطي الناتج 1، الذي هو عبارة عن باقي القسمة.
^
الأسّ.. فمثلا 2 × 2 × 2 تُكتب رياضيّا بالصيغة 2 3، وتكتب في البرمجة كالتالي:
2 ^ 3
ولو أردت أن تعبّر عن الجذر التكعيبيّ مثلا، فارفع العدد للأسّ (1 ÷ 3) كالتالي:
2 ^ (1/3)

هل تتذكر عندما كُنت بالمدرسة .. أو حتى وأنت الآن فى المدرسة ، فى مادة الرياضيات ستجد درس "ترتيب العمليات الرياضية" يجب أن تراعيه لكى يظهر ناتج العملية الرياضية بشكل سليم ، فعلى سبيل المثال:
هذه العملية:
x/n – (j + k)
هنا سوف يقوم البرنامج بحساب هذه العملية هكذا
1-           حساب قيمة جمع المتغيرين الرقميين j+k ؛ لأنه بين قوسين.
2-   طبعًا حسب ترتيب العمليات الرياضية البرنامج يقوم بحساب قسمة المتغيرين الرقميين x/n
3-           ثم بعد ذلك يقوم بطرح ناتج j+k من ناتج قسمة x/n
فلنفترض مثلاً أننا سوف نقوم بعمل المثال التالى:
10+20/2
فإذا قُمنا بجمع 10 + 20 = 30 ثم نقوم بعملية القسمة 30 / 2 = 15 ، وهذا حل خاطئ ، وسوف يخرج لك البرنامج حل آخر ألا وهو 20.
كيف؟؟
ترتيب العمليات الرياضية فإن الأولوية فى العمليات هى القسمة والضرب ثم الجمع والطرح ، ففى المثال السابق يتم حله كالآتى: 2/20 = 10 ثم 10 + 10 = 20.
فراعى جيدًا عند كتابة العملية الرياضية على ترتيبها الرياضى ؛ لكى تظهر النتيجة بصورة صحيحة.
المتغيرات التى يُمكن استخدامها فى أى إجراء:
هى مُتغيرات يتم تعريفها بداخل الفئة Class ويُمكن أن تستخدمها فى أى إجراء فى برنامجك وتعريفها يكون بإستخدام الكلمة Public.
مثال:
Public number As integer = 10
القيم للقراءة فقط:
المُتغيرات التى تُدخل للقراءة فقط ، ولا تُدرج لها قيمة ، وتعرّف داخل الفئة Class.
Public ReadOnly name As DataType
حيث يتم تغيير كلمة Dim إلى Public ويتم إضافة ReadOnly أىّ للقراءة فقط.
التطبيق
والآن سنقوم بالتطبيق العملى على المُتغيرات.
سنقوم بعمل برنامج بسيط به أداتان textbox وأداة Button.
وظيفته هى أنه عندما يُدخل المُستخدم رقم صحيح integer بداخل textbox1 و textbox2 ستظهر رسالة للمستخدم تخبره بناتج عملية جمع الرقم الذى أدخله فى textbox1 و textbox2 .
إفتح فيجوال بيسك دوت نت ، أعمل مشروع جديد ، قم برمى أداتان textbox وقم برمى أداة Button عليها.
قم بالضغط ضغطًا مزدوجًا على الأداة Button وتأكد من أنه تم إختيار الإجراء Click .
والآن بداخل هذا الإجراء سنقوم بحجز متغيرين للنصوص textbox1 و textbox2 ولعمل ذلك سنستخدم خاصية text للأدوات Textbox1  و Textbox2
هكذا:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim number1 As Integer = TextBox1.Text
        Dim number2 As Integer = TextBox2.Text
        MsgBox(number1 + number2)
    End Sub
ولكى نضيف نص فى msgbox يكون الكود كالتالى:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim number1 As Integer = TextBox1.Text
        Dim number2 As Integer = TextBox2.Text
        MsgBox( “الناتج هو” & number1 + number2)
    End Sub
قُمنا بإضافة المُعامل & لإضافة النصوص إلى بعضها.
قم بتشغيل البرنامج عن طريق F1 ثم قم بإدخال عدد صحيح إلى خانة textbox1 ثم رقم صحيح إلى textbox2 ثم اضغط على الزر Button2 وجرب النتيجة.

المُتغيرات الجزء الرابع


بعض الاختلافات عن VB6 في التعامل مع المتغيرات:
1- لم يعد مسموحا باستخدام الدوال التي تبدأ بالمقطع Def، مثل DefInt و DefDbl، لتحديد نوع المتغير الذي يبدأ بحروف معيّنة.
2- يمكنك الآن أن تعرّف أكثر من متغيّر من نفس النوع، بدون تكرار اسم النوع بعد كل متغيّر.. ففي الجملة:
Dim Width, Depth, Height As Integer, Area, Volume As Double
تمّ تعريف ثلاثة متغيرات من نوع العدد الصحيح Integer، ومتغيّرين من نوع العدد المزدوج Double.
2      يمكنك الآن أن تضع قيما ابتدائية للمتغيرات، مباشرةً في جملة التعريف.. مثال:
Dim Width As Integer = 9
Dim Distance As Integer = 100, Time As Single = 9.09
فإذا لم تضع هذه القيم، فإنّ VB يعطي المتغيّرات قيما ابتدائيّة افتراضيّة، كالصفر للمتغيرات الرقميّة، و False للمتغيّرات المنطقيّة.. ولكنّ ذلك ليس هو الوضع مع النصوص والحروف، فإذا لم تستخدم معها كلمة New أو إذا لم تضع بها أيّ قيمة، فإنّ قيمتها تكون Nothing.




الشروط الواجب توافرها عند تعريف المتغيرات:
2  ألا يكون كلمة من كلمات اللغة الأساسيّة (تلك التي تراها باللون الأزرق).. مثل Sub وFor و If وغيرها.. إنّ الجملة التالية غير مقبولة:
Dim Sub As Integer
ولكن لو كنت مصرّا على مثل هذا الأمر، فيمكنك أن تضع الاسم بين قوسين مضلعين [].. هذه الجملة مقبولة:
Dim [Sub] As Integer
لكن عليك في كلّ موضع تستخدم فيه المتغيّر أن تحيطه بالقوسين المضلعين:
[Sub] = 5
- ألا يزيد عن 255 حرفًا، وهو رقم كبير بالفعل بما يكفي.
- أن يتكون من كلمة واحدة لا تتخللها المسافات.. ويمكن استخدام الشرطة المنخفضة "_" للفصل بين مقاطع الكلمة بدلا من المسافات.
- لا يبدأ بأرقام، وإن كان من الممكن أن تتوسطه أرقام، أو ينتهيَ بها.
- لا يحتوي على أيٍ من: علامات التنصيص أو الأقواس أو النقطة "."، ولا علامات العمليات الحسابية أو علامات المقارنة الحسابية أو المنطقية، فكل هذه العلامات محجوزة لوظائف أخرى.
- غير مسموح بتكرار اسم المتغيّر داخل نفس النطاق، فلا يمكن تعريف متغيّرين متماثلين في الاسم داخل نفس الإجراء، وإن كان من الممكن تكرار نفس اسم المتغيّر لكن في إجراءات مختلفة.
والمتغيرات في لغة البيسك تتجاهل حالة الأحرف Case-insensitive، فالأسماء myAge و myage و MYAGE، كلّها متكافئة، وتشير لنفس المتغيّر.. معنى هذا أنّك لا تستطيع استخدام هذه الكلمات لتعريف ثلاثة متغيرات مختلفة، فكلّها تُعتبر اسما واحدا.

المُتغيرات الجزء الثالث





والرسم التوضيحى السابق يوضح أنواع المُتغيرات النصية والمنطقية.
والأنواع النصية نوعان هما:
Char وهى لإختزان حرف واحد فقط.
String وهى لإختزان نص.
والمُتغيرات المنطقية هى فقط Boolean
وتُختزن بها إحدى القيمات True أىّ حقيقى أو False أىّ غير حقيقى.
بمعنى أن True هى بمعنى صحيح و False بمعنى خاطئ.

ويبقى لنا الأنواع الرقمية:


أعداد صحيحة
بدون علامات عشرية
Integral Numeric Types
الجدول التالى يعرضها جميعها

       أعداد رقمية غير صحيحة
Non- Integral Numeric Types
ويعرضها الجدول التالى

وفي هذا الجدول، الأنواع التي تستطيع استخدامها لتخزين القيم الرقمية في VB.net:

النوع
حجمه بوحدات الذاكرة Bytes
الأعداد التي يقبلها
وحدة ذاكرة Byte
1
من 0 إلى 255.
وحدة ذاكرة ذات إشارة Sbyte
1
من -128 إلى 127.
قصير  Short
Int16
2
من –32768 إلى 32767
صحيح Integer
Int32
4
من -2147483648 إلى 2147483647
طويل  Long
Int64
8
يقبل أرقاما كبيرة جدّا.
مفرد Single
4
للأعداد ذات الدقّة العشرية العاديّة.. وهو يمثّل الأعداد السالبة: من –3.402823E38 إلى –1.401298E–45  ، والأعداد الموجبة من 1.401298E–45 إلى 3.402823E38.
وفي هذا النوع، لا يمكن تمثيل الصفر بدقّة، فهو يمثّل دائما بقيمة صغيرة جدّا جدا، ولكنها أبدا ليست صفرا!
مزدوج Double
8
للأعداد ذات الدقّة العشرية الفائقة، وهو يستخدم في الحسابات العلميّة.
عشري Decimal
16
لتمثيل الأعداد الصحيحة والعشريّة، حيث يمكّنك من تحديد الدقّة العشريّة التي تريد التعامل معها، من 0 إلى 28 خانة عشريّة.



ملحوظة:
الرمز E في عدد مثل 1.401298 E –45 هو طريقة الكمبيوتر لتمثيل الأس العشري، أي أنّ هذا الرقم يساوي: 1.40129 × 10 – 45.


والآن، وبمنتهى البساطة:
استخدم المتغيّرات لتخزين القيم، فإذا احتجت لمعالجة هذه القيم، فاكتب اسم المتغير متبوعا بنقطة "."، وستظهر لك قائمة تعرض لك كل خصائصه، وكل الدوال الجاهزة التي يمكن تطبيقها عليه، وفي معظم الحالات ستجد أسماءها معبّرةً عن وظائفها، بالإضافة لأنّ مجرد تحديد أيّ منها في القائمة (بضغطه مرّة واحدة بالفأرة أو الانزلاق إليه بالأسهم من لوحة المفاتيح)، يؤدّي إلى ظهور تلميح على الشاشة، يشرح لك وظيفة هذا العضو.