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


تعريف المتغيرات:
لماذا نعرّف المتغيّر؟:

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


في معظم لغاتِ البرمجة، يجبُ تعريفُ المتغيّراتِ أولا قبلَ استخدامها.. إنّ هذا يجعل 

الأمرَ أيسرَ بالنسبة لمترجم الكود Compiler، ففي كلّ مرّة يصادف المترجم متغيّرا، 

عليه أن يُنشئه في الذاكرة، ونتيجة لاعتباراتٍ في تنظيم الذاكرة، فإن مثل هذه العملية 

تستهلك بعض الوقت، ممّا يُبطئ البرنامج.. ولكن لو كان المترجم يعرف كل متغيرات 

البرنامج وأنواعها سلفا قبل أن يبدأ ترجمة البرنامج، ففي هذه الحالة سيتحسّن الأداء 

لأقصى درجة.


لقد كانت من أشهر سمات VB، عدم إرغامه للمبرمج على تعريف كلّ المتغيرات.. 

لقد صارت هذه السمة منتقدةً الآن بشدّةٍ، ليس فقط للأسباب المتعلّقة بسرعة الترجمة 

وكفاءة الأداء، ولكن أيضا لأن تعريف المتغيّر يُمكّن المترجم من اصطياد أخطاء 

كثيرةٍ، سواء في وقت التصميم Design Time  أو وقت الترجمة Compile Time، 

 بدلا من أن تُفاجئكَ في وقت التشغيل Runtime.

فمثلا: عندما تعرّف متغيرا من النوع "تاريخ" Date ، لا يمكن أن يسمح لك المترجم 

بوضع عدد صحيحInteger  فيه.. أيضا لن يسمح لك المترجم باستخدام خاصية 

"شهر" Month الخاصة بالمتغيرات من النوع "تاريخ" Date، مع متغيّر من النوع "عدد صحيح" Integer.

إن تعريف المتغيّرات يمكّن المترجم من اصطياد مثل هذين النوعين من الأخطاء، 

أثناء كتابتك للكود، فلا تكاد تترك السطر الذي كتبتها به، حتّى يضع تحته خطًا 

متعرّجا، لو حلّقت فوقه بالفأرة، فسيظهر لك تلميح على الشاشة يصف الخطأ الذي ارتكبته.

لكل تلك الأسباب، فإنّ المترجم في VB.NET في الوضع التلقائيّ، لن يسمح لك 

باستخدام المتغيرات بدون تعريف، إلا إذا طلبت أنت ذلك منه صراحةً ـ كما سنرى 

فيما بعد ـ وذلك على عكس الوضع الذي كان في VB6.

 مطلوب منك أيضا، تحديد نوع المتغيّر.. وللتسهيل، يمكنك استخدام رموز الأنواع 

التراثية في لغة البيزيك، مثل $ التي ترمز للنصوص.. فمثلا يمكنك كتابة:
Dim Note$

لتعريف المتغيّر Note كمتغيّر نصّيّ.. ولو حلّقت بالفأرة فوق هذا السطر في بيئة

التطوير، لظهر لك تلميح على الشاشة مكتوب فيه التالي:
Dim Note As String

مّما يعني أنّ الجملتين متكافئتين تمامًا. وهذه الطريقة غير محبذة.

وتعريف المُتغير يكون بإستخدام الكلمة المحجوزة فى اللغة Dim وهى إختصار كلمة Dimension
  ومن ثم تحديد نوع المُتغير بإستخدام الكلمة المحجوزة As.
Dim varname As DataType

حيث أن varname هو اسم المتغير و DataType   هو نوع المتغير.

وعند إسترجاع المُتغير لإستخدامه يجب أن يكون بداخل نفس الإجراء الذى قمت 

بتعريفه فيه ، أو يُمكنك أن تقوم بتعريف المتغير داخل الفئة Class فتستطيع استخدام 

المتغير فى أى إجراء ببرنامجك ، وأنواع المُتغيرات سيتم ذكرها فى الفقرة القادمة ، 

كما يمكنك استخدام النوع Object   وهو يتم التخزين فيه أى نوع من أنواع البيانات ، 
وبخصوص إسناد قيمة للمتغير نستعمل معامل الإسناد = ، وتعرف المتغيرات يتم 

بطريقتين مختلفتين:
الأولى:
Dim name As object = “Ahmed”

هنا قمنا بإسناد قيمة للمتغير فى نفس السطر ، وهى الطريقة الأفضل.
الثانية:
Dim name As object
Name = “Ahmed”

 وفى المثال الثانى قمنا بتعريف المتغير فى سطر ، وقمنا بإسناد قيمة له فى سطر آخر.

ونلاحظ أنّا فى المثال الثانى طبقنا نظرية إستدعاء المتغيرات لإستخدامها كما ذكرت 

آنفًا ، فقمنا بإستدعاء اسم المُتغير ومن ثم اسندنا له قيمة جديدة حتى ولم نكن قد قُمنا 
بإسناد قيمة له قبل ذلك.

المُتغيرات الجزء الأول


إنك بدراستك الفيجوال بيسك دوت نت يجب عليك دراسة اللغة أولاً وحتى ولو كنت لا

تعرف استخدامها بشكل كاملة الآن ، ثم بعد ذلك تستطيع أن تتعلم كل ما يخص بيئة 

التطوير المُتكاملة واستخدامها ، ومن ثم ستستطيع حينها أن تُطبّق كل ما تعلمته 

بدراستك للغة الفيجوال بيسك دوت نت وقواعدها.



وسيكون منهجنا فى المدونة كالتالى:



نتعلم قاعدة من قواعد اللغة ومن ثم تطبيق بسيط عليها وبعد الانتهاء من تعلم قواعد 

اللغة سنتعلم كل ما يخص تصميم برنامجك بإحترافية.


والمُلخص المُفيد أنك تتعلم قواعد اللغة ، ومن ثم تتعلم كيفية استخدام كل ذلك فى 

البرمجة عن طريق بيئة التطوير المُتكاملة للفيجوال بيسك دوت نت.




وهنا سنتعلم أول شيء فى قواعد اللغة ، وهى أهم شيء فى كل لغات البرمجة ، ألا وهى المُتغيرات.



المُتغيرات:
هو عبارة عن اسم أو حرف يتم تخزينه بالذاكرة وتوضع فيه قيمة مُعينة يُمكن أن

تتغير أثناء تشغيل البرنامج.




والمُتغير له اسم وله قيمة.


مثال:
name
age
money
Ahmed
14
10$





ففى المثال السابق قُمنا بتمثيل ثلاثة مُتغيرات فى ذاكرة الكُمبيوتر.


المُتغير الأول اسمه name وُقمنا بتحديد قيمة له Ahmed.

المُتغير الثانى اسمه age وقُمنا بتحديد قيمة له 14 ، وطبعًا العُمر يزيد.

وهنا تمكن فائدة المُتغيرات ، حيث أنه من المُمكن تغيير قيمتها من قبل مُستخدم 

برنامجك حيث أنه يُمكن تغيير قيمة المتغير age أىَ العمر ، وتغيير قيمة name أىّ الاسم.
 

كذلك المُتغير الثالث قابل للتغيير ، وسوف نطبق على المُتغيرات فى الأجزاء القادمة 

لنتعرف قليلاً على كيفية استخدامها.

الكونسول Console Application Properties


فى هذا هذه التدوينة سنتعلم أسهل التطبيقات فى VB.net ، وهذا الفصل هام لكى تتعرف على الـConsole.
الكونسول هو تطبيق بسيط عن طريق شاشة تشبه شاشة الدوس.
عمل تطبيق كونسول جديد كالتالى:
1-            من قائمة File إختر New Project
2-            إختر Console Application
3-            أدخل اسم المشروع فى خانة Name
4-             إضغط  OK
 


ستظهر لك هذه النافذة




Console.write(string)
لكتابة نص بدلاً من String ولكن يوضع فى علامتى تنصيص " إذا كان غير مُدرج بداخل مُتغير
Console.writeline(String)
لكتابة نص ثم الإنتقال إلى السطر الذى بعده
Console.ReadKey()
لعدم إغلاق التطبيق سوى بعد أن يضغط المستخدم على أى زر من لوحة المفاتيح

فمثلاً نريد أن نكتب على الشاشة كلمة Ahmed فيكون الكود كالتالى
Console.Write(“Ahmed”)
وإذا أردنا أن ينتقل بعدها إلى سطر جديد يكون الكود
Console.WriteLine(“Ahmed”)
لكن عند تشغيل التطبيق يغلق البرنامج لماذا؟
لأنه تم إنتهاء عمله لذا يُغلق نفسه بنفسه ، إذاً ما الحل؟
كتابة العبارة التالية
Console.ReadKey()
فيصبح الكود كاملاً
Module Module1

    Sub Main()
        Console.WriteLine(“Ahmed”)
        Console.ReadKey()
    End Sub

End Module

كما يوجد بعض الخصائص الأخرى للكونسول لكن لن تحتاجها أبدًا فى حياتك البرمجية ؛ لذا وفر عليك التعب فى الأفضل.
 

الخصائص والطرق والإجراءات (متفرقات هامة)


قد أوضحت سابقًا أن الحاسوب ليس ذكيًا بالمرة ، وسأثبت لك ذلك بمعرفتك حقيقة تثبت لك أن الحاسوب ليس ذكيًا أبدًا ، والحقيقة هى أن عداد الكمبيوتر يبدأ من الصفر ، حيث أن الصفر يُعتبر شيئ موجود بالنسبة له ؛ لأنه لا يعلم أن الصفر يعنى لا شيء إنما هو يعرف أنه ليس سالبًا فأنه بعتبره شيئ موجود حتى ولو لم يكن موجبًا.
وسأوضح لك شيئًا من الصعب أن تفهمه حاليًا كنك سوف تتعرف عليه فى الفصول القادمة ، وهى عند تعريف مصفوفة بها 10 خانات يتم تعريفها كالتالى:
Dim array(9)
وهذا يعنى أن العداد يعمل كالتالى:
0,1,2,3,4,5,6,7,8,9
أىّ من الصفر حتى تسعة = 10 أرقام = 10 خانات بالمصفوفة.
أعرف أنك لا تعرف معنى مصفوفة ولست مُجبرًا على فهم هذا الآن ، لأنك ستتعرف عليه بالتفصيل لاحقًا ( فلا تبتئس ... ستبدو لك البرمجة فى البداية صعبة ، لكن مع القليل من التركيز ستجد أن الموضوع سهلاً جدًا )
الكائنات
تعتقد vb.net أن كل شيء هو كائن فمثلاً: البالون كائن ، والقلم كائن ، والزر كائن ، والكائن له خصائص وله أحداث وله طرق.
وتُكتب الخصائص برمجيًا هكذا
Object.property = value
حيث أن object هو اسم الكائن و property اسم الخاصية و value هى قيمة الخاصية.
فمثلاً نريد جعل خاصية اللون للكائن البالون أحمر يُكتب هكذا
Balloon.color = red
والطُرق تُكتب كالتالى:
Object.method()
ويُضع بين القوسين البارامترات ، ولكن فى حالتنا لا يوجد بارامترات ، وسنتعرف على البارامترات لاحقًا.
أما الإجراء هو مثلاً فى الكائن "زر" عند حدوث الإجراء "ضغط" أىّ يقوم المُستخدم بالضغط على الزر يتم تنفيذ كود مٌعين.



1- اسم الكائن Button1.
2- الإجراء Click أىّ الضغط.
عند اختيار الكائن
ومن ثم إختيار الإجراء يظهر كود جاهز يتكون من

Private sub ………….
End Sub
وما بين private sub   و End sub نقوم بكتابة الكود الذى سيتم تنفيذه عند تحقيق هذا الإجراء.
فمثلاً نريد عند الضغط على الزر button1 يتم إظهار رسالة للمستخدم بها "نجاح العملية" ، نقوم بوضع أداة الزر button فى النافذة form1 عن طريق الضغط عليها من ToolBox ضغطًا مزدوجًا ، أو بسحبها ووضعها على النافذة ، ثم قُم بالضغط ضغطًا مزدوجًا على الزر button1 وستظهر نافذة الكود بها هذا الكود
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub
ونلاحظ هنا فى شاشة نافذة الكود أنه تم إختيار الكائن button1 وتم إختيار الإجراء Click إفتراضيًا ، وما بين Private sub و End sub سنقوم بوضع الكود ، عندما يضغط Click المُستخدم على الكائن Button1 يتم ظهور رسالة بها "نجاح العملية".
فسيكون الكود كالتالى
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Msgbox(“نجاح العملية”)
    End Sub
والدالة msgbox هى المسئولة عن إظهار رسالة فى صندوق صغير.
والآن قم بالضغط على f5 من لوحة المفاتيح ثم قُم بالضغط على button1 وستشاهد الرسالة ظهرت فى صندوق صغير ،، والآن هنيئًا لك أول برنامج قُمت ببرمجته. أنت الآن مبتدأ.