الفصل الاول
تمثيل البيانات
عندما يتم ادخال البيانات بواسطة وحدات الادخال فانها تخزن داخل الذاكرة الداخلية
وتتكون ذاكرة الحاسب من ملايين الخلايا ( الاماكن ) المتساوية وتسمى هذه الخلايا بالبايت (byte) وتحمل هذه الخلايا ارقاما متسلسلة تبدأ من الصفر
تمثل عدد هذه الخلايا حجم ذاكرة الحاسب
اى ان كلما زاد عدد هذه الخلايا (byte) كانت ذاكرة الجهاز اكبر وبالتالى فان سعة تخزين البيانات تكون اكبر
تقاس ذاكرة بالكيلوبايت
***********************************************
نجد عند تخزين بيان ما فى الذاكرة نجد انه يشغل مساحة حجمها خلية واحدة ( واحد بايت) وبيان اخر يشغل مساحة حجمها 3 خلايا ( 3 بايت ) نجد هذا الاختلاف فى المساحة المحجوزة للبيان يرجع الى نوع البيان المخزن داخل هذه الخلايا
ومن الممكن ان يكون البيان المخزن داخل هذه الخلايا ثابت او متغير
ثابت : هوالبيان الذى لاتتغير قيمته اثناء تشغيل البرنامج
متغير : هو البيان الذى تتغير قيمته اثناء تشغيل البرنامج
انواع البيانات تنقسم الى
أعداد حروف تاريخ منطقى
عدد صحيح عدد عشرى
Byte single char date boolean
Short double string
Integer decimal
Long
**************************************************
الجدول التالى يوضح نوع البيان وحجمه الذى يشغله فى الذاكرة وطبيعة البيان المخزن داخله ودرجة الدقة
نوع البيان الحجم الذى يشغله فى الذاكرة بالبايت طبيعة البيان المخزن داخله درجة الدقة
(عدد الخانات)
Byte 1 من 0 الى 255 لا توجد
Short 2 من – 32768
الى 32767 5 ارقام
Integer 4 من -2147483648 الى 2147483647 10 ارقام
Long 8 اكثر من 2147483647 19 رقم
single 4 من 3810 الى 3810 7 ارقام
double 8 اكبر 3810 15 أرقام
decimal 16 مبلغ من المال 29 رقم
char 2 تخزين حرف واحد لا يوجد
string العديد من الخلايا تخزين اعداد من 0 الى
2 بليون حرف لا يوجد
date 8 تاريخ من 1/1/0001
الى 31/12/9999 لا يوجد
boolean 2 True or False
او yes or No لا يوجد
مثال توضيحى
لو اردنا تخزين العدد الصحيح 200 فاننا يمكن تخزينه فى كل من byte ,short , integer , long ولكن الاصح تخزينه من نوع byte لانه بذلك سيشغل مساحة اقل فى الذاكرة
مثال آخر
لو اردنا تخزين العدد 417 321456.15478961 داخل ثلاث متغيرات من نوع decimal , single , double
نجدان القيمة التى تخزن داخل متغير من نوع single هى : 321456.2
والقيمة التى تخزن فى متغير من نوع double هى 321456.154789614
والقيمة التى تخزن فى متغير من نوع decimal هى 321456.15478961417
**************************************************
الثوابت : هى طريقة لاعطاء اسماء للقيم التى لا تتغير اثناء تشغيل البرنامج
ويوجد فى البرنامج نوعين من الثوابت
أ – ثوابت جوهرية: وهى ثوابت موجودة فى بناء وجوهر نظام vb.net اى انها ثوابت سابقة التعريف يستطيع اى برنامج vb.net ان يستعملها مباشرة بدون الاعلان عنها مثال للثوابت الجوهرية ثوابت الالوان
ب- الثوابت المسماه : هى ثوابت يقوم المبرمج بتعريفها طبقا لاحتياجات البرنامج معنى ذلك انها غيرسابقة التعريف بالنسبة للبرنامج فيجب
الاعلان عنها قبل استعمالها فى البرنامج والا سيحدث خطا
ويسمى هذا الخطأ syntax error معناه خطأ فى قواعد البرمجة
*********************************************
الصيغة العامة للاعلان عن الثوابت فى البرنامج
يجب اعطاء قيمة للثابت كما هو موضح بأعلى فى التعريف
اهمية الاعلان عن الثوابت بدلا من استخدام قيمها مباشرة
1- السهولة فى تغير قيمة الثابت اذا اردنا ذلك
2- يصبح البرنامج مفهوما اكثر عند قرائته
***********************************************
المتغيرات :
هى القيم التى تتغير اثناء تشغيل البرنامج ويجب الاعلان عنها داخل البرنامج
الصيغة العامة للاعلان عن المتغيرات
*******************************************
عند كتابة اسم المتغير او الثابت يجب اتباع الاتى حتى لايحدث خطأ (syntax error )
1- يجب ان يبدأ الاسم بحرف من الحروف الانجليزية سواء captal او small
2- بعد الحرف الاول يمكن ان يأتى اى عدد من الحروف او الارقام او الرمز _ underscore باى ترتيب
3- لا يسمح ان يحتوى الاسم على اى رموز او علامات خاصة كالمسافة والنقطة وعلامة الاستفهام وعلامة التعجب ......... الخ
4- لا يسمح ان يكون الاسم من الكلمات المحجوزة فى vb.net مثل (double,date,dim,const )
ملاحظات
من المستحب ان يكون اسم المتغير او الثابت يدل على محتواه
اذا اردنا ان يكون اسم المتغير من مقطعين والمسافة غير مسموحة فى اسم المتغير فالحل نبدأ كل مقطع بكابتل
مثال : first name خطأ لوجود مسافة فى اسم المتغير
انما FristName صحيحة كاسم للمتغير ؛ وايضا frist_name صحيحة لان لايوجد مسافات والرمز المستخدم هو underscore
يفضل بعض المبرمجين ان يبدأ اسم المتغير بثلاثة احرف تعطى انطباعا بنوع المتغير مثال لو متغير اسمه frist وسيخزن به بيان من نوع integer فمن المستحسن ان يكون اسم المتغير Intfrist
***********************************************
يتحدد تلقائيا ثلاث خصائص لنوع المتغير فى اى برنامج عند اختيارنا لهذا المتغير وهذه الخصائص هى :
1- نوع البيانات التى يمكن تخزينها فيه
2- العمليات التى يمكن اجراؤها عليه
3- حجم الذاكرة الذى يحتاجه هذا المتغير
ما الفرق بين هذين التعريفين
Dim a as integer
Dim b as integer=20
اولا كلاهما تعريف لمتغير لانه بدأ بكلمة dim ولكن الاختلاف ان قيمة المتغير a الابتدائية هى صفر وقيمة المتغيرb الابتدائية هى 20
ما الفرق بين هذين التعريفين
Dim a as string
Dim b as string= "sama"
كما شرحنا انهم تعريف لمتغير ولكن القيمة الابتدائية للمتغير a هى سلسلة حرفية فارغة "" والقيمة الابتدائية للمتغير b هى "sama"
هل السلسلة الحرفية "" تساوى السلسة الحرفية " "
الاجابة لا
لان "" عبارة عن سلسلة حرفية فارغة أما " " فهى سلسلة حرفية بها مسافات( طولها هو عدد المسافات)
***********************************************
مثال توضيحى
اكتب صيغة تعريف المتغيرات الاتية
المتغيرين a,b نوع البيان الذى سيخزن بداخلهم integer
المتغيرين c,d نوع البيان الذى سيخزن بداخلهم string
1- Dim a as integer
Dim b as integer
Dim c as string
Dim d as string
2- Dim a,b as integer
Dim c,d as string
3-Dim a,b as integer , c,d as string
الثلاث صور السابقة لتعريف المتغيرات كلها صحيحة ولكن نلاحظ فى الطريقة الاخيرة اننا اعلنا عن جميع المتغيرات باستخدم امر ..... واحد
*******************************************
ان اهم دور للمتغيرات فى البرنامج هو تخزين البيانات بها ولعمل ذلك نستخدم امرالتخصيص وهذا الامر يأخذ الشكل الاتى
القيمة = اسم المتغير
= تسمى معامل التخصيص
يجب ان تكون القيمة هى التى على يمين = ، واسم المتغير على شمال =
A = 10
10 = A
الصيغة الاولى صحيحة كأمر تخصيص لان معناها ان القيمة 10 سيتم تخزينها داخل المتغير A
اما الثانية الصيغة خطأ لان معناها ان قيمة المتغير A سيتم تخزينها فى 10 نفهم من ذلك ان القيمة الموجودة على يمين = هى التى ستخزن فى المتغير الموجود على يسار =
يجب ان تكون القيمة المراد تخزينها من نوع ملائم لنوع المتغير الذى سيتم التخزين به
مثال :
Dim a as integer
a = mohamed
نجد فى المثال السابق اننا حجزنا مكان فى الذاكرة لمتغير اسمه a و سيتم تخزين بيانات عددية صحيحة بداخله ولكن هنا نلاحظ فى الخطوة الثانية انه تم ادخال بيان حرفى وهذا خطأ ولكن الصح مثلا a=7 عدد
القيمةالتى تخزن فى المتغير اما ان تكون
A=41- قيمة مجردة مثال
a = 2 , b = 5 - قيمة متغير اخر مثال2
ِa = b
قبل عملية التخصيص ( الاحلال ) بعد عمليةالتخصيص ( الاحلال )
a b a b
******************************
3- ناتج عملية حسابية مثال
a = 4, b = 7
a = b + 2
قبل عملية التخصيص ( الاحلال ) بعد عمليةالتخصيص ( الاحلال )
a b a b
نلاحظ فى 2 ،3 ان قيمة المتغيرات التى على يمين = لا تتغير وانما قيمة المتغيرات الموجودة على شمال = هى التى تتغير
وايضا ان القيمة الجديدة للمتغير تحل محل القيمة القديمة
مفهوم العلامة = فى امر التخصيص يختلف عن مفهومها فى المعادلات الرياضية
X + 1 = 3 مثال :
تمثل معادلة رياضية ولكن غير صحيحة كأمر تخصيص لوجود عملية حسابية على يسار =
X = x + 1
لا تمثل معادلة رياضية ولكنها صحيحة كأمر تخصيص ومعناها ان قيمة المغير الجديدة
تساوى قيمة المتغير القديمة +1 x لــ
*******************************************
1- تحديد القيمة الموجودة على يمين = كالاتى
أ- استبدال كل متغير او ثابت بقيمته
ب- اجراء العملية الحسابية واستخراج النتيجة
2- تخزين النتيجة فى المتغير على شمال =
*****************************************
كما اننا نقوم بتخزين ناتج العمليات الحسابية فى المتغيرات الرقمية باستخدام امر التخصيص فاننا نستطيع ايضا تخزين القيم الحرفية فى متغيرات حرفية باستعمال نفس الامر
وايضا كما اننا نقوم باجراء عمليات رياضية باستعمال المتغيرات الرقمية فاننا نستطيع بالمثل اجراء بعض العمليات على المتغيرات الحرفية
من اشهر العمليات التى يمكن ان نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفى ببعضها لتكوين متغير حرفى واحد
هذا الربط يتم باستعمال الرمز & الذى يسمى معامل الربط
مثال :
"number of student" = "of student" & " "& "number"
*****************************************
التحويل بين الانواع المختلفة للبيانات
تختلف طريقة تخزين الانواع المختلفة من البيانات فى ذاكرة الحاسب كما يختلف ايضا
تختلف طريقة تخزين الانواع المختلفة من البيانات فى ذاكرة الحاسب كما يختلف ايضا حجم الذاكرة (عدد الخلايا) التى يتم التخزين بها . فمثلا تختلف طريقة تخزين القيمة الحرفية 123 اختلافا تاما عن طريقة تخزين القيمة الرقمية 123 فمثلا يتم تخزين القيمة الحرفية 123 فى ثلاث خلايا اما القيمة الرقمية 123 فمن الممكن تخزينها فى خلية واحدة
عند ادخال البيانات اثناء تشغيل البرنامج فاننا ندخلها عن طريق اداة الكتابة text وتكون هذه البيانات هى محتوى الخاصية (textbox)
ولكن الفيجول بيزيك يتعامل مع محتوى الخاصية على انها بيان حرفى وليس عددي فى هذه الحالة لايمكن اجراء عمليات حسابية على هذه البيانات مباشرة
ولذلك اذا اردنا اجراء العمليات الحسابية على البيانات المدخلة بواسطة اداة ...... فيجب تحويلها اولا الى قيم عددية ويتم ذلك من خلال استخدام دالة.................
الشكل العام لدالة .......................
لتحويل قيمة حرفية الى رقم عدد صحيح
Integer.parse(القيمة الحرفية التى تريد تحويلها
لتحويل قيمة حرفية الى رقم عددعشرى
Decimal.parse(القيمة الحرفية التى تريد تحويلها
*********************************************
تحويل البيانات الرقمية الى بيانات حرفية
كما سبق وشرحنا انه يجب تحويل القيمة المدخلة بواسطة اداة الى قيم عددية لاجراء العمليات الحسابية عليها فاننا ايضا لكى نظهر هذه البيانات فى اداة او اداة يجب تحويلها الى قيم حرفية ولعمل ذلك نستخدم الدالة
الشكل العام للدالة............
try/catch مجموعة اوامر
عنما يتم تحويل البيان المدخل بواسطة اداة ................ الى بيان رقمى بالطريقة السابقة فعندما يقوم مستخدم البرنامج بادخال قيمة حرفية ينتج عن ذلك توقف البرنامج وظهور رسالة تفيد حدوث خطأ وممعظم مستخدمى البرامج لا يستطيعون التعامل مع هذه الرسائل لعدم فهمها
فلذلك يفضل المبرمجين استعمال الامر لان هذا يتيح لهم التعامل مع الاخطاء بانفسهم وعرض رسائل أوضح لمستعمل البرنامج يقوم المبرمجون بكتابتها
ولذلك فان مجموعة أوامر تستخدم لاكتشاف الاخطاء التى تحدث اثناء تشغيل البرنامج والتعامل معها
*******************************************
try/catch الصيغة العامة لاستخدام اوامر
Try
الجملة المحتمل مستخدم البرنامج ان يخطئ فيها
Catch
الرسالة التى تظهر لمستخدم البرنامج موضح بها الاخطاء التى حدثت
End try
Msgbox("الرسالة") ابسط شكل للرسالة
اكتب مشروع لجمع عددين
الكود المستخدم لعمل البرنامج
Dim first, second, result As Decimal
first = Decimal.Parse(TextBox1.Text)
second = Decimal.Parse(TextBox2.Text)
result = first + second
Label4.Text = result.ToString
End Sub
نجد عند تنفيذ هذا الكود عند ادخال قيمة حرفية يتوقف البرنامج ويعرض رسالة خطأ
البرنامج باستعمال الامر try
Dim first, second, result As Decimal
try
first =Decimal.Parse(TextBox1.Text)
second =Decimal.Parse(TextBox2.Text)
catch
msgbox("لقد قمت بادخال قيمة حرفية")
End try
result = first + second
Label4.Text = result.ToString
End Sub
`
العمليات الحسابية
vb.net الجدول الاتى يوضح العمليات الحسابية التى يمكن اجراؤها فى
العملية المعامل
جمع +
طرح -
ضرب *
قسمة عادية /
قسمة اعداد صحيحة \
باقى القسمة Mod
الاسس ^
قسمة الاعداد الصحيحة وباقى القسمة
قسمة الاعداد الصحيحة هى قسمة عدد صحيح على عدد صحيح واهمال باقى القسمة لتكون النتيجة عددا صحيحا
قسمة عادية41/4= عشرة وربع مثال
قسمة أعداد صحيحة 41/4=10
41 mod 4 = 1 باقى القسمة
الاسس ^
يستعمل معامل الاس فى رفع عدد معين (الاساس) الى اس معين وتكون التيجة من النوع double
اولويات تنفيذ العمليات الحسابية
جميع لغات البرمجة بما فيها vb.net قد وضعت قاعدة تسمى قاعدة اولويات تنفيذ العمليات الحسابية لتحديد اولوية تنفيذ العملية الحسابية وفى هذه القاعدة يتم ترتيب المعاملات المختلفة ترتيبا تنازليا حسب اولوية تنفيذها عند اجتماعها فى عملية حسابية واحدة
ترتيب العمليات فى vb.net
العمليات التى بين الاقواس
عمليات الاسس
عمليات الضرب والقسمة
عملية قسم الاعداد الصحيحة
عمليات حساب باقى القسمة
عمليات الجمع والطرح
فى حالة وجود اكثر من عملية لها نفس الاولوية كالضرب والقسمة او والجمع والطرح فان ترتيب تنفيذها يكون من اليسار الى اليمين ، اما اذا تداخلت الاقواس (كأن يكون هناك اقواس داخل اقواس ) فان الاقواس الداخلية يتم تنفيذ ما بينها اولا
*************************************************
ما نتيجة تنفيذ العليات الاتية
(أ)3+2*2^2/4-1+5*3
3+2*4/4-1+5*3
3+8/4-1+15
3+2-1+15
5-1+15
20-1
19
(ب) 2+1*3^2\4
2+1*9\4
2+1*2
2+2
4
***********************************************
التحويل بين انواع البيانات العددية
التحويل المباشر ( التلقائى )
فى التحويل المباشر : يتم التحويل من نوع عددى ذى سعة تخزينية صغيرة الى نوع عددى ذى سعة تخزينية اكبر
يوضح الجدول الاتى التحويلات التى يمكن اجراؤها بطريقة مباشرة
الى ( to ) من ( from )
Short,integer,long,single,double,or decimal byte
Integr,long,single,double,or decimal short
Long,single,double,or decimal integer
Single,double,or decimal long
Single or double decimal
double Single
ملاحظات : التحويل المباشر لا يصلح فى الحالتين الاتيتين
1- تحويل البيانات من النوع Double الى اى نوع اخر
2- تحويل البيانات التى تحتوى على كسور Double,Single الى النوع Decimal ويجب ان يتم بالطريقة المباشرة
مثال : اذا أردنا تحويل متغير a من نوع integer ، الى متغير b من نوع decimal فان التحويل يتم بالطريقة المباشرة بالصورة a=b
السعة التخزينية : عدد الخلايا التى يشغلها نوع البيان فى الذاكرة ************************************************
التحويل غير مباشر
يتم استعمال التحويل غير المباشر بين البيانات العددية التى لا يمكن اجراء التحويل المباشر بينها مثل تحويل النوع double لى اى نوع اخر من انواع البيانات
التحويل غير مباشر : هو تحويل من نوع عددى ذى سعة تخزينية كبيرة الى نوع عددى ذى سعة تخزينية اقل
فى هذا التحويل قد يتولد عنه خطأ اذا ادى الى ان يفقد الرقم المحول احدى خاناته المؤثرة الهامة ونعنى هنا بالخانات المؤثرة اى خانة من خانات الرقم الصحيح مع ملاحظة ان الكسور يتم تقريبها الى اقرب رقم صحيح فى حالة التحويل الى ارقامصحيحة اما اذا لم يحدث فقد لاى خانة مؤثرة فان عملية التحويل تتم ولا يتولد خطأ وعلى هذا يجب
عدم استعمال التحويل غير مباشر الا اذا كنت متأكد ان النوع المحول اليه يستوعب القيمة التى سيتم تحويلها
مثال :
اذا كان لدينا زجاجة مياه غازية سعتها التخزينية لتران ولكن يوجد بها لتر فقط واردنا افراغها فى زجاجة سعتها التخزينية لتر واحد فقط فنجد ان هذا يتم بسهولة ولا يتولد عنه خطأ
كيفية التحويل غير المباشر
يتيح vb.net للمبرمجين تصنيف (class ) يسمى تصنيف التحويل ( convert ) والذى يحتوى على طرق ( methods ) تبدأ اسماؤها بـ to
للتحويل بين الانواع المختلفة كما هو موضح بالجدول امامك
للتحويل الى نوع البيان التالى استخدم الطريقة
Short Toint16
Integer Toint32
Long 64 Toint
Decimal Todecimal
Single Tosingle
Double Todouble
مثال :
اذا اردت ان تخزن قيمة المتغير x من نوع single فى المتغير y من نوع decimal
الاجابة تتم عملية التحويل بالشكل الاتى :
Y = convert.Todecimal(x)
2- اذا اردت تخزين قيمة المتغير x من النوع double فى المتغير y من نوع integer
الاجابة : y=convert.toint32(x) وهكذا
*************************************************
اجابة اسئلة الكتاب المدرسى الفصل الاول
السؤال الاول : اختر الاجابة الصحيحة من بين الاقواس
1- للتحويل بين نوع بيان رقمى لنوع بيان رقمى اخر نستخدم الاجراء
أ – convert
ب – transfer
جـ- parse
د- implicit الاجابة رقم أ
2- الرمز " " فى لغة vb يرمز به الى (السلسلة الحرفية الفارغة )
3- التعبير الشرطى الذى يستخدم فى الاعلان عن ثلاثة متغيرات من النوع رقم صحيح ( integer ) ومتغيرين من النوع سلسلة حرفية ( string ) هو
أ ) dim n1,n2,n3 as integer, dim s1,s2 as string
ب) dim n1,n1,n3 as integr
Dim s1,s2 as string
ج) dim n1 as integer
Dim n2 as integer
Dim n3 as integer
Dim s1 as sting
Dim s2 as string
د) كل من ب) و ج) الاجابة كل من ب) و ج)
ــــــــــــــــــــــــــــــــــــــ
1- عند وضع قيمة فى عنوان فى ذاكرة الحاسب فان هذه القيمة
( تحل محل القيمة السابقة الموجودة فى هذا العنوان )
ـــــــــــــــــــــــــــــــــــــ
عند قراءة قيمة من عنوان من الذاكرة يحدث الاتى ( لا تتاثر محتويات عنوان الذاكرة )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
2- القسمة الرقمية integer division يعبر عنها عن طريق ( \ )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
3- يتم احتساب قيمة التعبير الموجود على يمين علامة = فى التوقيت الاتى ( قبل تنفيذ التخصيص )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
4- يبدأ الاعلان عن المتغيرات باستخدام الكلمة الاتية ( dim )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
5- لتحويل قيمة عددية الى نوع سلسلة حرفية string يتم استخدام الدالة الاتية ( tostring) )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
6- يتم احتساب التعبيرات الحسابية بطريقة ( من المستوى الاعلى فى الاسبقية الى المستوى الاقل )
ـــــــــــــــــــــــــــــــــــــــــــــــــ
السؤال الثالث
ما الخطأ فى البرنامج الموضح فى الشكل الاتى
Dim number1 as integer
Number1=(4*3^2)/(10 mod 3 -1 )
الاجابة
Number1=(4*9)/(1-1)
Number1=36/0
الخطأ : ان باقى القسمة 10 mod 3=1 واحد ناقص واحد يساوى صفر فيصبح المقام صفر والقسمة على صفر مستحيلة
*********************************************
أسئلة الوزارة من على الانترنت
السـؤال الأول:
أكمـل مكـان النقـط بمـا تراه مناسـباً لكي يجعـل العبـارات صحيحـة:
أراد يوسـف حسـاب مسـاحة دائـرة ما، فقـام بكتـابـة البرنـامـج التـالي:
Const Pi As Single = 3.14
Dim R As Single
Dim Area As Double
R = 1000
Area = Pi * R * R
Msgbox ( Area )
1- اسـتخدم يوسـف المتغـير العـددي R من نـوع ............ لوضـع بداخـله القيمـة ............
2- كما اسـتخدم أيضـاً المخـزن العـددي الثـابت ............ من النـوع Single لتخصيص له
القيمـة ............
3- كما تم اسـتخدام المتغـير العـددي .................. من النـوع .................. لوضـع
فيـه .................. وهـي تسـاوي تمامـاً Pi * R^2.
4- تم الإعـلان عـن المتغـير العـددي R باسـتخدام الكلمـة Dim ، كما تم الإعـلان عن المخزن الثابت Pi باسـتخدام الكلمـة ..................
السؤال الثالث اختر الإجابة الصحيحة مما بين القوسين لكل مما يأتي:
1- المتغـير العـددي الذي يأخـذ قيـم عـدديـة صحيحـة من 0 إلى 255 هـو
مـن النـوع ( Byte – Integer – String ).
2- المتغـير من النـوع ( Boolean – Byte – Short ) يأخـذ القيمـة True أو False.
3- لتخـزين قـيم عدديـة تحتوي على كسـور نستخدم متغيرات من النوع (Integer – Short – Single).
4- لتخـزين قـيم عـدديـة صحيحـة لا تحتـوي على كسـور نسـتخدم متغـيرات
من النـوع (Integer – Double – Single).
5- من قـواعـد تسـميـة المتغـيرات أو الثـوابـت في البرنامـج، يجـب أن
تبـدأ بـ ( رقـم - حـرف – أي رمـز ).
6- يمكـن اسـتخـدام الكلمـة ( Dim – Const – End ) للإعـلان عن أسـماء المتغـيرات في البرنامـج.
7- يمكـن اسـتخـدام الكلمـة ( Sub – Const – Dim ) للإعـلان عن أسـماء الثـوابت في البرنامـج.
8- تُسـتخدم أوامـر ( Try/Catch -Dim/As - Const/As ) لاكتشـاف الأخطـاء التي تحـدث أثنـاء تشـغيـل البـرنـامـج والتعامـل معهـا.
9- بعـد تنفـيذ الصـيغـة الحسـابيـة 2 + 3 * 4 يكـون النـاتـج هو ( 14 – 20 – 9 ).
10- نـاتـج تنفـيذ الصـيغـة الحسـابيـة 1+ 3^2 هـو ( 10– 16– 9 ).
السـؤال الثاني:
اختر الإجابة الصحيحة مما بين القوسين لكل مما يأتي:
Dim , Const , String , Single ) )
1- أراد خـالـد حسـاب مجمـوع درجـات طـالب في المـواد الدراسـية فقـام باسـتخدام متغـيرات عـدديـة من النـوع Single حـيث تـم الإعـلان عنهـا بالكلمـة .................
2- كما اسـتخدم أيضـاً متغـير مـن النـوع ................... لوضـع فيـه اسـم الطـالـب.
3- كما تـم اسـتخدام متغـير مـن النـوع ................... لوضـع فيه مجمـوع درجات المواد الدراسـية.
ضع علامة () أمام العبارة الصحيحة و علامة (×) أمام العبارة الخطأ للعبارات الآتية:
1- المخازن التي يمكن أن تتغير قيمها أثناء تشغيل البرنامج يطلق عليها اسم "المتغيرات". (.....)
2- المخازن التي تتغير قيمها أثناء تشغيل البرنامج يطلق عليها اسم "الثوابت". (.....)
3- المتغـير من النـوع Integer يأخـذ قيـم عـدديـة صحيحـة من 0 إلى 255. (.....)
4- المتغـير من النـوع Byte يأخـذ قيـم عـدديـة صحيحـة من 0 إلى 255. (.....)
5- المتغـير من النـوع Boolean يأخـذ القيمـة True أو False. (.....)
6- لتخـزين قـيم عدديـة تحتوي على كسـور نستخدم متغـيرات من النوع Integer أو Short. (.....)
7- لتخـزين قـيم عدديـة تحتوي على كسـور نسـتخدم متغـيرات من النوع Single أو Double. (.....)
8- من قواعـد تسـمية المتغـيرات أو الثـوابـت في البرنامـج، يجـب أن تبـدأ بحـرف. (.....)
9- يمكـن اسـتخدام الكلمات Dim أو Integer أو Double كأسـماء لمتغـيرات في البرنامـج. (.....)
10- تُسـتخدم الكلمـة Dim للإعـلان عـن أسـماء المتغـيرات داخـل البرنـامـج. (.....)
11- تُسـتخدم الكلمـة Constant للإعـلان عـن أسـماء الثـوابت داخـل البرنـامـج. (.....)
12- تُسـتخدم أوامر Try/Catch لاكتشـاف الأخطاء التي تحدث أثناء تشـغيل البرنامج والتعامل معها. (.....)
13- من أولويـات العمليـات الحسـابيـة، عملية الجمـع تسـبق عمليـة القسـمة عنـد التنفيـذ. (.....)
14- من أولويـات العمليـات الحسـابيـة، عملية الضـرب تسـبق عمليـة الطـرح عنـد التنفيـذ. (.....)
15- تنفـيذ العمليات التي ما بداخـل الأقـواس تسـبق جميـع العمليـات الحسـابيـة. (.....)ـــــــــــ
الفصل الثانى
الشروط والقرارات
التعبير الشرطى : هو عبارة عن صياغة للعلاقة بين كميتين. اى من هاتين الكميتين من الممكن ان تكون متغير او خاصية او ثابت او قيمة مجردة
إذا كانت العلاقة صحيحة فان قيمة التعبير الشرطي true أما إذا كانت العلاقة غير صحيحة فقيمة التعبير الشرطي هي false
لصياغة التعبير الشرطي نقوم باستعمال بعض المعاملات تسمى معاملات المقارنة وهى > اكبر من ، < اصغر من ، <> لا تساوى ، <= اقل من أو تساوى ، >= اكبر من او يساوى
الأمر If …… Then……..Else) )
يتم استخدام هذا الأمر في حالة ما إذا كان هناك بديلين ( أ ، ب) وكنا نريد أن يتم تنفيذ احد البديلين إذا كانت قيمة الشرط true ويتم تنفيذ البديل الآخر إذا كانت قيمة الشرط false
القاعدة العامة لاستخدام الأمر if …… then ………else ))
If (condition) الشرط then
statment1( الجمل التي تحقق الشرط ( يعنى قيمة التعبير الشرطي صحيحة)
Else
Statment2 الجمل التي لا تحقق الشرط ( يعنى قيمة التعبير الشرطي غير صحيحة )
End if
معنى ذلك إذا كان الشرط صحيحة يتم تنفيذ الجمل اللي بعد then ويهمل مجموعة الأوامر اللي بعد else
وإذا كان الشرط خاطئ فيتم إهمال الجمل اللي بعد then ويتم تنفيذ الجمل اللي بعد else
****************************************************
مثال اكتب برنامجا لحساب ناتج قسمة عددين
لتصميم اى مشروع فى vb.net
الخطوة الأولى : نقوم بفتح مشروع جديد
7- من قائمة ملف ) file ) واختيار مشروع جديد ( new project ) او الضغط على create project
8- من المربع الحواري نقوم باختيار windows من نوع المشروع (project type ) ومن قوالب ( templates ) نختار windows application
9- ومن المربع أيضا نقوم بكتابة اسم المشروع ويكون اسم يدل على المشروع ثم نضغط موافق
الخطوة الثانية : تصميم واجهة البرنامج form من خلال
1- رسم الأدوات المطلوبة على form
2- وتنسيقها وذلك من خلال صندوق الخصائص وذلك بتحديد الأداة فتظهر خصائصها في صندوق الخصائص وإذا لم تجد صندوق الأدوات أمامك نظهره من خلال فتح القائمة المختصرة للأداة واختيار خصائص properties او من خلال قائمة عرض view واختيار صندوق الخصائص properties window او من خلال الضغط على الاداة من شريط الأدوات او من الخلال الوقوف بعيد عن الفورم وفتح القائمة المختصرة واختيار خصائص أيضا
الخطوة الثالثة تحديد الاداة التى سيتم كتابة الكود بداخلها( الاداة التى سيتم الضغط عليها لتنفيذ الامر )
ويتم الدخول لنافذة البرمجة من خلال الضغط مرتين متتاليتين على الأداة
داخل نافذة البرمجة يتم الاتى
اولا تعريف المتغيرات او الثوابت الموجودة بالبرنامج
تخزين البيانات داخل المتغيرات باستخدام امر التخصيص
اجراء العمليات المختلفة على البيانات
اظهار الناتج على form من خلال اداة textbox او label
رابعا تشغيل البرنامج من خلال الضغط على مفتاح f5 أو من قائمة debug نختار start او الضغط على رمز من شريط الأدوات
ولايقاف التشغيل نضغط على رمز من شريط الأدوات او من قائمة debug ونختار stop
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim first, second, result As Decimal
first = Decimal.Parse(TextBox1.Text)
second = Decimal.Parse(TextBox2.Text)
If second = 0 Then
MsgBox("القسمة على صفر مستحيلة")
Else
result = first / second
Label3.Text = result.ToString
End If
End Sub
End Class
ولإضافة الأمر try / catch لاكتشاف الخطأ اذا قام المستخدم بإدخال قيمة حرفية فيصبح الكود بالشكل
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim first, second, result As Decimal
Try
first = Decimal.Parse(TextBox1.Text)
second = Decimal.Parse(TextBox2.Text)
Catch
MsgBox("لقد ادخلت قيمة جرفية")
End Try
If second = 0 Then
MsgBox("القسمة على صفر مستحيلة")
Else
result = first / second
Label3.Text = result.ToString
End If
End Sub
واذا ادخلت قيم حرفية سيظهر مربع حواري مكتوب فيه لقد أدخلت قيمة حرفية كما فى المثال الاول
**************************************************
الأمر البسيط ( If …………Then )
يتم استخدام هذا الأمر إذا كان لدينا بديل واحد ( أ ) ولا شئ بمعنى انه عند قيمة معينة للشرط يتم تنفيذ البديل ( أ ) أما عند القيمة الأخرى فلا يتم عمل شئ
القاعدة العامة لاستخدام الأمر
If (condition) الشرط then
الجمل التي تحقق الشرط
End if
then اى عندما يكون الشرط صحيح يتم تنفيذ الجمل اللي بعد
End if وعندما يكون الشرط غير صحيحة يتم تنفيذ الجمل اللي بعد
********************************************************
If …….. Then ……… Else الشكل العام للأمر
If الشرط 1 then
1 نفذ الجمل
Else if الشرط2 then
نفذ الجمل 2
Else if الشرط 3 then
نفذ الجمل4
..............
....................
....................
Else
N نفذ الجمل
End if
شرح الأمر
عند الوصول إلى أول قيمة true يتم تنفيذ مجموعة الأوامر الخاصة بها أما باقي الأوامر فيتم تجاهلها
أما إذا لم توجد اى قيمة true فيتم تنفيذ الأوامر اللي بعد else
أما في حالة عدم وجود أوامر بعد Else وعدم وجود اى شرط ذي قيمة true فلا يتم تنفيذ اى أمر ويذهب البرنامج إلى أول أمر بعد end if
****************************************************
مقارنة القيم والمتغيرات الحرفية ( string )
في vb.net نستطيع أن نقارن بين المتغيرات الحرفية بمتغيرات حرفية أخرى أو ثوابت حرفية أو خصائص حرفية لمتغيرات أخرى
كيفية المقارنة
تتم المقارنة فى vb بمقارنة الرمز الموجود في أقصى اليسار للمتغير الأول بالرمز المناظر للمتغير الثاني ثم نتقدم رمزا واحدا جهة اليمين وهكذا وبمجرد ان نجد رمزين متناظرين مختلفين تتوقف عملية المقارنة ، ويعتبر المتغير او القيمة الموجود به الرمز ذو الرتبة الأقل هو الأصغر من الأخر
*****************************************************
ويتم تحديد رتبة كل رمز طبقا لطريقة تخزين الرموز في ذاكرة الحاسب وهذه الطريقة تسمى ANSI code
ANSI code : تعطى كل حرف او رقم او رمز خاص رتبة معينة وهذه الرتبة هى رقم ثابت لا يتغير كما هو موضح بالجدول 2-5 صفحة 59-60 في الكتاب المدرسي
*****************************************************
الأرقام عند معاملتها كرموز لإجراء عمليات المقارنة عليها لا يمكن إجراء العمليات الحسابية عليها
الأرقام لها رتب اقل من رتب الحروف
مثال : حدد قيمة هذا الشرط hala > 45123
الحل : الشرط hala >45123 سيكون True لان بالمقارنة بين الرقم 4 والحرف h نجد ان رتبة الحرف h اكبر من رتبة الرقم 4
*****************************************************
لمعرفة رتبة الحروف
الحروف من A ,B ,C……………………………Z
رتبتها من 90..................................65,66,76
والحروف من a , b , c,………………………………..z
رتبتها من 122.......................................97,98،99
نلاحظ هنا أن رتبة الحروف small اكبر من رتبة الحروف capital
مثال :حدد اى من الشروط التالية ستكون قيمته true وأيهم سيكون false
"NEHAD"<"NEHAL"
الحل : بالمقارنة من ناحية اليسار نجد ان رتبة الحرف N تساوى رتبة الحرف N فى المتغير الآخر وهكذا إلى ان نأتي إلى الحرفين D,L وبمعرفة رتبتهم سيتحدد قيمة الشرط فالبحث فى جدول ANSI code نجد أن رتبة الحرف L هي 76 ورتبة الحرف D هى 68 فان قيمة الشرط تساوى True
2- "salah salem"<"salah"
بالمقارنة نجد أن قيمة الشرط ستحدد من خلال معرفة رتبة الحرف s ورتبة المسافة بعد كلمة salah فنجد ان رتبة المسافة 32 ورتبة الحرف s 115 وعلى ذلك فان قيمة الشرط هى false
استخدام الأمر if مع الأدوات check box ، radio button ، group box
الأداة radio button
تتيح للمستخدم مجموعة من البدائل لاختيار واحد منها فقط
خصائص الأداة
الخاصية العمل
Name اسم الأداة داخل كود البرمجة
BackColor لاختيار لون لخلفية الأداة
Appearance لتحديد شكل الأداة ما اذا كان الشكل التقليدي للأداة او شكل button
Checked تحديد ما إذا كانت الأداة تم اختيارها إما لا
Enabled تحديد ما إذا كانت الأداة تستطيع التعامل معها أم لا
Forecolor تحديد لون الخط على الأداة
Height تحديد ارتفاع الأداة
Image تحديد الصورة التي ستظهر على الأداة
Text تحديد الكتابة التي ستظهر على الأداة
Visible تحديد ما إذا كانت الأداة مرئية على الفورم ام غير مرئية
Width تحديد عرض الأداة
الأداة check box
تتيح للمستخدم مجموعة من البدائل لاختيار اى عدد منها فى نفس الوقت او لا نختار اى منها
خصائص الأداة هي نفس خصائص الأداة radio button
الأداة group box
تستخدم فى تنظيم وضع الأدوات على النموذج وتظهر الأداة على شكل مستطيل يحيط بمجموعة الأدوات التي تتبعه وتستخدم الخاصية text للأداة group box لتعريف العلاقة التي تربط بين مجموعة الأدوات الموجودة بداخلها
الخاصية العمل
Name اسم الأداة داخل كود البرمجة
Flat Style تحديد شكل الأداة ويوجد لدينا أربعة اختيارات لهذه الأداة وهى system ( الافتراضية) flat ,popup ,standard
Enabled تحديد ما إذا كانت الأداة تستطيع التعامل معها أم لا
Text تحديد الكتابة التي ستظهر على الأداة
Visible تحديد ما إذا كانت الأداة مرئية على الفورم ام غير مرئية
مشروع
صمم واجهة البرنامج الآتية المطلوب عند اختيار اللون الأحمر يتم تلوين الخلفية باللون الأحمر وكذلك عن اختيار اللون الأخضر يتم تلوين الخلفية باللون الأخضر
Public Class Form1
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
Me.BackColor = Color.Green
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
Me.BackColor = Color.Red
End Sub
Me هنا هى الخاصية name لــ form لان المطلوب هو تغيير لون الخلفية للفورم
إجابة أسئلة الفصل الثاني
السؤال الأول : اختر الإجابة الصحيحة مما يلي
1- جملة if………then………..else تنتهي بكلمات ( end if )
ـــــــــــــــــــــــــــــــــــــــ
2- الجملة الآتية يتم تنفيذها فقط في حالة أن يكون الشرط يساوى
If (condition)
Msgbox("n is divisible by d)معناها ان تقبل القسمة على .
End if
الإجابة (n mod d ) =0 معناها أن باقي القسمة على يساوى صفر
ـــــــــــــــــــــــــــــــــــــــــــــــــــ
3- الخاصية checked تقوم بإعطاء قيمة لملصق الــ check box
ـــــــــــــــــــــــــــــــــــــــــــــــــــ
4- عدد check box الممكن اختيارها فى المرة الواحدة هو الإجابة : اى عدد ممكن تحديده
ـــــــــــــــــــــــــــــــــــــــــــــــــــ
أسئلة الوزارة
السؤال الأول: اختر للعمود الأول ( أ ) ما يناسبه من العمود الثاني (ب)
( أ ) (ب)
1- الرمز < يسمى
2- الرمز < = يسمى
3- الرمز > يسمى
4- الرمز >= يسمى
5- الرمز <> يسمى
6- الرمز = يسمى ( أ )
( ب )
( ج )
( د )
( هـ)
( و ) أكبر من أو يساوي.
لا يساوي.
أصغر من.
يساوي.
أصغر من أو يساوي.
أكبر من
السؤال الثاني: إذا كانت قيمة التغير A تساوي 20 وقيمة المتغير B تساوي 15
ضع علامة () أمام الإجابة الصحيحة وعلامة ( X ) أمام العبارة الخطأ.
أ- ناتج الشرط A>B يساوي TRUE. ( )
ب- ناتج الشرط A>=B يساوي FALSE. ( )
ج- ناتج الشرط B<A يساوي TRUE. ( )
د- ناتج الشرط B<=A يساوي FALSE. ( )
هـ - ناتج الشرط A<>B يساوي FALSE. ( )
و- ناتج الشرط A-B>B يساوي TRUE. ( )
ز- ناتج الشرط A-5<=B يكون TRUE. ( )
السؤال السادس:أقرأ التعليمات التالية:
A=……..
If A>=90 Then
Msgbox “ممتاز”
End If
If A<90 And A>=75 Then
MsgBox “جيد جدا”
End If
If A<75 And A>=50 Then
MsgBox “ناجح”
End If
If A<50 Then
MsgBox “راسب”
End If
بعد قراءة التعليمات السابقة ضع علامة ( ) أمام الإجابة الصحيحة وعلامة ( X ) أمام العبارة الخطأ لكلا مما يلي :
1. إذا كان A=92 يظهر مربع كتابه يحتوي على ممتاز ( )
2. إذا كان A=49 يظهر مربع كتابه يحتوي على ناجح ( )
3. إذا كان A=77 يظهر مربع كتابه يحتوي على جيد جدا ( )
4. إذا كان A=88 يظهر مربع كتابه يحتوي على جيد ( )
5. إذا كان A=70 يظهر مربع كتابه يحتوي على ممتاز ( )
6. إذا كان A=30 يظهر مربع كتابه يحتوي على ناجح ( )
7. إذا كان A=55 يظهر مربع كتابه يحتوي على جيد ( )
8. إذا كان A=90 يظهر مربع كتابه يحتوي على ممتاز ( )
السؤال السابع : اختر الإجابة الصحيحة مما بين القوسين لكل مما يأتي:
( RadioButton - CheckBox - GroupBox – Checked – Enabled - CheckedOn )
1. الخاصية .............. تحدد هل تم اختيار الأداة CheckBox .
2. الخاصية .............. تحدد إذا كان المستخدم يستطيع التعامل مع الأداة.
3. تستخدم الأداة .............. لعرض البدائل على أن يقوم المستخدم باختيار بديل واحد فقط.
4. تستخدم الأداة .............. لعرض البدائل ويمكن للمستخدم اختيار أكثر من بديل .
5. تستخدم الأداة .............. لتقسيم الأدوات إلى مجموعات .
السؤال الثالث: أقرأ التعليمات التالية:
Arabic=30
English=20
If Arabic>25 Then
Total=Arabic +English
Avg=( Arabic +English )/2
Else
Arabic=25
English=22
Total=Arabic + English
Avg=( Arabic +English )/2
End if
بعد تنفيذ التعليمات السابقة ضع علامة () أمام العبارة الصحيحة وعلامة ( X ) أمام العبارة الخطأ لكل مما يلي .
1. قيمة المتغير Arabic تساوي 30 . ( )
2. قيمة المتغير English تساوي 22. ( )
3. ناتج التعبيرArabic>25 يكون TRUE. ( )
4. قيمة المتغيرTotal تساوي 47 . ( )
5. قيمة المتغير Avg تساوي 23.5. ( )
6.
السؤال الرابع: اقرأ التعليمات التالية:
Age=25.5
Mark=90
If Age<26 Then
Age=16
Mark=100
End If
Total=Mark*2
بعد تنفيذ التعليمات السابقة اختر الإجابة الصحيحة لكلا مما يلي.
1- قيمة المتغير Age تساوي:
أ- 25.5 ب- 90 ج- 16
2- قيمة المتغير Markتساوي:
أ – 90 ب- 100 ج-25.5
3- قيمة الشرط Age<26 :
أ – 25.5 ب- True ج-False
4- قيمة المتغير Total تساوي:
أ – 200 ب- 180 ج-190
الفصل الثالث
أوامر التكرار
أوامر التكرار هي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين
الأمر Do while …………………loop
القاعدة العامة للأمر
Do while conditionالشرط
Statement 1
Statement 2
Statement3
.......
........
........
Statement n
loop
شرح الأمر
True أ- اذا كان الشرط
فان الحاسب يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى آخر أمر
loop قبل كلمة
do while فانه يعود مرة أخرى الى loop وعندما يصل البرنامج إلى كلمة
حيث يتم تقييم الشرط مرة أخرى وطبقا لقيمة الشرط فإما ان تكون فيستمر التكرار او تكون ....... فينتهي التكرار
Falseب_ إذا كان الشرط
loop. فان التتنفيذ يبدأ عند أول أمر بعد كلمة
do while إذاً يتم تكرار الأوامر اللي بعد الشرط في حالة إذا كان الشرط صحيح وعندما يصبح الشرط خطأ يتم تنفيذ الأوامر التي تلي
**************************************************
مثال : قم بعمل برنامج يطبع الأعداد من 1 إلى 5 باستخدام الأمر do while
كما عرفنا سيتم تصميم واجهة البرنامج كما بالشكل وسيتم كتابة الكود داخل أداة button1 بالشكل الاتى
الكود اللازم لعمل البرنامج
ما نتيجة تنفيذ هذا الكود؟
إذا أردنا طباعة الأعداد الفردية من 1 إلى 5 فيتم كتابة الكود الاتى ستم كتابة الكود كما سبق مع تغير الأمر x=x+1 إلى x=x+2
وإذا أردنا طباعة الأعداد الزوجية من 0 إلى 5 سيتم كتابة الكود كما سبق مع تغير الأمر x=1 إلى الأمر x=0 والأمر x=x+1 إلى x=x+2
**************************************************
مثال : قم بكتابة برنامج لجمع الأعداد من 1 إلى الرقم الذي سيتم إدخاله من خلال مشغل البرنامج
فى هذه الحالة سنحتاج لأداة textbox لرسمها على الفورم لإدخال القيمة النهائية
شرح الكود:
السطر الأول تعريف المتغيرات
السطر الثاني تخزين القيمة النهائية داخل المتغير final باستخدام أمر التخصيص
واستخدمنا الدالة parse لتحويل القيمة المدخلة من قيمة حرفية الى قيمة عددية
السطر الثالث لاعطاء قيمة ابتدائية للمتغير x
بعد ذلك سيتم تكرار الأوامر اللي بين do while والأمر loop طالما ان الشرط صحيح وهو أن x تكون اقل من أو تساوى القيمة النهائية المدخلة ونستخدم الأمر x=x+1 لزيادة قيمة المتغير بمقدار واحد
السطر الأخير label3.text=sum.Tostring لإظهار الناتج على الفورم باستخدام أداة label3 فمكن تظهر النتيجة في label1 او label2 حسب الاداة التى خصصت لإظهار الناتج بها
بعد تشغيل البرنامج
لو طلب منك عمل برنامج لجمع الأعداد الفردية نفس السابق مع تغير الامر x=x+1 إلى x=x+2
لو برنامج لجمع الأعداد الزوجية نفس السابق مع تغير x=1 إلى x=0
والأمر x=x+1 إلى الأمر x=x+2
ــــــــــــــــــــــــــــــــــــــــــــــ
الأمر for …………Next يستعمل هذا الأمر في حالة معرفة عدد مرات التكرار مسبقا على خلاف الأمر do while التي لا نعرف فيها عدد مرات التكرار
قاعدة الأمر For……………next
For counter = start to end (step increment)
statment1
statment2
statment3
…..
…..
……
Statement n
تحدد الكلمة for بداية التكرار والكلمة next نهاية التكرار
Counter : متغير رقمي يستخدم لحساب عدد مرات التكرار
Start : بداية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
End : نهاية التكرار وهى قيمة رقمية يتولى المبرمج تحديدها
Increment : مقدار الزيادة التي يزيدها القيمة المخزنة في العداد counter
شرح الأمر
1- تخزين القيمة start داخل المتغير counter
2- مقارنة القيمة المخزنة في counter بالقيمة end
أ _ إذا كانت القيمة المخزنة في المتغير اقل أو تساوى من القيمة النهائية للتكرار يتم تنفيذ الأوامر المراد تكرارها بين (for , next )
ب - إذا كانت القيمة المخزنة فى المتغير أكبرا من القيمة النهائية للتكرار ينتهى التكرار و يتم تنفيذ الأوامر الموجودة بعد next
3- عندما يصل البرنامج إلى next : أ) فيتم زيادة القيمة المخزنة في العداد counter بمقدار قيمة increment وفى حالة عدم استعمال step فان قيمة العداد تزيد بمقدار واحد
ب)يعود البرنامج إلى بداية التكرار
أمثلة
قم بطباعة الأعداد من 1 إلى 5 باستخدام for…………..next
تصميم الواجهة كما سبق في المثال السابق
ولكن كتابة الكود بالشكل
Dim x as integer
For x= 1 to 5
Msgbox(x)
Next
for………..next تلاحظ الفرق في كتابة الكود بواسطة الأمر
do while…………..loop وكتابة الكود بواسطة الأمر
مثال : قم بطباعة الأعداد الفردية من 1 إلى 5
Dim x as integer
For x = 1 to 5 step 2
Msgbox(x)
Next
قم بطباعة الأعداد الفردية من 5 إلى 1
Dim x as integer
For x = 5 to 1 step -2
Msgbox(x)
Next
لاحظ الفرق في جملة for في البرنامجين السابقين وماذا تستنتج
قم بجمع الأعداد من 1 إلى 10
Dim x , sum as integer
Sum=0
For x = 1 to 10
sum=sum +x
Next
Label1.text=sum
حيث label1 هي الأداة التي سيظهر فيه الناتج على الفورم
ملاحظة لماذا لا نضع الجملة Label1.text=sum قبل next أو loop
الإجابة لأننا نريد إظهار المجموع الكلى مرة واحدة ولا نريد إظهار جمع كل تكرار
ملحوظة : فى الخطوة sum=0 ممكن متكتبش لاننا فى السطر الاول قيمة المتغيرين x , sum الابتدائية تساوى صفر كما اوضحنا سابقاً
الأداة listbox
تعد الأداة listbox واحدة من الأدوات التي تربط غالبا بالتكرار وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها
شكل الأداة
تظهر الأداة على هيئة مستطيل يعرض بداخله صفوفا من الكلام , كل صف من هذه الصفوف يعد عنصرا يمكن لمستخدم البرنامج أن يختاره
في حالة إذا كان عدد الصفوف اكبر من أن يعرض بأكمله داخل المساحة المتاحة للمستطيل فان vb يقوم تلقائيا بإضافة شريط التمرير الرأسي الى يمين الأداة
خصائص الأداة
الخاصية وظيفتها
Name اسم الأداة داخل كود البرمجة
Horizonatalscrollbar إمكانية إظهار شريط التمرير الافقى أو لا داخل الأداة
Items معرفة العناصر الموجودة داخل الأداة
Selecteditems معرفة او تحديد العنصر الواقع عليه الاختيار
Sorted تبين ما إذا كانت العناصر داخل الأداة مرتبة أبجديا ام لا
الخاصية items في حد ذاتها كائن وكما علمنا في الفصل الدراسي الأول أن الكائن وهو كل ما له خصائص ووظائف واستجابة للأحداث
اى أن الخاصية items لها خصائص ووظائف
الجدول التالي يوضح بعد وظائف method الخاصية items للأداة listbox
الوظيفة method العمل behavior
Add( text) إضافة العنصر text في آخر القائمة
Insert ( index ,text ) إضافة العنصر text فى القائمة ويكون ترتيبه داخل القائمة هو index
Count معرفة عدد العناصر فى القائمة
Remove ( text ) مسح العنصر text من القائمة
Removeat (index) مسح العنصر اللي ترتيبه في القائمة index
Clear مسح جميع العناصر الموجودة بالأداة
Index هو رقم العنصر في القائمة ( ترتيبه) ويأخذ الأرقام من صفر إلى count -1 حيث count هو عدد العناصر في الأداة listbox
يبدأ الترقيم داخل الأداة listbox من الصفر
أمثلة
لو عدد عناصر القائمة 4 فان العنصر الرابع ترتيبه فى القائمة هو 3
ــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 إلى القائمة listbox1 يتم ذلك من خلال كتابة الكود
Listbox1.items.add("2")
ــــــــــــــــــــــــــــــــــــــــــ
لإضافة العنصر 3 في القائمة listbox1 ويكون ترتيبه داخل الأداة العنصر الثاني
Listbox1.items.insert(1,"3")
ــــــــــــــــــــــــــــــــــــــــ
لحذف العنصر 5 من القائمة listbox1
Listbox1.items.remove("5")
ــــــــــــــــــــــــــــــــــــــ
لحذف العنصر اللي ترتيبه في القائمة listbox1 الثالث
Listbox1.items.removeat(2)
ـــــــــــــــــــــــــــــــــــــــ
لحذف جميع العناصر الموجودة فى الأداة listbox1
Listbox1.items.clear( )
ـــــــــــــــــــــــــــــــــــــــــ
لمعرفة عدد عناصر القائمة listbox1
Listbox1.items.count
ـــــــــــــــــــــــــــــــــــــــ
إجابة أسئلة الفصل الثالث
السؤال الأول : اختر الإجابة الصحيحة مما يلي
1- الأوامر المتكررة في do while………..loop ( يتم تنفيذها اذا كان الشرط صحيحا true )
2- نوعية الامر الذي يتم تنفيذه حتى يصبح شرط التكرار خطأ هي
الإجابة : do while………..loop
3- يطلق على المتغير الذي يتحكم في عدد مرات تنفيذ الأوامر اسم ( counter )
لإلغاء كل القيم من الأداة listbox يتم استخدام طريقة ( method ) الحل : clear
5- الطريقة (method ) التي تقوم بإضافة عنصر جديد في نهاية القائمة listbox in الحل : add
السؤال الثاني : قم بدراسة مجموعة الأوامر التالية مع افتراض ان المتغيرات قد تم الإعلان عنها
Sum=0
Count=0
Do while ( x<10)
Sum=sum
Count=count+1
Loop
Average =sum/count
ما هو الخطأ فى هذه الأوامر؟
اكتب الخطوات اللازمة لتصويب هذه الأوامر؟
الخطأ أن قيمة المتغير ستظل طول البرنامج بصفر وجملة التكرار لن تتوقف لان الشرط سيظل صحيح
التصحيح : هي كتابة الأمر لزيادة قيمة المتغير بمقدار واحد
ملحوظة الشرط مكتوب بين القوسين لا يمثل خطأ فهو صحيح
الكود بعد