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

Download Report

Transcript مراحل كتابة البرنامج بلغة فيجول بيسك ستديو تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ، هي.

Slide 1

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 2

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 3

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 4

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 5

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 6

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 7

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 8

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 9

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 10

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 11

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 12

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 13

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 14

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 15

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 16

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 17

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 18

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 19

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 20

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 21

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 22

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 23

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 24

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 25

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 26

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 27

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 28

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 29

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 30

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 31

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 32

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 33

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 34

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 35

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 36

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 37

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 38

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 39

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 40

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 41

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 42

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 43

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 44

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 45

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 46

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 47

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

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

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

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

‫‪1‬‬

‫الثوابت‬

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

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

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

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

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

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

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

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

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

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

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

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

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

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

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

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

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

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

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

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

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

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

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

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

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

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

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 48

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 49

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 50

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 51

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 52

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 53

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 54

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 55

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 56

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 57

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 58

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 59

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬


Slide 60

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫تتكون مرحلة كتابة البرنامج باستخدام لغة فيجول بيسك ستوديو من ثالث خطوات ‪ ،‬هي ‪:‬‬

‫‪1‬‬

‫تصميم الواجهات‬

‫‪2‬‬

‫ضبط خصائص األدوات‬

‫‪3‬‬

‫كتابة أوامر البرمجة‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪1‬‬

‫تصميم الواجهات‬

‫تشمل تحديد عدد النوافذ‬
‫التي‬

‫يحتاجها‬

‫البرنامج‬

‫التي‬

‫نحتاجها‬

‫واألدوات‬

‫على كل نافذة كاألزرار‬
‫ومربعات‬
‫والقوائم ‪.‬‬

‫النصوص‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪2‬‬

‫ضبط خصائص األدوات‬

‫بعد أن نضع األدوات على‬
‫النافذة تأتي مرحلة تحديد‬
‫خصائص‬

‫هذه‬

‫األدوات‬

‫‪ Properties‬كشكل األداة‬
‫‪،‬‬

‫ولونها‬

‫المستخدم‬
‫وغير ذلك‪.‬‬

‫‪،‬‬
‫‪،‬‬

‫والخط‬
‫وعنوانها‬

‫مراحل كتابة البرنامج بلغة فيجول بيسك ستديو‬
‫‪3‬‬
‫بعد‬

‫كتابة أوامر البرمجة‬
‫ننتهي‬

‫أن‬

‫من‬

‫المرحلتين السابقتين ‪ ،‬تأتي‬
‫مرحلة كتابة األوامر التي‬
‫نريد أن تنفذ عند وقوع‬

‫حدث معين‪.‬‬
‫فمثالا‬

‫عندما‬

‫يضغط‬

‫المستخدم على زر األمر‬
‫فيكون الحدث‪.‬‬

‫طريقة تعامل البرنامج مع البيانات‬
‫الهدف الرئيس من أي برنامج هو معالجة البيانات ‪ ،‬وتختلف أنواع البيانات فقد تكون حروفا ا أو‬
‫أرقاما ا أو تواريخ أو غيرها ‪ ،‬وتأتي البيانات غالبا ا من مستخدم البرنامج عن طريق أجهزة اإلدخال‬
‫المتصلة بالحاسب كلوحة المفاتيح والفأرة‪.‬‬
‫يستقبل البرنامج البيانات ويخزنها في الذاكرة حتى يستطيع التعامل معها ‪ ،‬لذلك البد من إعطاء هذه‬
‫البيانات أسماء معينة ليتمكن من الرجوع إليها ‪.‬‬
‫تصنف البيانات إلى نوعين هما ‪:‬‬

‫‪1‬‬

‫الثوابت‬

‫‪2‬‬

‫المتغيرات‬

‫طريقة تعامل البرنامج مع البيانات‬

‫‪1‬‬

‫الثوابت‬

‫الثابت ‪ :‬هو إعطاء اسم لقيمة معينة ويستخدم داخل البرنامج وال يمكن تغيير هذه القيمة عند تنفيذ‬
‫البرنامج‪.‬‬

‫أنواع الثوابت‬
‫‪1‬‬

‫ثابت عددي‬

‫‪2‬‬

‫ثابت حرفي‬

‫طريقة تعريف الثوابت‬

‫‪Const Const1 = Value‬‬
‫‪ Const ) 1‬األمر الذي نستخدمه لتعريف الثابت‪.‬‬
‫‪ Const1 ) 2‬اسم الثابت ‪ ،‬ويتم اختياره من قبل المبرمج‪.‬‬

‫‪ Value ) 3‬القيمة التي سوف تخزن في هذا الثابت‪.‬‬
‫مثال‬

‫إذا أردنا تعريف ثابت الدائرة ( النسبة بين محيط الدائرة وقطرها ) يكون األمر كالتالي ‪:‬‬
‫‪Const Pi = 3.14‬‬

‫المتغيرات وأنواعها‬
‫المتغير ‪ :‬هو مكان في الذاكرة الرئيسة تخزن فيه بيانات و ُتعطى اسما ا معينا ا حتى يتم استرجاعها‬
‫والتعامل معها داخل البرنامج ‪ ،‬ويمكن تغيير ما يتم تخزينه به ‪ ،‬لذلك سميت بالمتغيرات‪.‬‬
‫وتختلف المتغيرات باختالف البيانات التي تخزن بها ‪ ،‬وكل متغير له اسم ونوع وقيمة‪.‬‬

‫أنواع المتغيرات‬
‫تتعدد المتغيرات بحسب نوع البيانات التي تخزن بها ‪ ،‬فمثالا قد تكون رقما ا صحيحا ا أو رقما ا عشريا ا أو‬
‫حرفا ا أو مجموعة حروف ‪ ،‬ويمكن تقسيم أنواع المتغيرات إلى ‪:‬‬

‫‪1‬‬

‫متغير عددي‬

‫‪2‬‬

‫متغير حرفي‬

‫‪3‬‬

‫متغير منطقي‬

‫شروط تسمية المتغيرات‬
‫‪ ) 1‬أن يتكون من حروف انجليزية ( ‪ ) A .. Z‬وأرقام والرمز ( _ ) وال يحتوي على فراغ أو أي‬
‫رمز آخر‪.‬‬
‫‪ ) 2‬أن ال يبدأ برقم‪.‬‬
‫‪ ) 3‬أن ال يتجاوز ‪ 255‬حرف‪.‬‬
‫‪ ) 4‬أن ال يكون كلمة محجوزة للغة البرمجة‪.‬‬
‫أمثلة‬

‫أمثلة صحيحة ألسماء المتغيرات ‪:‬‬

‫‪A23 C_D‬‬

‫‪Y‬‬

‫‪X‬‬

‫أمثلة غير صحيحة ألسماء المتغيرات ‪:‬‬
‫@‪IF‬‬

‫‪2DF‬‬

‫‪DIM‬‬

‫طريقة تعريف المتغيرات‬
‫ُتعرف المتغيرات باستخدام األمر ‪ DIM‬وصيغته كالتالي ‪:‬‬

‫‪DIM Var1 As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1 ) 1‬اسم المتغير‪.‬‬

‫‪ : As ) 2‬رابط بين اسم المتغير ونوعه‪.‬‬
‫‪ : Type ) 3‬نوع المتغير‪.‬‬
‫إذا أردنا تعريف متغير لتخزين اسم الطالب وليكن ‪ name‬من نوع حرفي يكون كالتالي ‪:‬‬
‫أمثلة‬

‫‪DIM name As String‬‬
‫ولتعريف أكثر من متغير ‪:‬‬
‫‪DIM name As String , age As Integer‬‬

‫المطلوب نوع البيانات صحيح‬
‫–عشري –سلسلة نصية‬

‫أنواع البيانات‬

‫تصحيح ‪:‬‬
‫ال يحتوي فيجول ستوديو على متغير من النوع ‪ Currency‬وال النوع ‪ Variant‬حيث تم استبداله بالنوع ‪Object‬‬

‫العمليات الحسابية والمنطقية‬
‫العمليات الحسابية في البرمجة‬

‫ترتيب العمليات الحسابية‬
‫‪ ) 1‬العمليات التي داخل األقواس‪.‬‬
‫‪ ) 2‬عمليات األس‪.‬‬
‫‪ ) 3‬عمليات الضرب والقسمة ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬
‫‪ ) 4‬عمليات الجمع والطرح ‪ ،‬وإذا تعددت نبدأ التنفيذ من اليسار لليمين‪.‬‬

‫مثال‪1‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪M = 2 * 6 + 3^2‬‬
‫الحل‬
‫حيث إن العمليات هنا هي الضرب والجمع واألس ‪ ،‬ولها أولويات مختلفة فسوف نبدأ التنفيذ‬
‫بالترتيب‬
‫‪ ) 1‬ننفذ عملية األوس أوالا ‪:‬‬
‫‪M=2*6+9‬‬
‫‪ ) 2‬ثم عملية الضرب ثانيا ا ‪:‬‬
‫‪M = 12 + 9‬‬
‫أخيراا عملية الجمع ‪:‬‬
‫‪M = 21‬‬

‫مثال‪2‬‬

‫ترتيب العمليات الحسابية‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫الحل‬

‫‪M = 2 * ( 6 + 3 (^2‬‬

‫‪ ) 1‬ننفذ عملية الجمع أوالا ‪:‬‬
‫‪M = 2 * 9^2‬‬

‫‪ ) 2‬ثم عملية األس ثانيا ا ‪:‬‬
‫‪M = 2 * 81‬‬
‫أخيراا عملية الضرب‪:‬‬
‫‪M = 162‬‬

‫العمليات المنطقية‬
‫يقصد بها العمليات التي تتم فيها المقارنة بين قيمتين‬
‫سواء أكانتا عدديتين أو حرفيتين ‪ ،‬متساويتين أو‬
‫غير متساويتين ‪ ،‬ويكون الناتج في عمليات المقارنة‬
‫إما القيمة ‪ True‬أي صحيح أو ‪ False‬أي خطأ‪.‬‬
‫ولوكان لدينا عمليات حسابية ومعها عملية مقارنة‬
‫فإن األولوية تكون للعمليات الحسابية‪.‬‬
‫مثال‬

‫ما نتيجة تنفيذ العملية التالية على جهاز الحاسب ‪:‬‬
‫‪4+3*5<4*6‬‬

‫ننفذ العمليات الحسابية أوالا‬
‫‪True‬‬

‫‪4 + 15 < 24‬‬
‫‪19 < 24‬‬

‫تحويل المعادالت الجبرية إلى الصيغة المستخدمة في البرمجة‬
‫مثال‪1‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟐𝑿‬
‫= 𝑴‪𝑵U‬‬
‫𝑩‪𝑨+‬‬

‫الحل‬

‫) ‪𝑵U𝑴 = X^2 / ( A + B‬‬
‫مثال‪2‬‬
‫حول المعادلة الجبرية اآلتية إلى معادلة بصيغة برمجية‬
‫𝟏 ÷ 𝟒 ‪𝑿 = 𝟓𝒀 −‬‬
‫الحل‬
‫𝟏‪𝑿 = 𝟓 ∗ 𝒀 − 𝟒/‬‬

‫أدوات البرمجة بلغة فيجول بيسك ستوديو‬
‫األدوات ‪ :‬هي أجزاء برامج جاهزة لالستخدام ‪ ،‬أي أنها أعدت مسبقا ا لتوفير‬
‫على المبرمج الوقت والجهد‪.‬‬

‫فكل ما يجب عليك عمله الستخدام األدوات هو ‪:‬‬
‫‪ ) 1‬وضعها على النموذج في المكان المناسب‪.‬‬
‫‪ ) 2‬ضبط الخصائص الخاصة باألداة‪.‬‬
‫‪ ) 3‬كتابة أوامر البرمجة التي تتعامل مع هذه األداة‪.‬‬

‫خصائص األدوات‬

‫المطلوب ‪name-text-font-‬‬
‫‪forecolor-backcolor‬‬‫‪textalign‬‬

‫تختلف خصائص األدوات باختالف األدوات ‪ ،‬ولكن هناك خصائص مشتركة تشترك فيها كل األدوات‬
‫وهي التي سنتعرف عليها هنا‪.‬‬

‫ضبط خصائص األدوات‬
‫هناك طريقتان للتحكم في خصائص األدوات ‪ ،‬هما ‪:‬‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫‪1‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫نستخدم إحدى الطرق التالية ‪:‬‬

‫‪1‬‬

‫كتابة القيمة‬

‫نكتب القيمة بواسطة لوحة المفاتيح في الخانة‬
‫المخصصة داخل إطار الخصائص كما في خاصية‬

‫‪Name‬‬

‫‪1‬‬
‫‪2‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫اختيار القيمة‬

‫نجد في خانة إدخال قيمة الخاصية مجموعة من‬
‫االختيارات ‪ ،‬نقوم باختيار إحداها ‪،‬كما في‬
‫خاصية ‪Visible‬‬

‫‪1‬‬
‫‪3‬‬

‫ظهور نافذة خيارات‬

‫عند النقر على خاصية‬
‫‪Font‬‬

‫ضبط خصائص األدوات أثناء تصميم البرنامج‬

‫تظهر‬

‫خصائص الخط‬

‫نافذة‬

‫‪2‬‬

‫ضبط خصائص األدوات أثناء تشغيل البرنامج‬

‫لتغيير قيمة خاصية ألداة أثناء تنفيذ البرنامج فإننا نستخدم الصيغة التالية ‪:‬‬

‫القيمة الجديدة = الخاصية ‪ .‬اسم األداة‬
‫مثالا لتغيير خاصية ‪ Text‬في أداة مربع النص ‪ TextBox‬نكتب التالي ‪:‬‬
‫” المدينة المنورة “ = ‪Textbox1.Text‬‬

‫أدوات إدخال البيانات‬
‫‪ ) 1‬أداة مربع النص ‪ : TextBox‬تتيح للمستخدم كتابة نص وتخزين النص في‬
‫الخاصية ‪Text‬‬
‫‪ ) 2‬أداة زر الخيار ‪ : RadioButton‬تتيح للمستخدم إنتقاء خيار واحد فقط من‬
‫عدة خيارات وتخزن في الخاصية ‪Checked‬‬
‫‪ ) 3‬أداة مربع االختيار ‪ : CheckBox‬تتيح للمستخدم انتقاء عدة خيارات وتخزين‬
‫قيمها في الخاصية ‪ Checkstate‬والخاصية ‪Checked‬‬
‫‪ ) 4‬أداة مربع القائمة ‪ : ListBox‬تعرض قائمة مكونة من عناصر يختار‬
‫المستخدم أحدها وتخزن خيار المستخدم في الخاصية ‪ Text‬أو ‪SelectedIndex‬‬
‫‪ ) 5‬أداة الخانة المركبة ‪ : ComboBox‬تعطي المستخدم حرية االختيار من قائمة‬
‫أو إدخال اختياره كتابة وتخزينها في الخاصية ‪Text‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إن البيانات التي نحصل عليها من مربع النص تختلف بحسب ما يدخله المستخدم فقد تكون أرقام أو‬
‫حرو افا للحصول على البيانات من مربع النص نستخدم الصيغة التالية‪:‬‬

‫‪Var1 = TextBox .Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات فيه أيا ا كان نوعها عددية أم حرفية‪.‬‬

‫‪ : TextBox‬اسم أداة مربع النص على النموذج‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي تستقبل البيانات من المستخدم‪.‬‬
‫مثال‬
‫‪Username= Textbox1.Text‬‬

‫‪2‬‬

‫أداة زر الخيار ‪RadioButton‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات منطقية وتخزن في الخاصية ‪ Checked‬وهي‬
‫إحدى قيمتين‪ True ،‬أو ‪False‬‬
‫‪ : True ) 1‬أن الزر قد تم اختياره‬
‫‪ : False ) 2‬أن الزر لم يتم اختياره‬

‫‪Var1 = RadioButton . Checked‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع منطقي ‪.‬‬
‫‪ :RadioButton‬اسم أداة زر الخيار على النموذج‪.‬‬
‫‪ : Checked‬خاصية تستقبل البيانات إما ‪ True‬أو ‪False‬‬
‫مثال‬

‫‪A = RadioButton1 . Checked‬‬

‫‪3‬‬

‫أداة مربع االختيار ‪CheckBox‬‬

‫إن البيانات التي نحصل عليها من زر الخيار هي بيانات رقمية‬

‫وتخزن في الخاصية ‪ Checkstate‬وهي إحدى ثالث قيم‬
‫‪ ) 1‬إن المستخدم لم يختر المربع فقيمته عندئذ (‪(0‬‬
‫‪ ) 2‬إن المستخدم اختار المربع فقيمته عندئذ (‪(1‬‬
‫‪ ) 3‬أن المستخدم ال يستطيع اختيار المربع فقيمته عندئذ (‪)2‬‬

‫‪Var1 = CheckBox . Checkstate‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي ‪.‬‬
‫‪ :CheckBox‬اسم أداة مربع االختيار على النموذج‪.‬‬
‫‪ : Checkstate‬خاصية تستقبل البيانات من المستخدم‪.‬‬

‫مثال‬
‫‪A = CheckBox 1. Checkstate‬‬

‫‪4‬‬

‫أداة مربع القائمة ‪ListBox‬‬

‫البيانات الموجودة في أداة مربع القائمة مكونة من عدة عناصر‪ ،‬وللحصول على البيانات من القائمة‬
‫عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في القائمة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ListBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ListBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ListBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪A = ListBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ListBox1‬نستخدم هذا األمر‬
‫‪B = ListBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫‪5‬‬

‫أداة الخانة المركبة ‪ComboBox‬‬

‫تجمع بين ميزات أداة مربع النص وأداة مربع القائمة ‪ ،‬حيث يستطيع المستخدم أن يختار من القائمة‬
‫أو يكتب قيمة جديدة‪ .‬والبيانات الموجودة في أداة الخانة المركبة مكونة من عدة عناصر‪ ،‬وللحصول‬
‫على البيانات من األداة عندما يختار المستخدم أحد العناصر يعني أحد شيئين‪:‬‬
‫‪ ) 1‬رقم العنصر في الخانة المركبة بواسطة الخاصية ‪SelectedIndex‬‬

‫‪Var1 = ComboBox . SelectedIndex‬‬
‫‪ ) 2‬قيمة العنصر بواسطة الخاصية ‪Text‬‬

‫‪Var1 = ComboBox . Text‬‬
‫حيث أن ‪:‬‬
‫‪ : Var1‬متغير لتخزين البيانات من نوع عددي أو حرفي ‪.‬‬
‫‪ :ComboBox‬اسم أداة مربع القائمة على النموذج‪.‬‬

‫مثال‬

‫لمعرفة رقم العنصر الذي اختاره المستخدم من القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪A = ComboBox1 . SelectedIndex‬‬
‫حيث ‪ A‬متغير عددي‪.‬‬

‫لمعرفة قيمة العنصر الذي اختاره المستخدم من‬
‫القائمة ‪ ComboBox1‬نستخدم هذا األمر‬
‫‪B = ComboBox1 . Text‬‬
‫حيث ‪ B‬متغير حرفي‪.‬‬

‫أدوات إخراج المعلومات‬
‫نستخدم أدوات إخراج المعلومات إلظهار المعلومات للمستخدم على الواجهة بعد أن عالج البرنامج‬
‫البيانات التي أدخلها المستخدم ‪ ،‬ومن هذه األدوات ‪:‬‬

‫‪1‬‬

‫أداة مربع النص ‪TextBox‬‬

‫‪2‬‬

‫أداة التسمية ‪Label‬‬

‫طريقة إخراج المعلومات إلى مربع النص ‪TextBox‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪TextBox . Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : TextBox‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة مربع النص التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ TextBox4‬نكتب السطر التالي ‪:‬‬
‫‪TextBox4.Text = X + Y‬‬

‫طريقة إخراج المعلومات إلى أداة التسمية ‪Label‬‬

‫‪1‬‬

‫إلخراج المعلومات إلى مربع النص نستخدم الصيغة التالية ‪:‬‬

‫‪Label. Text = Var1‬‬
‫حيث إن ‪:‬‬
‫‪ : Label‬اسم أداة مربع النص على النافذة‪.‬‬
‫‪ : Text‬خاصية النص في أداة التسمية التي سوف نخزن فيها قيمة المتغير ‪Var1‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫مثال‬
‫إلظهار حاصل جمع عددين ‪ X‬و ‪ Y‬في األداة ‪ Label 1‬نكتب السطر التالي ‪:‬‬
‫‪Label1 . Text = X + Y‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫أ‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على مربع نص وزر أمر‬
‫ليقوم المستخدم بإدخال البيانات التي يريدها في مربع النص ثم يضغط على زر األمر‪ .‬إلنشاء هذه النافذة‬
‫يجب أن نكتب األمر الخاص بها‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪Var1= InputBox (message‬‬
‫‪ : Var1‬اسم المتغير الذي سوف تخزن به البيانات التي أدخلها المستخدم وقد تكون حرفية أو رقمية‪.‬‬
‫‪ : InputBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : Message‬النص الثابت الذي يظهر في النافذة‪.‬‬

‫إدخال البيانات بواسطة األمر ‪InputBox‬‬

‫أ‬
‫مثال‬

‫لو أردنا أن نطلب من المستخدم إدخال اسم المستخدم فإننا نكتب‪:‬‬
‫)”أدخل اسم المستخدم“( ‪Username = InputBox‬‬

‫بعض األوامر األساسية للغة فيجول بيسك ستوديو‬
‫‪1‬‬

‫أوامر إدخال البيانات وإخراج المعلومات‬

‫ب‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫يقوم هذا األمر بإظهار نافذة صغيرة غير النافذة الرئيسة في البرنامج تحتوي على المعلومات التي نريد‬
‫للمستخدم قراءتها ‪ ،‬وصيغته كالتالي‪:‬‬

‫)‪MsgBox(message‬‬
‫‪ : MsgBox‬أمر إنشاء هذه النافذة‪.‬‬
‫‪ : message‬اسم المتغير أو نص ثابت يوضع بين أقواس اقتباس ليظهر في النافذة‪.‬‬

‫إخراج المعلومات بواسطة األمر ‪MsgBox‬‬

‫ب‬
‫مثال‬

‫لو أردنا أن نخبر المستخدم أن كلمة السر التي أدخلها خاطئة فإننا نكتب‪:‬‬
‫) ”كلمة السر التي أدخلتها خاطئة ‪ ،‬فضالا أدخل كلمة السر مرة أخرى“( ‪MsgBox‬‬

‫أمر اإلسناد‬
‫يقصد به تخزين قيمة معينة داخل متغير‪ .‬قد تكون هذه القيمة عدد أو عملية حسابية أو سلسلة حرفية‪.‬‬
‫وصيغته كالتالي‪:‬‬

‫‪Var1= Value‬‬
‫‪ : Var1‬اسم المتغير‪.‬‬
‫‪ : Value‬القيمة التي نريد تخزينها في المتغير‪.‬‬

‫الجمل الشرطية‬
‫‪1‬‬

‫الجملة الشرطية ‪IF‬‬

‫تحتوي لغة فيجول بيسك ستوديو على عدة صيغ منها ‪:‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫ب‬

‫صيغة ‪IF – THEN - ENDIF‬‬

‫ج‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫د‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫أ‬

‫صيغة ‪IF – THEN‬‬

‫‪IF condition THEN statement‬‬
‫فإذا تحقق الشرط ‪ condition‬أي كان صحيحا ا فسيتم تنفيذ األمر ‪ statement‬وإذا لم يكن صحيحا ا‬
‫فلن يتم تنفيذ األمر‪.‬‬
‫مثال‬

‫ب‬

‫صيغة ‪IF – THEN - End If‬‬

‫هذه الصيغة هي الصيغة األولى نفسها ‪ ،‬إال أنه سيتم‬
‫تنفيذ أكثر من أمر إذا كان الشرط صحيحا ا ‪ ،‬لذلك‬
‫احتجنا إلى وضع كلمة ‪ End If‬لتوضيح نهاية‬
‫مجموعة األوامر التي سيتم تنفيذها‪.‬‬
‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪Statements‬‬
‫‪...‬‬
‫‪End If‬‬

‫صيغة ‪IF – THEN - ELSE‬‬

‫ج‬

‫يتم تنفيذ مجموعة األوامر ‪ statements1‬في حالة‬
‫كون الشرط صحيحا ا ويتم تنفيذ مجموعة األوامر‬
‫‪ statements2‬في حالة كون الشرط غير صحيح‪.‬‬

‫مثال‬

‫‪IF condition THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪statements2‬‬
‫‪END IF‬‬

‫د‬

‫مطلوب‬

‫صيغة ‪IF – THEN - ELSEIF‬‬

‫إذا كان الشرط األول ‪ condition1‬صحيحا ا فإنه‬
‫ينفذ األوامر ‪ statements1‬فقط‬
‫أما إذا كان الشرط األول غير صحيح فإنه يختبر‬

‫شرطا ا جديداا وهو ‪ condition2‬وإذا كان صحيح‬
‫فإنه ينفذ مجموعة األوامر ‪ statements2‬فقط‬

‫أما إذا كان الشرط الثاني غير صحيح فإنه ينفذ‬
‫مجموعة األوامر ‪ Statements3‬وقد يكون لدينا‬
‫شرط ثالث ورابع وهكذا‬

‫‪IF condition1 THEN‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪ELSEIF condition2 THEN‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪ELSE‬‬
‫…‬
‫‪Statements3‬‬
‫…‬
‫‪END IF‬‬

‫مثال‬

‫‪2‬‬

‫فقط المطلوب في‬
‫‪SELECT CASE expression‬‬
‫الجملة الشرطية ‪Select Case‬‬
‫االطار‬

‫تستخدم هذه الجملة إذا كان هناك عدة احتماالت للشرط فبدالا من استخدام‬
‫جملة ‪ IF‬طويلة ومعقدة تقوم هذه الجملة بالعمل نفسه ولكن بطريقة أسهل ‪،‬‬
‫حيث تختبر هذه الجملة تعبيراا أو شرطا ا معينا ا قد يكون لقيمته أكثر من احتمال‪.‬‬
‫‪ : SELECT CASE‬بداية الجملة‬
‫‪ : Expression‬الشرط أو التعبير المراد اختبار قيمته ‪ ،‬وقد يكون متغيراا أو عملية‬
‫حسابية أو منطقية‪.‬‬
‫‪ : CASE‬توضع قبل كل احتمال‪.‬‬
‫‪ Prob1 , prob2 ….‬القيم المحتملة للتعبير‪.‬‬
‫‪ : Statements1‬األوامر التي تنفذ في حالة تحقق القيمة‪.‬‬
‫‪ : CASE ELSE‬إذا لم يتحقق أي احتمال من االحتماالت السابقة‪ ،‬وهي اختيارية‪.‬‬

‫‪CASE prob1‬‬
‫…‬
‫‪statements1‬‬
‫…‬
‫‪CASE prob2‬‬
‫…‬
‫‪statements2‬‬
‫…‬
‫‪[ CASE ELSE‬‬
‫…‬
‫‪statements3‬‬
‫]…‬
‫‪END SELECT‬‬

‫مثال‬

‫حلقات التكرار‬
‫من أهم أوامر البرمجة التي تساعدنا على تكرار مجموعة من األوامر األخرى عدة مرات ‪ ،‬ويوجد في لغة‬
‫فيجول بيسك ستوديو عدة أوامر للتكرار من أهمها ‪:‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫‪1‬‬

‫األمر ‪For .. Next‬‬

‫يكرر هذا األمر مجموعة من األوامر بعدد من المرات محدد ومعروف مسبقا ا‪ .‬وصيغته هي ‪:‬‬

‫]‪FOR counter = start TO end [STEP step‬‬
‫……‪..‬‬
‫‪statements‬‬
‫……‪.‬‬
‫‪NEXT‬‬
‫‪ : Counter‬متغير يخزن فيه عدد مرات التكرار ويبدأ من قيمة أولية ويتغير إلى أن يصل إلى القيمة‬

‫النهائية المحددة له ‪ ،‬ويسمى بالعداد ‪.‬‬
‫‪ : Start‬القيمة األولية للعداد‪.‬‬
‫‪ : End‬القيمة النهائية للعداد‪.‬‬
‫‪ : Step‬القيمة التي يتم بها زيادة العداد وهي اختيارية ‪ ،‬فإن لم نذكرها فإن الزيادة تكون بـ ‪1‬‬
‫‪ : Statements‬مجموعة األوامر التي سيتم تكرراها‪.‬‬
‫‪ : Next‬نهاية جملة التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الفردية من ‪11 - 1‬‬

‫‪2‬‬

‫األمر ‪DO WHILE‬‬

‫نستخدم هذا األمر إذا كان عدد مرات التكرار غير محدد ولكن لدينا شرط هو الذي يحدد متى ينتهي‬
‫التكرار أي أنه متى ما كان الشرط صحيحا ا نفذنا األوامر واستمر التكرار ومتى ما صار الشرط غير‬

‫صحيح توقف التكرار‪.‬‬

‫‪Do While condition‬‬
‫………‪..‬‬
‫‪statements‬‬
‫………‪..‬‬
‫‪Loop‬‬
‫حيث إن ‪:‬‬
‫‪ : Condition‬الشرط الذي يتم التحقق منه ‪ ،‬ثم تنفيذ التكرار إذا كان صحيحا ا والتوقف إذا كان خاطئا ا‪.‬‬
‫‪ : Statements‬مجموعة األوامر التي تنفذ داخل التكرار‪.‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد من ‪10 - 1‬‬

‫مثال‬
‫أكتب برنامج لجمع األعداد الزوجية من ‪10 - 0‬‬

‫المصفوفات‬
‫لو كان لديك درجات ‪ 100‬طالب تريد عمل بعض االحصاءات عليها كمعرفة المتوسط لها وأعلى درجة وأقل‬
‫درجة‪ .‬فأين سوف تخزن هذه الدرجات؟ هل سوف تعرف ‪ 100‬متغير لتخزينها؟ يبدو هذا غير منطقي أليس‬

‫كذلك؟‬
‫يوجد في لغة الفيجول بيسك ما يسهل علينا عملية تعريف عدد كبير من المتغيرات تشترك في كونها تمثل‬
‫نفس نوع البيانات وهي المصفوفات‪.‬‬
‫المصفوفة ‪ : Array‬هي مجموعة من المتغيرات لها نفس االسم ونفس نوع البيانات ويتم تعريفها في جملة‬
‫واحدة وصيغتها‪:‬‬

‫‪DIM Var1(n) As Type‬‬
‫حيث إن ‪:‬‬
‫‪ : Var1‬اسم المصفوفة‪.‬‬

‫‪ : N‬عدد عناصر المصفوفة – ‪1‬‬
‫‪ : Type‬نوع البيانات المخزنة في المصفوفة‪.‬‬

‫مثال‬
‫عرف مصفوفة لتخزين درجات ‪ 100‬طالب‪.‬‬

‫‪DIM Grades(99) as single‬‬

‫أليس هذا أفضل من تعريف ‪ 100‬متغير ؟‬

‫فوائد المصفوفات‬
‫‪ ) 1‬توفير الوقت والجهد‪.‬‬
‫‪ ) 2‬تؤدي إلى صغر حجم البرنامج‪.‬‬

‫التعامل مع المصفوفات‬
‫لو عرفنا مصفوفة فيها ‪ 10‬أعداد كالتالي ‪:‬‬

‫‪DIM A(9) AS Integer‬‬
‫وخزنا فيها مجموعة من األرقام ‪ ،‬سيكون شكل المصفوفة كالتالي ‪:‬‬

‫لو أردنا تغيير قيمة العنصر الخامس لكتبنا ‪:‬‬
‫‪A(4) = 10‬‬

‫مثال‬

‫أكتب برنامج يقوم بإدخال درجات ‪ 100‬طالب في مصفوفة ‪ ،‬ثم يقوم بحساب متوسط‬
‫درجات الطالب ‪ ،‬ثم يقوم بإيجاد أعلى درجة من درجات الطالب‪.‬‬