مقدمة هناك عدة لغات برمجية لإنشاء برامج خاصة بالحاسب كما تعلمت سابقًا، وسوف ندرس في هذا الوحدة إحدى اللغات العالية (High-Level L...

مقدمة

هناك عدة لغات برمجية لإنشاء برامج خاصة بالحاسب كما تعلمت سابقًا، وسوف ندرس في هذا الوحدة إحدى اللغات العالية (High-Level Language) وبالتحديد إحدى لغات البرمجة بالكائنات وهي لغة (فيجول بيسك ستوديو)(Visual Basic Studio).
وتعد البرمجة باستخدام (فيجول بيسك ستوديو) شيقة وممتعة، وذلك لما تمتاز به من تحكم المبرمج في البرامج التي يقوم بتصميمها من ناحية : واجهات الإدخال للمستخدم، والعمليات الإجرائية للبرنامج، وأخيراً المخرجات التي يحصل عليها المستخدم لهذا البرنامج




مراحل كتابة البرنامج بلغة (فيجول بيسك ستوديو) تعلمنا في الوحدة السابقة خطوات المرحلة الأولى من حل المسألة وهي : فهم المسألة وتحد...



مراحل كتابة البرنامج بلغة (فيجول بيسك ستوديو)


تعلمنا في الوحدة السابقة خطوات المرحلة الأولى من حل المسألة وهي : فهم المسألة وتحديد عناصرها، وكتابة الخوارزم والخطوات المنطقية للحل،والتمثيل البياني للخوارزم عن طريق مخططات الانسياب. وفي هذه الوحدة ستتعلم المرحلة المرحلة الثانية وهي مرحلة كتابة البرنامج باستخدام لغة (فيجول بيسك ستوديو) والتي تتكون من ثلاث خطوات:

1- تصميم الواجهات.
2- ضبط خصائص الادوات.
3- كتابة اوامر البرمجة.

اولا / تصميم الواجهات:

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

ثانيا / ضبط خصائص الادوات :

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

ثالثا / كتابة اوامرالبرمجة :

بعد أن ننتهي من المرحلتين السابقتين، تأتي مرحلة كتابة الأوامر التي نريد من(فيجول بيسك ستوديو) أن ينفذها عند وقوع حدث معين، فمثلا عندما يضغط المستخدم على زر الأمر ففي هذه الحالة يكون الحدث، وهنا نكتب الأوامر التي نريد من البرنامج أن ينفذها.


طريقة تعامل البرنامج مع البيانات الهدف الرئيس من أي برنامج هو معالجة البيانات. وتختلف أنواع البيانات، فقد تكون حروفًا أو أرقامًا...



طريقة تعامل البرنامج مع البيانات


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

اولا / الثوابت وانواعها :

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

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

انواع الثوابت:

1- ثابت عادي.
2- ثابت حرفي.

طريقة تعريف الثوابت:

تُعرَّف الثوابت باستخدام الأمر (Const)

Const Const 1 = Value

حيث ان :

1-: Const : الأمر الذي نستخدمه لتعريف الثابت.
2-: Const 1 : اسم الثابت، ويتم اختياره من قبل المبرمج.
3-: Value : القيمة التي سوف تخزن في هذا الثابت.

مثال:
إذا أردنا تعريف ثابت الدائرة (النسبة بين محيط الدائرة وقطرها) يكون كالتالي:
Const Pi= 3.14

ثانيا / المتغيرات وانواعها:


المتغير: هو مكان في الذاكرة الرئيسة تخرن فيه بيانات وتعطى اسمًا معينًا حتى يتم استرجاعها والتعامل معها 
داخل البرنامج، ويمكن تغيير ما يتم تخزينه، لذلك سميت بالمتغيرات. وتختلف المتغيرات باختلاف البيانات التي تخرن 
بها. كل متغير له اسم ونوع وقيمة.

انواع المتغيرات:

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

 -1متغير عددي.
2- متغير حرفي.
 -3متغير منطقي.

شروط تسمية المتغير:

ذكرنا أن المتغير يعطى اسمًا من قبل المبرمج، ولكنّ لهذا الاسم شروطًا معينة وهي:

 -1أن يتكون من حروف انجليزية (A..Z) و أرقام, والرمز (-) ولا يحتوي على فراغ أو أي رمز آخر.
2- أن لا يبدأ برقم.
3- أن لا يتجاوز (255) حرف.
4- أن لا يكون محجوزًا للغة البرمجة.

امثلة على أسماء صحيحة للمتغيرات:

X     Y   A23   C_d

امثلة على أسماء غير صحيحة للمتغيرات:

DIM     2DF      IF@

طريقة تعريف المتغير:

تُعرَّف المتغيرات في لغة (فيجول بيسك ستوديو) باستخدام الأمر
(Dim) وصيغته كالتالي:

Dim Var1 As Type

حيث ان:

 : Dim -1الأمر الذي نستخدمه لتعريف المتغير.
2- Var1 : اسم المتغير.
 : As -3رابط بين اسم المتغير ونوعه(الأ سماء المحجوزة للغة فيجول بيسك ستوديو).
4- Type : نوع المتغير.

ويمكن تعريف أكثر من متغير في الأمر نفسه : …, Dim Var1 As Type, Var2 As Type

مثال:

إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن (name) وهو من نوع متغير حرفي،
يكون كالتالي : : Dim name As String
ولتعريف أكثر من متغير: Dim name As String, age As Integer

انواع البيانات:


تتعامل لغة (فيجول بيسك ستوديو) مع أنواع مختلفة من البيانات، ولكل من هذه الأنواع اسم معين وسعة تخزينية معينة، نلخصها في الجدول التالي:


 









العمليات الحسابية والمنطقية اولا / العمليات الحسابية في البرمجة : تحتوي جميع لغات البرمجة على عمليات الحساب الأساسية : الجم...



العمليات الحسابية والمنطقية


اولا / العمليات الحسابية في البرمجة :

تحتوي جميع لغات البرمجة على عمليات الحساب الأساسية : الجمع والطرح والضرب والقسمة والأس. وتختلف طريقة كتابة المعادلات الحسابية عن الطريقة الجبرية كما هو موضح في الجدول التالي:












لاحظ الاختلاف في طريقة كتابة عمليتي الضرب والقسمة والأس.

في العمليات الحسابية الترتيب يؤثرعلى الناتج، لذلك وجب أن تكون لدينا قوانين نتبعها لنعرف أي العمليات ننفذ أولاً.

ترتيب العمليات الحسابية :

1-العمليات التي في داخل الأقواس.
2-عمليات الأس.
3-عمليات الضرب والقسمة، وإذا تعددت نبدأ التنفيذ من اليسار إلى اليمين.

4-عمليات الجمع والطرح، وإذا تعددت نبدأ التنفيذ من اليسارإلى اليمين.

مثال:
ما نتيجة تنفيذ العملية التالية على جهاز الحاسب: 3/6*2=M ؟

الحل :

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

ننفذ عملية الضرب أولاً: 12/3 =M
ثم عملية القمسة ثانياً: M=4

ثانيا / العمليات المنطقية في البرمجة :

ويقصد بها العمليات التي تتم فيها المقارنة بين قيمتين، سواء أكانتا عدديتين أو حرفيتين، متساويتين أو غير متساويتين،أو إحداهما أكبر أو أصغر من الأخرى. ويوضح الجدول التالي عمليات المقارنة المستخدمة في (فيجول بيسك ستوديو).



يكون الناتج في عمليات المقارنة إما القيمة (True)أي: صحيح أو(False)أي : خطا.

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

مثال:
ما نتيجة تنفيذ العملية التالية على جهاز الحاسب: 4 = < 10 ؟

الحل:
النتيجة:(True)أي:صحيحة؛ لأن 10 فعلاً أكبر من 4

ثالثا / تحويل المعادلات الجبرية الى الصيغة المستخدمة في البرمجة :

لاحظنا عند دراسة العمليات الحسابية أن طريقة كتابتها بالصيغة الجبرية تختلف عن طريقة كتابتها بالصيغة البرمجية. وعند قيامك بخطوة صياغة حل المسألة فغالباً ما تكون العمليات الحسابية مكتوبة بالصيغة الجبرية؛ لذلك يجب عليك عند كتابة البرنامج تحويل العمليات الحسابية من الصيغة الجبرية إلى الصيغة البرمجية.

مثال:

حوِّل المعادلة الجبرية الآتية إلى معادلة بصيغة برمجية.

                             Num = X/A+B

الحل:                              (Num= X ^2/(A+B                    









أدوات البرمجة بلغة (فيجول بيسك ستوديو)


اولا / أدوات البرمجة:

الأدوات(Tools): تعرف بأنها أجزاء برامج جاهزة للاستخدام،أي أنها أعدت مسبقًا لتوفّر على المبرمج الوقت والجهد.

وتستخدم هذه الأدوات لإجراء عمليات الإدخال والإخراج، ويتم ربطها بأوامر البرمجة التي تعالج البيانات المدخلة لتخرج لنا المعلومات المطلوبة.

فكل ما يجب عليك عمله لا Sستخدام هذه الأدوات هو:
  • وضعها على النموذج في المكان المناسب.
  • ضبط الخصائص الخاصة بالأداة.
  • كتابة أوامر البرمجة التي تتعامل مع هذه الأداة.

ثانيا / خصائص الادوات:

تختلف خصائص الأدوات باختلاف الأدوات، ولكن هناك خصائص مشتركة تشترك فيها كل الأدوات وهي التيسنتعرف عليها هنا. أما الخصائص الخاصة بكل أداة فسوف نتعرف عليها عند شرح كل أداة.

1- الخصائص المشتركة بين الادوات




2-  ضبط خصائص الادوات :

هناك طريقتان للتحكم بخصائص،هما:

أ - ضبط خصائص الادوات اثناء تصميم البرنامج:


نستخدم احدى الطرق التالية :

1-كتابة القیمة :

نكتب القیمة بواسطة لوحة المفاتیح في الخانة المخصصة داخل إطار الخصائص. كما في خاصیة الاسم (Name) حیث كتبنا القیمة (1 Form) داخل خانة (الاسم) .

2 -اختیار القیمة:

نجد في خانة إدخال قیمة الخاصیة مجموعة من الاختیارات نقوم باختیار احداھا في ضبط خاصیة المشاھدة (visible) أي ھل النموذج أو الأداة تظھر في الواجھة أم لا ؟ حیث یعرض خیاران إما (False ) أو (True)

3 -ظھور نافذة خیارات :

عند اختیار نوع الخط بالنقر على خاصیة الخط (Font)تظھر نافذة خصائص نوع الخط

ب- ضبط خصائص الادوات اثناء تشغیل البرنامج :

لتغییر خاصیة الأدوات أثناء تنفیذ البرنامج فإننا نستخدم الصیغة التالیة للوصول إلى تلك الخاصیة :

القیمة الجدیدة = الخاصیة . اسم الاداة

مثلا لتغییر خاصیة (النص) في أداة مربع النص (Textbox1 (نكتب مایلي :

"مدرسة الریاض" = Text.Textbox1


ثالثا / ادوات ادخال البیانات:

نستخدم أدوات إدخال البيانات للحصول على البيانات التي يجب على البرنامح معالجتها.
يقوم المستخدم بإدخال هذه البيانات بالكتابة أو الاختيار باستخدام هذه الأدوات.

1-اداة مربع النص (TextBox):

تتيح للمستخدم كتابة نص وتخزين النص في الخاصية (Text).

2 -اداة زر الخيار (RadioButton):

تتيح للمستخدم انتقاء خيار واحد فقط من عدة خيارات، وتخزن قيمها في الخاصية
(Checked).

3 -اداة مربع الأختيار (CheckBox):

تتيح للمستخدم انتقاء عدة خيارات، وتخزن قيمها في الخاصية (Checkstate) والخاصية (Checked).

4 -اداة مربع القائمة (ListBox):

تعرض قائمة مكونة من عناصر يختار المستخدم أحدها وتخزن خيار المستخدم في
الخاصية (Textأو (SelectedIndex)

5 -أداة الخانة المركبة (ComboBox):

تعطي المستخدم حریة الاختیار من قائمة أو إدخال اختیاره كتابة وتخزنھا في الخاصیة
(Text).

وتختلف طریقة الحصول على البیانات من ھذه الأدوات؛ لذلك سوف نتعرف على طریقة
كل أداة على حدة :

1- مربع النص (TextBox):

إن البیانات التي نحصل علیھا من مربع النص تختلف بحسب ما یدخلھ المستخدم، فقد تكون أرقاما أو حروفًا.

للحصول على البیانات من مربع النص نستخدم الصیغة التالیة:
Var1=TextBox.Text

حیث ان:
Var1 : متغیر لتخزین البیانات فیھ أیاً كان نوعھا عددیة أم حرفیة.
TextBox : اسم أداة مربع النص على النموذج.
Text : خاصیة النص في أداة مربع النص التي تستقبل البیانات من المستخدم.

للحصول على القیمة المدخلة لاسم المستخدم في مربع النص والمسمى (Textbox1)
وتخزینھا في المتغیر (Usernameنكتب الأمر التالي:

Username = Textbox1.Text

في ھذا المثال سوف یخزن في المتغیر القیمة التالیة:

"Username="Administrator

2 -أداة زر الخیار (RadioButton):

إن البیانات التي نحصل علیھا من زر الخیار ھي بیانات منطقیة تخزن في الخاصیة
(checked) وھي إحدى قیمتین، إما:

 أن الزر قد تم اختياره فقيمته عندئذ هي (True)
 أن الزر لم يتم اختياره فقيمته عندئذ هي (False)

والصیغة العامة للحصول على البیانات ھي :

Var1=RaidoButton.Checked

حیث ان:
Dim : متغیر لتخزین البیانات من نوع منطقي.
RaidoButton : اسم أداة زر الخیار على النموذج .
Checked : خاصیة أداة زر الخیار التي تستقبل البیانات من المستخدم، إما (True (أو
.(False)

مثال:

لمعرفة أن الزر المسمى (OB1 (قد تم اختیاره أم لا نكتب السطر التالي:

H = OB1.Checked

حیث إن (H) یمثل متغیراً منطقیاً یُخزن إحدى القیمتین، إما صح (True) أوخطأ
(False) لمعرفة إن كان الزر قد تم اختیاره أم لم یتم.

3 -اداة مربع الاختیار(CheckBox):

البیانات التي نحصل علیھا من مربع الاختیار قد تكون: بیانات رقمیة وتخزن في الخاصیة (checkstate) وھي إحدى ثلاثة أشیاء، إما:

أن المستخدم لم يختر المربع فقيمته عندئذ هي (0).
أن المستخدم اختار المربع فقيمته عندئذ هي (1).
أن المستخدم لا يستطيع اختيار المربع فقيمته عندئذ (2).

وقد تكون بیانات منطقیة وتخزن في الخاصیة (checkstate (كما في زر
الخیار.
والصیغة العامة للحصول على البیانات ھي:

Var1 = CheckBox.Checkstate

حیث ان:
Varl : متغیر لتخزین البیانات فیھ من نوع عددي.
CheckBox : اسم أداة مربع الاختیار على النموذج.
Checkstate : خاصیة أداة مربع الاختیار التي تستقبل البیانات من المستخدم.

مثال:

لمعرفة أن مربع الاختیار المسمى ) CheckBox2 ) قد تم اختیاره أم لا نكتب السطر
التالي:
A = CheckBox2 .Checkstate

حیث إن (A) یمثل متغیراً عددیاً ّ یخزِ ن أحد الأعداد التالیة (0،1،2) لمعرفة إن كان مربع الاختیار قد تم اختیاره، أم لم یتم، أم لا یمكن اختیاره.

4 -أداة مربع القائمة (ListBox):

البیانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر، اھمھا:

  • رقم العنصر في القائمة ونحصل علیھ بواسطة الخاصیة (SelectedIndex).
  • قیمة العنصر ونحصل علیھا بواسطة الخاصیة (Text).



الصیغة العامة للحصول على رقم العنصر (SelectedIndexھي:


Varl = ListBox.SelectedIndex

حيث ان:

Var1 : متغير لتخزين البيانات فيه من نوع رقمي.
ListBox : اسم أداة مربع القائمة على النموذج.
SelectedIndex : خاصية أداة مربع القائمة التي تحدد رقم العنصر الذي اختاره المستخدم.


الصيغة العامة للحصول على قيمة العنصر (Text) هي:


Var1=ListBox.Text

Var1 : متغير لتخزين البيانات فيه أياً كان نوعها عددية أم حرفية.
ListBox : اسم أداة مربع القائمة على النموذج.

Text : خاصية أداة مربع القائمة التي تحدد قيمة العنصر الذي اختاره المستخدم.

مثال:

لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة (ListBox1) التي تمثل هنا أسماء الدول:
C = ListBox1.SelectedIndex

حيث إن (C) يمثل متغيراً عددياً يحزِّن رقم العنصرالذي اختاره المستخدم.

وفي هذا المثال سوف يكون مخزن في المتغير (C) الرقم (3).

5- اداة الخانة المركبة (ComboBox):

أداة الخانة المركبة تجمع بين ميزات أداة النص وأداة مربع القائمة، حيث يستطيع المستخدم أن يختار من القائمة أو يكتب قيمة جديدة .

للحصول على البيانات من أداة الخانة المركبة نستخدم الصيغة التالية:


Varl = ComboBox.Text

حيث ان:

Var1 : متغير لتخزين البيانات فيه أياً كان نوعها عددية أم حرفية.
ComboBox : اسم أداة مربع الاختيار على النموذج.
Text : خاصية أداة الخانة المركبة التي تستقبل البيانات من المستخدم سواء باختياره من

القائمة أو بإدخاله للبيانات بالكتابة مباشرة.

مثال:

للحصول على القيمة التي أدخلها المستخدم أو اختارها من القائمة في أداة الخانة المركبة
(Combobox1) وتخزينها في المتغير (C) نكتب الأمر التالي:


C) = Combobox1.Text)

في هذا المثال سوف يخزن في المتغير (C) الدولة التي يختارها المستخدم.

رابعا / ادوات اخراج المعلومات :

نستخدم أدوات إخراج المعلومات لإظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج البيانات التي أدخلها المستخدم، ومن هذه الأدوات :


  •  أداة مربع النص (TextBox) : وتخرج المعلومات بواسطة الخاصية (Text).
  •  أداة التسمية (Label) : وتخرج المعلومات بواسطة الخاصية (Text).


1- طريقة إخراج المعلومات إلى مربع النص (TextBox):

لإخراج المعلومات إلى مربع النص نستخدم الصيغة التالية :


TextBox .Text = Varl

حيث ان:

TextBox : اسم أداة مربع النص على النموذج.
Text : خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير(Varl).
Varl : اسم المتغير .


مثال:

لإظهار حاصل جمع عددين  (X+Y)  في الأداة المسماة (Text4) نكتب السطر التالي :


Text4.Text = X+Y

في هذا المثال كما في الشكل (7- 14) يظهر الناتج.





2- طريقة إخراج المعلومات إلى أداة التسمية (Label):

لإخراج المعلومات إلى أداة التسمية نستخدم الصيغة التالية :


Label.Text = Var1

مثال:

لإظهار حاصل جمع عددين  (X+Y) في الأداة المسماة (Lable1) نكتب السطر التالي:


Label1.Text = X+Y

في هذا المثال كما في الشكل (7-15) يظهر الناتج.