الفصل الأول
تمثيل البيانات
(1) كيف تجرى عملية حسابية في ال Visual Basic.net
فى البداية تستقبل ما يكتبه المستخدم باستخدام اداة الكتابة Text Box وهذا يمثل المدخلات ( وهذه المدخلات حرفية وان كانت ارقام)
ثم نقوم بتحويلها إلي قيم رقمية
يتم اجراء العمليات الحسابية عليها في ذاكرة الحاسب
ثم تقوم بعرض النتائج
(2) البيانات الثابتة و المتغيرة
• اى بيانات يتم التعامل معها لابد ان تكون مخزنة في ذاكرة الحاسب الداخلية
• ذاكرة الحاسب تتكون من ملايين الخلايا (الاماكن – المخازن) المتساوية و تسمى كل خلية (Byte )
• تحمل تاخلايا ارقام متسلسلة تبدأ من الصفر
• يمثل عدد الخلايا حجم الذاكرة وكلما زادت زاد حجم الذاكرة
• السعة التخزينية للخلية اما حرف واحد او رقم صحيح بين – 128 و + 127
• اذا كان اكثر من ذلك يتم التخزين في اكثر من خلية
• يعطى اسم لكل خلية او لكل مجموعة خلايا ما دامت تحمل قيمة واحدة حتى يسهل تتبعها و التعامل معها
• اذا كانت القيم المخزنة تتغير اثناء تشغيل البرنامج فإن اسماء الخلايا التى تشغله هذه القيم يطلق عليها متغيرات ويطلق على عملية اعطاء الاسماء للخلايا في هذه الحالة اعلان المتغيرات
• اذا كانت القيم لا تتغير اثناء تشغيلها البرنامج فإن اسماء الخلايا التى تشغلها هذه القيم يطلق عليها الثوابت ويطلق على عملية اعطاء الاسماء للخلايا في هذه الحالة اعلان الثوابت
(3)انواع البيانات
يتحدد البيانات حسب
1- عدد Byte و هو حجم الذاكرة
2- المدي Range حدود القيم المتاحة للمتغير
3—الدقة Precision عدد الخانات التي يتم تمثيل المتغير بها وهي خاصة بالرقمية فقط
ومن اهم انواع البيانات
1- Boolean تحتاج 2 خلية True/False
2- Date تحتاج 8 خلية من 1/1/1000 الي 31/12/9999
3- حروف
4- *حرف Char يحتاج 2خلية حرف واحد
5- *سلسلة حرفية String اي عدد من الحروف = عدد الخلايا
6- ارقام 1-صحيحة
Byte يحتاج خلية واحدة بين 0 و 255 الدقة خانة واحدة
Short يحتاج 2 خلية بين – 32768 و+ 32767 الدقة 5 خانات
Integer يحتاج 4 خلية بين + 2147483647 و – 2147483648 الدقة 10خانات
Long يحتاج 8 خلية بين – 9223372036854775808 و+ 9223372036854775807 الدقة 19 خانة
2عشرية
Single تحتاج 4 خلية بدقة 7 خانات
Double تحتاج 8 خانات بدقة 15 خانة
Decimal تحتاج 16 خلية بدقة 29 خانة
مثال تخزين 5.2 في المتغيرين من النوع integer & long وعند عرض النتائج ستكون 5 فقط بدون ارقام عشرية لان الانواع من النوع integer & long&short تستخدم لتخزين الاعداد الصحيحة فقط وليست الاعداد التي تحتوي على كسور
اما الانواع Single Double Decimal تخزن الكسور ولكن بدقة مختلفة
مثال اذا اردنا ان نخزن القيمة 123456.10987654321 في ثلاث متغيرلات X وY وZ من الانواع Single وDoubleوDecimal علي الترتيب فاكمل الجدول موضحا السبب
السبب القيمة المخزنة النوع المتغير
Single X
Double Y
Decimal Z
(4)قواعد تكوين الاسماء في ال VB.net:-
أولا: قواعد يجب الالتزام بها :-
1. يجب ان يبدأ الاسم بحرف من حروف الانجليزية A……Z a……z
2. يأتى بعد الحرف الاول أى عدد من الحروف او الارقام
3. لايسمح ان يحتوى على رموز او علامات او مسافات ماعدا علامة ال Underscore _
4. ممنوع استخدام الكلمات المحجوزة فى VB.net مثل Data – Short – Double Dim-Print-Data
ثانيا : قواعد يستحسن الالتزم بها :-
1. اختر اسماء ذات معنى مناسب
2. فى الكلمات التى تتكون من مقطعين يمكن ان يبدأ كل مقطع بحرف Capital لان المسافة غير مسموح بها
3. يفضل ان يبدأ الاسم بـ 3 احرف تعطى انطباع عن نوع المتغير
امثلة لأسماء صحيحة
FirstName
Ahmed2000
PopulationOfEgypt
Spent_mony
امثلة لأسماء غير صحيحة
2ndWorldWar
اكتب الخطأ ……………………….………..
Spen.Mon
………………………………………..
Birth Day
………………………………………..
Double
………………………………………..
في حالة استخدام اسم خطأ يعطي synatax error
(5)اختيار النوع المناسب لكل متغير
حسب : - نوع البيانات التي يمكن تخزينها فيه
- العمليات التي يمكن اجراؤها عليه
- حجم الذاكرة الذي يحتاجه المتغير
طبيعة البيانات المخزنة النوع المناسب السبب
True / False Boolean احسن استغلال للذاكرة
ارقام السيارات التليفونات الرقم القومي String اختيار وحيد
مبلغ من المال Decimal يخزن ارقام عشرية وبدقة وبدون اخطاء وسريع في العمليات الحسابية
عدد صحيح بين – 32768 و+ 32767 Short استهلاك قليل للذاكرة واسرع في العمليات الحسابية
عدد صحيح بين + 2147483647 و – 2147483648 Integer اقل في الذاكرة واسرع في الحساب من Long
عدد صحيح اكبر من + 2147483647 واقل – 2147483648 Long اختيار وحيد
كسر عشري سبع خانات دقة Single اسرع من Double
كسر عشري اكبر من 7 خانات دقة Double
(6)الثوابت : طريقة لاعطاء اسماء للخلايا التي تحتوي قيم لا تتغير اثناء تشغيل البرنامج
انواع الثوابت جوهرية - مسماه
ثوابت جواهرية:- هى الثوابت الموجودة فى بناء و جوهر نظام ال VB.net أى يستطيع البرنامج التعامل معها بدون اعلان مثال مجموعة الالوان
مثال Color.Black Color.Blue Color.Red
طريقة الاستعمال TxtX.ForeColor = Color.Blue
(7)المتغيرات طريقة لاعطاء اسماء للخلايا التي تحتوي قيم تتغير اثناء تشغيل البرنامج
Dim ChildWeight as Integer
Dim Population as Integer
Dim Name as String
Dim Address as String = "Cairo"
Dim UnitPrice as Decimal = 123.5
لاحظ ان :-
1. لابد من استخدام كلمة Dim للإعلان عن المتغيرثم اسم المتغير ثم as ثم النوع
2. يمكن ان تكتب ( =) و بعدها قيمة و هذه القيمة ستكون قيمة البداية
أو يمكن ان تهملها و لا تستخدم (=) و فى هذه الحالة
_ المتغيرات الرقمية تبدأ بقيمة صفر
_ المتغيرات الحرفية ستكون فارغة
الاعلان عن اكثر من متغير باستخدام امر Dim واحد
Dim UnitPrice as Decimal = 123.5,Name as Address = " Cairo "
Dim ChildWeight, Population as Integer
Dim Name as String
(امر التخصيص ( الاحلال ) :-
ان اهم دور للمتغيرات هو تخزين البيانات بها ولكى نخزن قيمة فى متغير نستخدم امر التخصيص
Variable Name = Value
علامة = تسمى معامل التخصيص
( اى يتم حجز مكان فى الذاكرة يسمى باسم المتغير و توضع داخله القيمة )
يجب مراعاة الاتى:-
1. اسم المتغير الذى نريد التخزين فيه يكون شمال (=)
2. القيمة المراد تخزينها تكون يمين (=) وتكون من نوع ملائم لنوع المتغير
3. القيمة يمكن ان تكون :-
قيمة مجردة
مثل X=5
متغير اخر X=Y
حيث يتم تخزين قيمة Y في النتغير X
عملية حسابية
مثل X=2Y+Z
حيث يتم حساب القيمة 2Y+Z ثم تخزن في X
1- المتغيرات التي على يمين = لا يحدث بها اي تغيير
2- مفهوم العلامة = في امر التخصيص يختلف نهائيا عن مفهما في المعادلة الرياضية
حيث الصيغة X+3=10 صحيحة كمعادلة رياضية وليست صحيحة كامر تخصيص لوجود عملية حسابية شمال =
والصيغة X=X+1 غير صحيحة كمعادلة رياضية وصحيحة كامر تخصيص
مثال قم بتتبع مجموعة الاوامر التالية :
Dim X As Short
Dim Y As Short
Dim Z As Short
X = 10
X = 2 * X + 1
Y = X - 8
Z = Y /4
Z = Z + 4
Z Y X Statement
Dim X As Short
Dim Y As Short
Dim Z As Short
X = 10
X = 2 * X + 1
Y = X - 8
Z = Y /4
Z = Z + 4
(9)استعمال امر التخصيص مع المتغيرات الحرفية String
يستخدم امر التخصبص الاحلال في تخزين القيم الحرفية
و من العمليات التي يمكن ان نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفي ببعضها لتكوين متغير حرفي واحد هذا الربط يتم باستعمال & الذي يسمى معامل الربط
FirstName ="Hany"
SecondName = "Ahmed"
Fullname = "Welcome"&FirstName&" "&SecondName
تكون النتيجة
Welcome Hany Ahmed
- قمنا بعملية ربط بين المتغيرات باستخدام العلامة &
- " " تعنى انه سيترك مسافة فارغة مقدارها مسافة واحدة او عدة مسافات
- " " تعنى قيمة حرفية فارغة ( طولها صفر )
مثال تتبع مجموعة الاوامر الاتية :
Dim FirstName As String
Dim LasttName As String
Dim Message As String
FirstName = “Hany”
LastName = “Ahmed”
Message = “Welcome ” & FirstName & “ “ & LastName
Message LastName FirstName Statememet
Dim FirstName As String
Dim LasttName As String
Dim Message As String
FirstName = “Hany”
LastName = “Ahmed”
Message = “Welcome ” & FirstName &“ "& LastName
مثال اكمل الجدول التالي
TaxRate Price UnitPrice Quantity Statement
Dim Quantity As Integer = 100
Dim UnitPrice As Decimal = 5.5
Dim Price As Decimal
Dim TaxRate = 0.10
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
Quantity = 200
UnitPrice = 6.2
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
(10)التحويل بين الانواع المختلفة للبيانات
تختلف طريقة تخزين القيمة الحرفية "123" اختلاف تام عن طريقة تخزين القيمة الرقمية 123 فالقيمة الحرفية "123" تخزن في 3 خلايا اما القيمة الرقمية 123 يمكن ان تخزن في خلية واحدة
اولا تحويل البيانات الحرفية الي بيانات رقمية
- يمكننا اجراء عمليات حسابية باستخدام المتغيرات و الثوابت و الخصائص object مادامت هذه المتغيرات و الثوابت والخصائص من الانواع الرقمية
- ولكن عند ادخال البيانات الى البرنامج فاننا ندخلها عن طريق اداة الكتابة ( Text Box )
- وبرنامج ال VB.net يتعامل مع هذه البيانات على انها بيانات حرفية و ليس رقمية اى لا يمكن اجراء العمليات الحسابية عليها مباشرة ولحل هذه المشكلة لابد من تحويلها الي بيانات رقمية
- لتحويل البيانات الحرفية الى رقمية نستخدم Parse Method
- كل انواع البيانات الرقمية التي تستخدم في الاعلان عن المتغيرات مثل integer و decimal ما هي الا فئات class اي لها خصائص و طرق(وسائل) وجميعها تشترك في ان لها Parse Method
الشكل العام لــ Parse Method
1. لتحويل قيمة حرفية الي عدد صحيح Integer نستخدم (القيمة الحرفية ) Integer.Parse
2. لتحويل قيمة حرفية الى عدد عشرى Decimal نستخدم (القيمة الحرفية ) Decimal.Parse القيمة الحرفية قد تكون خاصية اداة متغير حرفي او ثابت اما نتيجة قيمة التحويل فهي قيمة عددية
اذا صادفت Parse Method اي حرف او علامة لا يمكن تحويلها لرقم فان عملة التحويل تتوقف ويظر رسالة خطأ
مثال
لديك اداتان من ادوات الكتابة الاولي(txtBooksQuantitly) سعر الكتاب ، الثانية(txtUnitPric) عدد الكتب و مطلوب حساب الثمن الاجمالى ووضعه في متغير رقمي(TotalPrice)
شرح الحل
سعر الكتاب UnitPric عدد الكتب BooksQuantitly السعر الاجمالى TotalPrice
السعر الاجمالى = سعر الكتاب * عدد الكتب
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal اعلان المتغيرات ا
Dim TotalPrice as Decimal
القيم المخزنة في txtBooksQuantitly و txtUnitPricحرفية ولابد من تحويلها الي عددية وتخزينها متغيرات عددية
لتحويل النص المكتوب فى مربع النص txtBooksQuantitly الى عدد صحيح ووضعها في BooksQuantitly
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
لتحويل النص المكتوب فى مربع النص txtUnitPricالى عدد عشرى ووضعها في UnitPric
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
لحسلب السعر الاجمالى ووضعه في المتغير TotalPrice
TotalPrice = BooksQuantitly * UnitPric
الحل النهائي
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
لاحظ ان :-
داخل الاكواد يمكن كتابة بعض الاسطر التى تساعد المبرمج و لكن المترجم او المفسر يهملها ولا يلتفت اليها وتسمى تعليقات هذه الاسطر تكتب امامها ( ' ) مثل ' calculate the total price
ثانيا تحويل البيانات الرقمية الي بيانات حرفية
لاظهار النتائج يتم اظهارها في الاداة Label او TextBox وعليه لابد ان تكون حرفية اي تتحول من عددي الى حرفي باستعمال ToString ( )وما بين القوsين يسمي معامل الدالة argument وفي حالة عدم وجود شئ داخل الاقواس يكون البيان غير مصاغ unformatted
الصيغة العامة هي txtResult.Text=xInteger.ToString()
مثال
لديك اداتان من ادوات الكتابة الاولي(txtBooksQuantitly) سعر الكتاب ، الثانية(txtUnitPric) عدد الكتب و مطلوب حساب الثمن الاجمالى ووضعه في متغير رقمي(TotalPrice) ثم اظهار النتيجة في اداة الكتابة txtResult
الحل
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
txtResult.Text = UnitPric.To string ( )
ثالثا التحويل بين انواع البيانات العددية : -
***التحويل المباشر ( التلقائى )
- يستخدم عند تحويل من نوع عددى ذا سعة تخزينية صغيرة الى نوع عددى ذا سعة تخزينية اكبر
- نعنى بالسعة التخزينية هنا عدد خلايا لذاكرة
مثال :- اذا ردنا تحويل المتغير ( Number1 ) من النوع Decimal الى المتغير ( Number 2) وهو من النوع Integer كالآتى :- Number 1 = Number 2
انواع التحويلات التى يمكن إجراؤها بالطريقة المباشرة
TO From
Short – Integer – Long – Single – Double – Decimal Byte
Integer – Long – Single – Double – Decimal Short
Long – Single – Double – Decimal Integer
Single – Double – Decimal Long
Decimal –Double Single
Decimal Double
ملاحظات :-
التحويل المباشر لا يصلح فى حالتين :
1. تحويل البيانات من النوع Double الى اى نوع اخر
2. تحويل البيانات التى تحتوى على كسور ( Single , Double ) الى النوع Decimal
وفى هذه الحالات نستخدم التحويل غير المباشر
***التحويل الغير مباشر
- يتم استخدامه عندما نحول نوع ذوسعة تخزينية كبيرة الى نوع اقل فى السعة التخزينية
- اى يستخدم بين البيانات العددية التى لايمكنك اجراء التحويل المباشر عليها مثل تحويل النوع Double الى اى نوع اخر من انواع البيانات
- و لتسهيل عملية التحويل الغير مباشر يتيح البرنامج للمبرمجين Class يسمى Convert Class يحتوى على وسائل Methods تبدأ اسماؤها بـ To للتحويل بين الانواع المختفلة
Use Method الطريقة المستخدمة النوع المطلوب التحويل اليه To Convert to Data type
ToInt16 Short
ToInt32 Integer
ToInt64 Long
ToDecimal Decimal
ToSingle Single
ToDouble Double
(11)العمليات الحسابية :-
المعامل المؤثر العملية
+ جمع
- طرح
* ضرب
/ قسمة عادية
\ قسمة اعداد صحيحة
mod باقى القسمة
^ اسس
***قسمة الاعداد الصحيحة وباقي القسمة
إذا قسمنا العدد الصحيح (Integer ) 48 على العدد الصحيح 5 فتكون النتيجه كالآتى :-
1. قسمة عادية 48 / 5 =9.6
2. قسمة اعداد صحيحة (اهمال باقي القسمة) 48 \ 5 = 9
3. اذا اردنا الباقى فيمكن الحصول عليه باستخدام 48 mod 5 = 3
*** الاسس :
يستعمل معامل الاسس ( ^ ) فى رفع عدد معين ( الاساس ) الى اس معين و تكون النتيجة من النوع Double
فمثلا اذا كان X=5
فإنه Y=X^5
اذا Y = 25
بشرط ان تكون Y من النوع Double
***ترتيب تنفيذ العمليت الحسابية :-
ترتيب تنفيذ العمليات الحسابية داخل VB يتم كالآتى : حتى يتم الحصول على النتائج الصحيحة
1. العمليات التى بين الاقواس ( الداخلية اولا ثم الخارجية )
2. عمليات الاسس
3. عمليات الضرب و القسمة ( الاولوية من اليسار ثم اليمين )
4. عمليات قسمة الاعداد الصحيحة
5. عمليات حساب باقى القسمة
6. عمليات الجمع و الطرح ( الاولوية من اليسار الي ليمين )
مثال :-
ما هى نتيجة تنفيذ العمليات الاتية بافتراض القيم التالية للمتغيرات :-
X = 2 Y = 3 Z = 4
A) X * ( Y + 1 )
B) Y^ X * X + Z *3
الحل A 1- نستبدل كل متغير بقيمته 2* ( 3 + 1 )
2-حساب ما بداخل الاقواس اولا 2 * ( 4 )
3- تنفيذ عملية الضرب فيكون الناتج ( 8 )
B )
1. نستبدل كل متغير بقيمته 3^ 2 * 2 + 4 * 3
2. يتم حساب الاس اولا 9 * 2 + 4 * 3
3. تنفيذ عملية الضرب التى في اليسار 18 + 4 * 3
4. تنفيذ عملية الضرب التى في اليمين 18 + 12
5. تنفيذ الجمع ليكون الناتج 30
مثال
• اكتب الاكواد اللازمة لمشروع يحتوى على نموذج (Form ) واحد الخاصية Name له هى Form1 اما الخاصية Text له هى Math
• يحتوى هذا النموذج على اداتى كتابة هما
TextFirst – TextScond
• المطلوب عرض نتائج عمليات الجمع و الطرح و الضرب و القسمة و قسمة الاعداد الصحيحة و باقى القسمة و الرفع االى اس لمحتويات اداتى الكتابة في سبع ادوات Label هى
LbLAdd – LbLSub – LbLMul – LbLDiv – LblDiv2 – LbLMod – LbLExp
• عرض المعاملات الرياضية + , - , * , / , \ , mod , ^ في خصائص الادوات من Label 10 الى Label 16 لسبع ادوات Label
• اداة Button تحتوى على اوامر تنفيذ العمليات
الحل
1-تخطيط المشروع
رسم واجهة المستخدم ( الشكل السابق )
2-كتابة المشروع
أ – من الصفحة الرئيسية اختر قائمة File _______< New Project
او من Star Page ______< Creat Project فى مربع RecentProject
ب – يظهر مربع New Project
من Project typ ________< Windows
من Templaes _________> Windowes Application
جـ – ادخل الاسم الذى اخترته للمشروع فى خانة Name و ليكن Math
د – اضغط Ok
3-تهيئة النموذج
- تغيير ابعاد ه لتحصل على المساحة المناسبة
- تغير خاصية Text وجعلها Math
1- وضع الادوات على النموذج
تتغير خصائص الادوات طبقا للجدول
القيمة الخاصية الاسم
نجعلها فارغة
Center
Micro soft sans serif
Bold
10 Text
Text Align
Font
Fon Styl
Font Size txtBox1
نجعلها فارغة
Center
Micro soft sans serif
Bold
10 Text
Text Align
Font
Fon Styl
Font Size txtBox2
First
Second Text
Text Label 1 – Label 2
فارغة
Fixed3d Text
Border Styl Label 9 الى Label 3
+ ،- ،*،/ ، \ ، mod ، ^ Text Label 16 الى Label 10
5. ضبط موقع الادوات على ال Form
اما يدوي بالماوس او من قائمة Format _______> Align
6. اكتب الاكواد للزر Buton
انقر مرتين على الزر مما سيؤدى الى فتح Cod Window مكتوبا بها الاوامر الاولى و الاخيرة و ما عليك إلاكتابة الاتى :
‘تعريف المتغيرات
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘decimal تحويل من الحرفي الى
4 First = Decimal.Parse(Me.txtFirst.Text)
5 Second = Decimal.Parse(Me.txtSecond.Text)
'حساب المتغيرات
6 ad = First + Second
7 lblAdd.Text = ad.ToString()
8 subtract = First - Second
9 lblSub.Text = subtract.ToString()
10 Mul = First * Second
11 lblMul.Text = Mul.ToString()
12 Div = First / Second
13 lblDiv.Text = Div.ToString()
14 Div2 = First \ Second
15 lblIntDiv.Text = Div2.ToString()
16 Modulus = First Mod Second
17 lblMod.Text = Modulus.ToString()
18 Expon = First ^ Second
19 lblExp.Text = Expon.ToString()
لاحظ ان :-
كلمة Me تستعمل لتوفير وقت البرمجة و هى تعنى ان هذه الادوت توجد على نفس النموذج
وعند كتابة كلمة Me وبعدها نقطة تظهر قائمة تحتوى على الكائنات و الخصائص و الطرق التى استعملت بهذا النموذج
(12)مجموعة أوامر Try / Catch :-
_ تستخدم لاكتشاف الاخطاء التى تحدث اثناء تشغيل البرنامج و التعامل معها
_ بالرغم من ان VB . net يكتشف الاخطاء و يقوم بعرض رسائل
_ لكن المبرمجين يفضلون استعمال Try / Catch لان هذا يتيح لهم التعامل مع الاخطاء بانفسهم و عرض رسائل اوضح للمستخدم
الفكرة الاساسية لها :-
Try
مجموعة من الاوامر التى لابد ان ينفذها المستخدم بدون اخطاء
Catch
كود يكتب و لا ينفذ الا ي حالة حدوث اخطاء في الاوامر السابقة و غالبا يكون رسالة
End Try
بقية اوامر البرنامج
- اذ قمنا بتنفيذ الاوامر بعد Try بدون اخطاء ينتقل البرنامج الي الاوامر بعد End Try مباشرة
- اذا تم تنفيذ الاوامر بعد Try بأخطاء ينتقل البرنامج الي الاوامر بعد Catch ليعرض الرسالة الموجودة بها و لا يتابع تنفيذ الاوامر بعد ذلك تصحيح الخطأ
مثال:-
• اكتب الاكواد اللازمة لمشروع يحتوى على نموذج (Form ) واحد الخاصية Name له هى Form1 اما الخاصية Text له هى Math
• يحتوى هذا النموذج على اداتى كتابة هما
TextFirst – TextScond
• المطلوب عرض نتائج عمليات الجمع و الطرح و الضرب و القسمة و قسمة الاعداد الصحيحة و باقى القسمة و الرفع االى اس لمحتويات اداتى الكتابة(الاول ثم الثاني) في سبع ادوات Label هى
LbLAdd – LbLSub – LbLMul – LbLDiv – LblDiv2 – LbLMod – LbLExp
• عرض المعاملات الرياضية + , - , * , / , \ , mod , ^ في خصائص الادوات من Label 10 الى Label 16 لسبع ادوات Label
• اداة Button تحتوى على اوامر تنفيذ العمليات
• في حالة ادخال المستخدم بيانات غير الارقام تظهر رسالة One of the filds is not numeric , Pleace enter only numeric values "
• في حالة ادخال المستخدم صفرا في الخانة الثانية تظهر رسالة" Second value must not be zero "
الحل
تكون الاكواد كلتالي :-
‘تعريف المتغيرات
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘decimal تحويل من الحرفي الى
4 Try
5 First = Decimal.Parse(Me.txtFirst.Text)
6 Second = Decimal.Parse(Me.txtSecond.Text)
7 Catch
8 msg Box ( " One of the filds is not numeric , Pleace enter only numeric values " )
9 End Try
'حساب المتغيرات
10 ad = First + Second
11 lblAdd.Text = ad.ToString()
12 subtract = First - Second
13 lblSub.Text = subtract.ToString()
14 Mul = First * Second
15 lblMul.Text = Mul.ToString()
16 Try
17 Div = First / Second
18 lblDiv.Text = Div.ToString()
19 Div2 = First \ Second
20 lblIntDiv.Text = Div2.ToString()
21 Modulus = First Mod Second
22 lblMod.Text = Modulus.ToString()
23 Catch
24 msg Box ( " Second value must not be zero " )
25 End Try
26 Expon = First ^ Second
27 lblExp.Text = Expon.ToString()
الفصل الثاني
الشروط والقرارات
(1)استخدام التعبيرات الشرطية
التعبير الشرطي : هو عبارة عن صياغة للعلاقة بين كميتين أي من هاتين الكميتين من الممكن أن تكون متغير أو خاصية أو ثابت أو قيمة مجردة .للتعبير الشرطي قيمة تتوقف على صحة العلاقة أو عدم صحتها .فإذا كانت العلاقة غير صحيحة فتكون قيمة التعبير الشرطي False .والعكس إذا كانت العلاقة صحيحة فتكون قيمة التعبير الشرطي True .
- لصياغة التعبيرات الشرطية فإننا نقوم باستعمال بعض المعاملات تسمى معاملات المقارنة
مثال
A = 50 B = 60
النتيجة مثال العلاقة العلامة
A > B اكبر من >
A < B اصغر من <
A = B يساوي =
A < > B لا يساوي < >
A>=B اكبر من او تساوي >=
A<=B اصغر من او تساوي <=
(2)قاعدة استخدام الأمر If ……. Then ……. Else
If condition ( شرط) Then
Statement Block1 ( مجموعة الأوامر رقم 1)
Else
Statement Block2 ( مجموعة الأوامر رقم 2)
End If
Statement Block3 ( مجموعة الأوامر رقم 3)
1. إذا كانت قيمة الشرط True سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 1 ويهمل مجموعة الأوامر رقم 2 ثم يذهب لتنفيذ مجموعة الأوامر رقم 3 .
2. إذا كانت قيمة الشرط False سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 2 ويهمل مجموعة الأوامر رقم 1 ثم يذهب لتنفيذ مجموعة الأوامر رقم 3 .
• الشكل العام للأمر If ……. Then ……. Else
If condition1 Then
Statement block 1
Else If condition2 Then
Statement block 2
………………………..
………………………..
Else
Statement block n
End If
الحل
Dim HoursWorked, OverTime, Salary as Decimal
HoursWorked=Decimal.parse(textbox1.text)
If HoursWorked > 40 Then
OverTime = 10 * (HoursWorked -40)
Salary = 40* 5 + OverTime
Else
Salary = 5 * HoursWorked
End If
MsgBox(“The salary is equal to “ & Salary)
(3)قاعدة استخدام الامر If ……. Then البسيط
If condition Then
Statement block 1
End If
Statement block 2
1. إذا كانت قيمة الشرط True سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 1 ثم يذهب لتنفيذ مجموعة الأوامر رقم 2 .
2. إذا كانت قيمة الشرط False فان لبرنامج سيذهب مباشرة لتنفيذ مجموعة الأوامر رقم 2 .
مثال
If Age > 16 Then
MsgBox(“You can get an ID card”)
End If
• الفرق بين If ……. Then ……. Else و If ……. Then
1. الأمر If ……. Then ……. Else
سيتم استخدامه في حاله ما إذا كان هناك بديلين ( أ، ب ) وكنا نريد تنفيذ حد البديلين اذا كانت قيمة الشرط True ويتم تنفيذ البديل الأخر إذا كانت قيمة الشرط False .
2. الأمر If ……. Then
سيتم استخدامه في حاله ما إذا كان هناك بديل واحد ( أ) بمعنى انه عند قيمة معينة للشرط يتم تنفيذ البديل (أ) أما عند القيمة الأخرى فلا يتم عمل شئ .
(4)الشروط المركبة
تستخدم في حالة ما إذا كنا سنستخدم قرارا معينا بناءا على تحقق شرطين وليس شرط واحد
ويمكننا عمل الشرط لمركب بالربط بين أكثر من شرط بأحد المعاملات التي تسمى المعاملات المنطقية وهي
Or, And, Not
جدول or اذا كان احد الشرطين صحيح او احداهما صحيح يكون الشرط المركب صحيح
النتيجة A or B B A
True True True
True False True
True True False
False False False
جدول and اذا كان كلا من الشرطين صحيح يكون الشرط المركب صحيح
النتيجة A and B B A
True True True
False False True
False True False
False False False
جدول not اذا كان صحيح صحيح يكون الشرط المركب خطأ والعكس بالعكس
Not A A
False True
True False
مثال
تقوم احد الشركات بتحديد قيمة الاجر لكل ساعة عمل لوظيفة معينة طبقا لعدد سنوات الخبرة كما هو موضح بالجول
والمطلوب كتابة معالج حدث النقر Click Event Hander بحيث يتيح لمستخدم البرنامج ادخال عدد سنوات الخدمة وعدد ساعات العمل بحساب كل من الاجر للساعة ويقوم بتخزينه في متغير WageRate والراتب الكلي Salary ويقوم بعرضهما في مربع رسالةعلى ان تكون الواجهة كما بالشكل
الحل
‘Variables declaration
1 Dim YearsOfServiceShort As Short
2 Dim HoursWorkedDecimal As Decimal
3 Dim WageRateDecimal As Decimal
4 Dim SalaryDecimal As Decimal
5 Try
6 YearsOfServiceShort = Short.Parse(Me.txtYears.Text)
7 HoursWorkedDecimal = Decimal.Parse(Me.txtHoursWorked.Text)
8 If YearsOfServiceShort < 5 Then 'Years < 5
9 WageRateDecimal = 5
10 ElseIf YearsOfServiceShort < 10 Then ' 5<= Years <10
11 WageRateDecimal = 7
12 ElseIf YearsOfServiceShort < 15 Then ' 10<= Years <15
13 WageRateDecimal = 10
14 ElseIf YearsOfServiceShort < 20 Then ' 15<= Years <20
15 WageRateDecimal = 12
16 Else
17 WageRateDecimal = 15 ' Years >= 20
18 End If
19 SalaryDecimal = WageRateDecimal * HoursWorkedDecimal
20 MsgBox("Your Wage Rate = " & WageRateDecimal & vbCrLf & _
21 "Your salary = " & SalaryDecimal)
22 Catch
23 MsgBox("Check your inputs ")
24 End Try
VbCrLf تعني اذهب لسطر جديد اي ما قبلها يكتب في سطر وما بعدها في السطر التالي
ـــــ تعني ان السطر الثاني في الامر هو استكمال للسطر السابق
(5)مقارنة القيم والمتغيرات الحرفية( String )
**نستطيع ان نقارن المتغيرات الحرفية بمتغيرات او ثوابت او خصائص حرفية لمتعيرات اخرى
**تتم عملية المقارنة بمقارنة الرمز الموجود في اقصى اليسار لكلا المتغيرين ونتقدم رمزا رمزا حتى نجد رمزين مختلفين فتتوقف عملية المقارنة
**يتم مقارنة المتغيرات الحرفية عن طريق تحديد رتبة كل رمز طبقا لطريقة تخزين الرموز في ذاكرة الحاسب وهذه الطريقة تسمى
ANSI= American National Standards Institute
وهي تعطي كل حرف أو رقم أو رمز خاص رتبة معينة وهذه الرتبة هي رقم ثابت لا يتغير كما في الجدول
i True
ii False
iii True
iv False
(6)استخدام الامر IF مع الادوات Radio Button CheckBox GroupBox
• الاداة Radio Button
تتيح للمستخدم مجموعة من البدائل لاختيار واحدة منها فقط
تستخدم في عرض البدائل المتاحة في البرنامج على ان يقوم المستخدم باختيار بديل واحد فقط
• خصائص الاداة Radio Button
مثال علي أشكال Radio Button
Radio1.checked=True
Radio3.checked=True
• الاداة CheckBox
تتيح للمستخدم مجموعة من البدائل لاختيار أي عدد منها
• خصائص الاداة CheckBox
مثال
• الاداة GroupBox
- تستخدم لتنظيم الأدوات علي النموذج .
- تسمح للمبرمج أن يقسم عدد من الأداة Radio Button و Checked Box إلي مجموعات ويقوم لمستخدم باختيار واحدة فقط من كل مجموعة .
• خصائص الاداة GroupBox
مثال
Group1.Text="sex(الجنس )"
Group2.Text="Birth Place( محل الميلاد)"
مثال يريد مدير معمل تحاليل كتابة برنامج يستطيع من خلاله تحرير فواتير بحيث يسمح للمشغل ان يدخل اسم المريض وتحديد التحاليل ويجب عدم اصدار فاتورة الا بعد ادخال الاسم وفي حالة عدم ادخال اسم يظهر رسالة خطأ ويبين الجدول الخدمات المتاحة واسعارها والشهل 1 يبين واجهة المستخدم والشكل 2 في حالة عدم ادخال اسم والشكل 3 الشكل النهائيبعد ادخال جميع البيانات
الجدول (3)
(1) (2)
lblTotal.Text = ""
If txtName.Text = "" Then
MessageBox.Show("Please enter a name and check at least one item",
"Incomplete information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
Dim total As Decimal = 0.0
If chkCBC.Checked = True Then
total = total + 21.0
End If
If chkTIC.Checked = True Then
total = total + 7.5
End If
If chkRBC.Checked = True Then
total = total + 5.5
End If
If chkHB.Checked = True Then
total = total + 5.0
End If
lblTotal.Text = total
End If
الفصل الثالث
أوامر التكرار
- في هذا الفصل سيتم تقديم أوامر التكرار وهي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين.
(1)الأمر Do While…………Loop
يتبع القاعدة التالية:
في كل مرة يصل البرنامج إلي Do While يقوم بتقييم الشرط.
أ- لو كان الشرط خاطئاً "False" فإن التنفيذ يبدأ عند أول أمر بعد كلمة Loop
ب-لو كان الشرط صحيحا "True" فإنه يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى أخر أمر قبل كلمة Loop وعندما يصل البرنامج إلي كلمة Loop فإنه يعود مرة أخري إلي Do while حيث يتم تقييم الشرط مرة أخري وطبقا لقيمة الشرط فإما أن تكون True فيستمر التكرار أو تكون False فينتهي التكرار كما في الشكل.
مثال: مطلوب أن تقوم بجمع الأعداد الفردية من (1) إلي (Limit) حيث Limit هو رقم صحيح موجود في الأداة Text Box المسمى TXTLimit
الحل:
Dim x, total, limit As Integer
limit = Integer.Parse(txtLimit.Text)
x = 1
Do While x <= limit
total = total + x
x = x + 2
Loop
Me.Label2.Text = Format(total, "##")
ملحوظة
في السطر الثامن استخدمنا الدالة Format والتي يمكن استخدامها لتحديد شكل المخرجات
Result for x = 3.456 Result for x = 3.4 Format function
Format(x)
(Format(x, “00.0
Format(x, “##.##”)
Format(x, “##.00” )
Format(x, “00.##” )
(2)الامر For ………. Next
على خلاف أوامر التكرار السابقة والتي لا نعرف فيها عدد مرات التكرار فان الأمر For ………. Next يستعمل في حالة معرفة عدد مرات التكرار مسبقاً .
الأمثلة:
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 5 الى 50 بزيادة 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 1 الى 100 بزيادة 1
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 100 الى 2 بنقص 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (11 , 13 ,15 ,17 ,19)
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (49 , 42 ,35 ,28 ,21)
• الاداة ListBox
- هي واحدة من الأدوات التي ترتبط غالباً بالتكرار .
- وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها . وفي حالة ما اذا كان عدد الصفوف اكبر من يعرض داخل المستطيل يقوم v.b. تلقائيا باضافة شريط منزلقScroll Bar الى يمين الاداة Listbox
لاحظ ان index يأخذ الارقام من الصفر الي count-1 اي العنصر الاول صفر والذي يليه 1 وهكذا
مثال 1:
اكتب الاكواد اللازمة لمايأتي
1- عند الضغط على يتم ادخال ايام الاسبوع في الاداة ListBox المسماه lstDayays
2- عند الضغط على btnCopy يتم ادخال العنصر الذي تم اختياره الي الاداة ListBox المسماه lstChosen
3- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstDayays
4- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstChosen
الحل
1- نضغط مرتتين على btnAddDays ونكتب الاكواد
1 Me.lstDays.Items.Add("Saturday")
2 Me.lstDays.Items.Add("Sunday")
3 Me.lstDays.Items.Add("Monday")
4 Me.lstDays.Items.Add("Tuesday")
5 Me.lstDays.Items.Add("Wednesday")
6 Me.lstDays.Items.Add("Thursday")
7 Me.lstDays.Items.Add("Friday")
2- نضغط مرتتين على btnCopy ونكتب الاكواد
8 Me.lstChosen.Items.Add(Me.lstDays.SelectedItem)
3- - نضغط مرتتين على btnClearDays ونكتب الاكواد
9 Me.lstDays.Items.Clear()
4-- نضغط مرتتين على btnClearDays ونكتب الاكواد
10 Me.lstChosen.Items.Clear()
مثال 2 :
Amount = principal ( 1 + rate/100 )n
حيث ان القيمة المستحقة =amount و قيمة رأس المال =principal ومعدل الفائدة =rate وعدد السنوات =n
الكود الخاص ب Button1
'declare variables to store user inputs
1 Dim principal, interest, years, amount As Decimal
2 Dim year As Integer
3 Dim output As String
'convert text to decimal
4 principal = Val(Me.txtPrinc.Text)
5 interest = Val(Me.txtInterest.Text)
6 years = Val(Me.txtYears.Text)
'write heading in the list box
7 output = "Amount" & ControlChars.Tab & ControlChars.Tab & "Years"
8 Me.lstAmount.Items.Add(output)
'Calculate the amount from 1 year to the value of years variable
9 For year = 1 To years
10 amount = principal * ((1 + interest / 100) ^ year)
11 output = Format(amount, "###.00") & ControlChars.Tab &
12 ControlChars.Tab & year
13 Me.lstAmount.Items.Add(output)
14 Next
15 Me.txtPrinc.Focus() 'focus on txtPrinc text box
الكود الخاص ب Button2
16 Me.txtPrinc.Text = "" 'clear the Principal
17 Me.txtInterest.Text = "" 'clear the interest
18 Me.txtYears.Text = "" 'clear the number of years
19 Me.lstAmount.Items.Clear() 'clear the list box
20 Me.txtPrinc.Focus()
لاحظ:
Val دالة تستخدم لتحويل المتغيرات الحرفية إلي رقمية ولكن تتجاهل إدخال المستخدم لرمز مثل$ ولا تظهر رسالة خطأ
Focus ( ) تستخدم لنقل الانتباه إلي Text Box .
Controlchar.tab يستخدم لعمل tab 5مسافات بين الكلام في ال MsgBox .
الفصل الرابع
الميقاتي Timer
• مقدمة
عزيزي الطالب تقع الأحداث (Events) عندما يقوم مستعمل البرنامج بعمل ما ، مثل الضغط علي زر أو زر راديو . ولكن في بعض الأحيان تكون في احتياج لان تجعل بعض الأحداث تقع بعد فترة زمنية معينة وبدون تدخل مستعمل البرنامج ، وهذا تستطيع عمله باستعمال الكائن Timer والحدث Tick .
في حقيقة الأمر الكائن Timer هو ساعة توقيت غير مرئية تتيح لك التعامل مع ساعة النظام (System Clock) من داخل البرنامج التي تقوم بتنفيذها .
(1)استعمال الكائن timer
عندما يكون لديك timer على النموذج فانه ينشط علي فترات زمنية متساوية . وهذه الفترات تسمى (Intervals) وكنتيجة لهذا النشاط يقع الحدث Tick ويمكنك تنفيذ مجموعة من الأوامر .
ونستنتج من ذلك الأتي :
الكائن Timer
الحدث Tick ( يقع بعد فترة زمنية معينة بدون تدخل المستخدم )
الخاصية 1. Interval لتحديد الفترة الزمنية بالمللي ثانية
2. Enabled (التمكين) (تستخدم لكي ينشط الــ Timer بعد كل فترة زمنية ) ولابد أن تكون قيمتها True ولإيقاف الــ Timer عن العمل نجعلها False .
(2)التكوين Date Time
عند الإعلان عن متغير من النوع Date يكون لدينا تكوين يسمى Date Time هذا التكوين له خصائص ووسائل نذكرها في الجدولين الآتيين :
مثلا: Dim X as Date
لا يمكن تغيير الوقت والتاريخ لكائن Date بعملية جمع وطرح عادية
مثال
تصميم ساعة رقمية تعلن عن التاريخ والوقت الحالي كما بالشكل
كود ال timer
Me.lblCurrentTime.Text = Date.Now
كود button1
Close()
مثال
تصميم ساعة توقيت ذات فترة زمنية متغيرة باستخدام الكائن Timer
كود Timer1
Me.lblCurrentTime.Text = Date.Now
كود Button1
Close()
كود btnStart
Me.Timer2.Interval = Integer.Parse(Me.txtInterval.Text)
Me.Timer2.Enabled = True
كود btnStop
Me.Timer2.Enabled = False
Me.btnStart.Text = "Continue"
كود Timer2
Static x As Integer = 0
x = x + 1
Me.lblCount.Text = Format(x)
كود btnReset
Me.Timer2.Enabled = False
Me.lblCount.Text = "0"
Me.btnStart.Text = "Start"
تم استخدام Static بدلا من Dim حتى يتم الاحتفاظ بقيمتها طوال البرنامج اما Dim يتم اعطاءها قيمة ابتدائية عند كل استدعاء للبرنامج الفرعي
تمثيل البيانات
(1) كيف تجرى عملية حسابية في ال Visual Basic.net
فى البداية تستقبل ما يكتبه المستخدم باستخدام اداة الكتابة Text Box وهذا يمثل المدخلات ( وهذه المدخلات حرفية وان كانت ارقام)
ثم نقوم بتحويلها إلي قيم رقمية
يتم اجراء العمليات الحسابية عليها في ذاكرة الحاسب
ثم تقوم بعرض النتائج
(2) البيانات الثابتة و المتغيرة
• اى بيانات يتم التعامل معها لابد ان تكون مخزنة في ذاكرة الحاسب الداخلية
• ذاكرة الحاسب تتكون من ملايين الخلايا (الاماكن – المخازن) المتساوية و تسمى كل خلية (Byte )
• تحمل تاخلايا ارقام متسلسلة تبدأ من الصفر
• يمثل عدد الخلايا حجم الذاكرة وكلما زادت زاد حجم الذاكرة
• السعة التخزينية للخلية اما حرف واحد او رقم صحيح بين – 128 و + 127
• اذا كان اكثر من ذلك يتم التخزين في اكثر من خلية
• يعطى اسم لكل خلية او لكل مجموعة خلايا ما دامت تحمل قيمة واحدة حتى يسهل تتبعها و التعامل معها
• اذا كانت القيم المخزنة تتغير اثناء تشغيل البرنامج فإن اسماء الخلايا التى تشغله هذه القيم يطلق عليها متغيرات ويطلق على عملية اعطاء الاسماء للخلايا في هذه الحالة اعلان المتغيرات
• اذا كانت القيم لا تتغير اثناء تشغيلها البرنامج فإن اسماء الخلايا التى تشغلها هذه القيم يطلق عليها الثوابت ويطلق على عملية اعطاء الاسماء للخلايا في هذه الحالة اعلان الثوابت
(3)انواع البيانات
يتحدد البيانات حسب
1- عدد Byte و هو حجم الذاكرة
2- المدي Range حدود القيم المتاحة للمتغير
3—الدقة Precision عدد الخانات التي يتم تمثيل المتغير بها وهي خاصة بالرقمية فقط
ومن اهم انواع البيانات
1- Boolean تحتاج 2 خلية True/False
2- Date تحتاج 8 خلية من 1/1/1000 الي 31/12/9999
3- حروف
4- *حرف Char يحتاج 2خلية حرف واحد
5- *سلسلة حرفية String اي عدد من الحروف = عدد الخلايا
6- ارقام 1-صحيحة
Byte يحتاج خلية واحدة بين 0 و 255 الدقة خانة واحدة
Short يحتاج 2 خلية بين – 32768 و+ 32767 الدقة 5 خانات
Integer يحتاج 4 خلية بين + 2147483647 و – 2147483648 الدقة 10خانات
Long يحتاج 8 خلية بين – 9223372036854775808 و+ 9223372036854775807 الدقة 19 خانة
2عشرية
Single تحتاج 4 خلية بدقة 7 خانات
Double تحتاج 8 خانات بدقة 15 خانة
Decimal تحتاج 16 خلية بدقة 29 خانة
مثال تخزين 5.2 في المتغيرين من النوع integer & long وعند عرض النتائج ستكون 5 فقط بدون ارقام عشرية لان الانواع من النوع integer & long&short تستخدم لتخزين الاعداد الصحيحة فقط وليست الاعداد التي تحتوي على كسور
اما الانواع Single Double Decimal تخزن الكسور ولكن بدقة مختلفة
مثال اذا اردنا ان نخزن القيمة 123456.10987654321 في ثلاث متغيرلات X وY وZ من الانواع Single وDoubleوDecimal علي الترتيب فاكمل الجدول موضحا السبب
السبب القيمة المخزنة النوع المتغير
Single X
Double Y
Decimal Z
(4)قواعد تكوين الاسماء في ال VB.net:-
أولا: قواعد يجب الالتزام بها :-
1. يجب ان يبدأ الاسم بحرف من حروف الانجليزية A……Z a……z
2. يأتى بعد الحرف الاول أى عدد من الحروف او الارقام
3. لايسمح ان يحتوى على رموز او علامات او مسافات ماعدا علامة ال Underscore _
4. ممنوع استخدام الكلمات المحجوزة فى VB.net مثل Data – Short – Double Dim-Print-Data
ثانيا : قواعد يستحسن الالتزم بها :-
1. اختر اسماء ذات معنى مناسب
2. فى الكلمات التى تتكون من مقطعين يمكن ان يبدأ كل مقطع بحرف Capital لان المسافة غير مسموح بها
3. يفضل ان يبدأ الاسم بـ 3 احرف تعطى انطباع عن نوع المتغير
امثلة لأسماء صحيحة
FirstName
Ahmed2000
PopulationOfEgypt
Spent_mony
امثلة لأسماء غير صحيحة
2ndWorldWar
اكتب الخطأ ……………………….………..
Spen.Mon
………………………………………..
Birth Day
………………………………………..
Double
………………………………………..
في حالة استخدام اسم خطأ يعطي synatax error
(5)اختيار النوع المناسب لكل متغير
حسب : - نوع البيانات التي يمكن تخزينها فيه
- العمليات التي يمكن اجراؤها عليه
- حجم الذاكرة الذي يحتاجه المتغير
طبيعة البيانات المخزنة النوع المناسب السبب
True / False Boolean احسن استغلال للذاكرة
ارقام السيارات التليفونات الرقم القومي String اختيار وحيد
مبلغ من المال Decimal يخزن ارقام عشرية وبدقة وبدون اخطاء وسريع في العمليات الحسابية
عدد صحيح بين – 32768 و+ 32767 Short استهلاك قليل للذاكرة واسرع في العمليات الحسابية
عدد صحيح بين + 2147483647 و – 2147483648 Integer اقل في الذاكرة واسرع في الحساب من Long
عدد صحيح اكبر من + 2147483647 واقل – 2147483648 Long اختيار وحيد
كسر عشري سبع خانات دقة Single اسرع من Double
كسر عشري اكبر من 7 خانات دقة Double
(6)الثوابت : طريقة لاعطاء اسماء للخلايا التي تحتوي قيم لا تتغير اثناء تشغيل البرنامج
انواع الثوابت جوهرية - مسماه
ثوابت جواهرية:- هى الثوابت الموجودة فى بناء و جوهر نظام ال VB.net أى يستطيع البرنامج التعامل معها بدون اعلان مثال مجموعة الالوان
مثال Color.Black Color.Blue Color.Red
طريقة الاستعمال TxtX.ForeColor = Color.Blue
(7)المتغيرات طريقة لاعطاء اسماء للخلايا التي تحتوي قيم تتغير اثناء تشغيل البرنامج
Dim ChildWeight as Integer
Dim Population as Integer
Dim Name as String
Dim Address as String = "Cairo"
Dim UnitPrice as Decimal = 123.5
لاحظ ان :-
1. لابد من استخدام كلمة Dim للإعلان عن المتغيرثم اسم المتغير ثم as ثم النوع
2. يمكن ان تكتب ( =) و بعدها قيمة و هذه القيمة ستكون قيمة البداية
أو يمكن ان تهملها و لا تستخدم (=) و فى هذه الحالة
_ المتغيرات الرقمية تبدأ بقيمة صفر
_ المتغيرات الحرفية ستكون فارغة
الاعلان عن اكثر من متغير باستخدام امر Dim واحد
Dim UnitPrice as Decimal = 123.5,Name as Address = " Cairo "
Dim ChildWeight, Population as Integer
Dim Name as String
(امر التخصيص ( الاحلال ) :-
ان اهم دور للمتغيرات هو تخزين البيانات بها ولكى نخزن قيمة فى متغير نستخدم امر التخصيص
Variable Name = Value
علامة = تسمى معامل التخصيص
( اى يتم حجز مكان فى الذاكرة يسمى باسم المتغير و توضع داخله القيمة )
يجب مراعاة الاتى:-
1. اسم المتغير الذى نريد التخزين فيه يكون شمال (=)
2. القيمة المراد تخزينها تكون يمين (=) وتكون من نوع ملائم لنوع المتغير
3. القيمة يمكن ان تكون :-
قيمة مجردة
مثل X=5
متغير اخر X=Y
حيث يتم تخزين قيمة Y في النتغير X
عملية حسابية
مثل X=2Y+Z
حيث يتم حساب القيمة 2Y+Z ثم تخزن في X
1- المتغيرات التي على يمين = لا يحدث بها اي تغيير
2- مفهوم العلامة = في امر التخصيص يختلف نهائيا عن مفهما في المعادلة الرياضية
حيث الصيغة X+3=10 صحيحة كمعادلة رياضية وليست صحيحة كامر تخصيص لوجود عملية حسابية شمال =
والصيغة X=X+1 غير صحيحة كمعادلة رياضية وصحيحة كامر تخصيص
مثال قم بتتبع مجموعة الاوامر التالية :
Dim X As Short
Dim Y As Short
Dim Z As Short
X = 10
X = 2 * X + 1
Y = X - 8
Z = Y /4
Z = Z + 4
Z Y X Statement
Dim X As Short
Dim Y As Short
Dim Z As Short
X = 10
X = 2 * X + 1
Y = X - 8
Z = Y /4
Z = Z + 4
(9)استعمال امر التخصيص مع المتغيرات الحرفية String
يستخدم امر التخصبص الاحلال في تخزين القيم الحرفية
و من العمليات التي يمكن ان نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفي ببعضها لتكوين متغير حرفي واحد هذا الربط يتم باستعمال & الذي يسمى معامل الربط
FirstName ="Hany"
SecondName = "Ahmed"
Fullname = "Welcome"&FirstName&" "&SecondName
تكون النتيجة
Welcome Hany Ahmed
- قمنا بعملية ربط بين المتغيرات باستخدام العلامة &
- " " تعنى انه سيترك مسافة فارغة مقدارها مسافة واحدة او عدة مسافات
- " " تعنى قيمة حرفية فارغة ( طولها صفر )
مثال تتبع مجموعة الاوامر الاتية :
Dim FirstName As String
Dim LasttName As String
Dim Message As String
FirstName = “Hany”
LastName = “Ahmed”
Message = “Welcome ” & FirstName & “ “ & LastName
Message LastName FirstName Statememet
Dim FirstName As String
Dim LasttName As String
Dim Message As String
FirstName = “Hany”
LastName = “Ahmed”
Message = “Welcome ” & FirstName &“ "& LastName
مثال اكمل الجدول التالي
TaxRate Price UnitPrice Quantity Statement
Dim Quantity As Integer = 100
Dim UnitPrice As Decimal = 5.5
Dim Price As Decimal
Dim TaxRate = 0.10
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
Quantity = 200
UnitPrice = 6.2
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
(10)التحويل بين الانواع المختلفة للبيانات
تختلف طريقة تخزين القيمة الحرفية "123" اختلاف تام عن طريقة تخزين القيمة الرقمية 123 فالقيمة الحرفية "123" تخزن في 3 خلايا اما القيمة الرقمية 123 يمكن ان تخزن في خلية واحدة
اولا تحويل البيانات الحرفية الي بيانات رقمية
- يمكننا اجراء عمليات حسابية باستخدام المتغيرات و الثوابت و الخصائص object مادامت هذه المتغيرات و الثوابت والخصائص من الانواع الرقمية
- ولكن عند ادخال البيانات الى البرنامج فاننا ندخلها عن طريق اداة الكتابة ( Text Box )
- وبرنامج ال VB.net يتعامل مع هذه البيانات على انها بيانات حرفية و ليس رقمية اى لا يمكن اجراء العمليات الحسابية عليها مباشرة ولحل هذه المشكلة لابد من تحويلها الي بيانات رقمية
- لتحويل البيانات الحرفية الى رقمية نستخدم Parse Method
- كل انواع البيانات الرقمية التي تستخدم في الاعلان عن المتغيرات مثل integer و decimal ما هي الا فئات class اي لها خصائص و طرق(وسائل) وجميعها تشترك في ان لها Parse Method
الشكل العام لــ Parse Method
1. لتحويل قيمة حرفية الي عدد صحيح Integer نستخدم (القيمة الحرفية ) Integer.Parse
2. لتحويل قيمة حرفية الى عدد عشرى Decimal نستخدم (القيمة الحرفية ) Decimal.Parse القيمة الحرفية قد تكون خاصية اداة متغير حرفي او ثابت اما نتيجة قيمة التحويل فهي قيمة عددية
اذا صادفت Parse Method اي حرف او علامة لا يمكن تحويلها لرقم فان عملة التحويل تتوقف ويظر رسالة خطأ
مثال
لديك اداتان من ادوات الكتابة الاولي(txtBooksQuantitly) سعر الكتاب ، الثانية(txtUnitPric) عدد الكتب و مطلوب حساب الثمن الاجمالى ووضعه في متغير رقمي(TotalPrice)
شرح الحل
سعر الكتاب UnitPric عدد الكتب BooksQuantitly السعر الاجمالى TotalPrice
السعر الاجمالى = سعر الكتاب * عدد الكتب
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal اعلان المتغيرات ا
Dim TotalPrice as Decimal
القيم المخزنة في txtBooksQuantitly و txtUnitPricحرفية ولابد من تحويلها الي عددية وتخزينها متغيرات عددية
لتحويل النص المكتوب فى مربع النص txtBooksQuantitly الى عدد صحيح ووضعها في BooksQuantitly
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
لتحويل النص المكتوب فى مربع النص txtUnitPricالى عدد عشرى ووضعها في UnitPric
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
لحسلب السعر الاجمالى ووضعه في المتغير TotalPrice
TotalPrice = BooksQuantitly * UnitPric
الحل النهائي
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
لاحظ ان :-
داخل الاكواد يمكن كتابة بعض الاسطر التى تساعد المبرمج و لكن المترجم او المفسر يهملها ولا يلتفت اليها وتسمى تعليقات هذه الاسطر تكتب امامها ( ' ) مثل ' calculate the total price
ثانيا تحويل البيانات الرقمية الي بيانات حرفية
لاظهار النتائج يتم اظهارها في الاداة Label او TextBox وعليه لابد ان تكون حرفية اي تتحول من عددي الى حرفي باستعمال ToString ( )وما بين القوsين يسمي معامل الدالة argument وفي حالة عدم وجود شئ داخل الاقواس يكون البيان غير مصاغ unformatted
الصيغة العامة هي txtResult.Text=xInteger.ToString()
مثال
لديك اداتان من ادوات الكتابة الاولي(txtBooksQuantitly) سعر الكتاب ، الثانية(txtUnitPric) عدد الكتب و مطلوب حساب الثمن الاجمالى ووضعه في متغير رقمي(TotalPrice) ثم اظهار النتيجة في اداة الكتابة txtResult
الحل
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
txtResult.Text = UnitPric.To string ( )
ثالثا التحويل بين انواع البيانات العددية : -
***التحويل المباشر ( التلقائى )
- يستخدم عند تحويل من نوع عددى ذا سعة تخزينية صغيرة الى نوع عددى ذا سعة تخزينية اكبر
- نعنى بالسعة التخزينية هنا عدد خلايا لذاكرة
مثال :- اذا ردنا تحويل المتغير ( Number1 ) من النوع Decimal الى المتغير ( Number 2) وهو من النوع Integer كالآتى :- Number 1 = Number 2
انواع التحويلات التى يمكن إجراؤها بالطريقة المباشرة
TO From
Short – Integer – Long – Single – Double – Decimal Byte
Integer – Long – Single – Double – Decimal Short
Long – Single – Double – Decimal Integer
Single – Double – Decimal Long
Decimal –Double Single
Decimal Double
ملاحظات :-
التحويل المباشر لا يصلح فى حالتين :
1. تحويل البيانات من النوع Double الى اى نوع اخر
2. تحويل البيانات التى تحتوى على كسور ( Single , Double ) الى النوع Decimal
وفى هذه الحالات نستخدم التحويل غير المباشر
***التحويل الغير مباشر
- يتم استخدامه عندما نحول نوع ذوسعة تخزينية كبيرة الى نوع اقل فى السعة التخزينية
- اى يستخدم بين البيانات العددية التى لايمكنك اجراء التحويل المباشر عليها مثل تحويل النوع Double الى اى نوع اخر من انواع البيانات
- و لتسهيل عملية التحويل الغير مباشر يتيح البرنامج للمبرمجين Class يسمى Convert Class يحتوى على وسائل Methods تبدأ اسماؤها بـ To للتحويل بين الانواع المختفلة
Use Method الطريقة المستخدمة النوع المطلوب التحويل اليه To Convert to Data type
ToInt16 Short
ToInt32 Integer
ToInt64 Long
ToDecimal Decimal
ToSingle Single
ToDouble Double
(11)العمليات الحسابية :-
المعامل المؤثر العملية
+ جمع
- طرح
* ضرب
/ قسمة عادية
\ قسمة اعداد صحيحة
mod باقى القسمة
^ اسس
***قسمة الاعداد الصحيحة وباقي القسمة
إذا قسمنا العدد الصحيح (Integer ) 48 على العدد الصحيح 5 فتكون النتيجه كالآتى :-
1. قسمة عادية 48 / 5 =9.6
2. قسمة اعداد صحيحة (اهمال باقي القسمة) 48 \ 5 = 9
3. اذا اردنا الباقى فيمكن الحصول عليه باستخدام 48 mod 5 = 3
*** الاسس :
يستعمل معامل الاسس ( ^ ) فى رفع عدد معين ( الاساس ) الى اس معين و تكون النتيجة من النوع Double
فمثلا اذا كان X=5
فإنه Y=X^5
اذا Y = 25
بشرط ان تكون Y من النوع Double
***ترتيب تنفيذ العمليت الحسابية :-
ترتيب تنفيذ العمليات الحسابية داخل VB يتم كالآتى : حتى يتم الحصول على النتائج الصحيحة
1. العمليات التى بين الاقواس ( الداخلية اولا ثم الخارجية )
2. عمليات الاسس
3. عمليات الضرب و القسمة ( الاولوية من اليسار ثم اليمين )
4. عمليات قسمة الاعداد الصحيحة
5. عمليات حساب باقى القسمة
6. عمليات الجمع و الطرح ( الاولوية من اليسار الي ليمين )
مثال :-
ما هى نتيجة تنفيذ العمليات الاتية بافتراض القيم التالية للمتغيرات :-
X = 2 Y = 3 Z = 4
A) X * ( Y + 1 )
B) Y^ X * X + Z *3
الحل A 1- نستبدل كل متغير بقيمته 2* ( 3 + 1 )
2-حساب ما بداخل الاقواس اولا 2 * ( 4 )
3- تنفيذ عملية الضرب فيكون الناتج ( 8 )
B )
1. نستبدل كل متغير بقيمته 3^ 2 * 2 + 4 * 3
2. يتم حساب الاس اولا 9 * 2 + 4 * 3
3. تنفيذ عملية الضرب التى في اليسار 18 + 4 * 3
4. تنفيذ عملية الضرب التى في اليمين 18 + 12
5. تنفيذ الجمع ليكون الناتج 30
مثال
• اكتب الاكواد اللازمة لمشروع يحتوى على نموذج (Form ) واحد الخاصية Name له هى Form1 اما الخاصية Text له هى Math
• يحتوى هذا النموذج على اداتى كتابة هما
TextFirst – TextScond
• المطلوب عرض نتائج عمليات الجمع و الطرح و الضرب و القسمة و قسمة الاعداد الصحيحة و باقى القسمة و الرفع االى اس لمحتويات اداتى الكتابة في سبع ادوات Label هى
LbLAdd – LbLSub – LbLMul – LbLDiv – LblDiv2 – LbLMod – LbLExp
• عرض المعاملات الرياضية + , - , * , / , \ , mod , ^ في خصائص الادوات من Label 10 الى Label 16 لسبع ادوات Label
• اداة Button تحتوى على اوامر تنفيذ العمليات
الحل
1-تخطيط المشروع
رسم واجهة المستخدم ( الشكل السابق )
2-كتابة المشروع
أ – من الصفحة الرئيسية اختر قائمة File _______< New Project
او من Star Page ______< Creat Project فى مربع RecentProject
ب – يظهر مربع New Project
من Project typ ________< Windows
من Templaes _________> Windowes Application
جـ – ادخل الاسم الذى اخترته للمشروع فى خانة Name و ليكن Math
د – اضغط Ok
3-تهيئة النموذج
- تغيير ابعاد ه لتحصل على المساحة المناسبة
- تغير خاصية Text وجعلها Math
1- وضع الادوات على النموذج
تتغير خصائص الادوات طبقا للجدول
القيمة الخاصية الاسم
نجعلها فارغة
Center
Micro soft sans serif
Bold
10 Text
Text Align
Font
Fon Styl
Font Size txtBox1
نجعلها فارغة
Center
Micro soft sans serif
Bold
10 Text
Text Align
Font
Fon Styl
Font Size txtBox2
First
Second Text
Text Label 1 – Label 2
فارغة
Fixed3d Text
Border Styl Label 9 الى Label 3
+ ،- ،*،/ ، \ ، mod ، ^ Text Label 16 الى Label 10
5. ضبط موقع الادوات على ال Form
اما يدوي بالماوس او من قائمة Format _______> Align
6. اكتب الاكواد للزر Buton
انقر مرتين على الزر مما سيؤدى الى فتح Cod Window مكتوبا بها الاوامر الاولى و الاخيرة و ما عليك إلاكتابة الاتى :
‘تعريف المتغيرات
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘decimal تحويل من الحرفي الى
4 First = Decimal.Parse(Me.txtFirst.Text)
5 Second = Decimal.Parse(Me.txtSecond.Text)
'حساب المتغيرات
6 ad = First + Second
7 lblAdd.Text = ad.ToString()
8 subtract = First - Second
9 lblSub.Text = subtract.ToString()
10 Mul = First * Second
11 lblMul.Text = Mul.ToString()
12 Div = First / Second
13 lblDiv.Text = Div.ToString()
14 Div2 = First \ Second
15 lblIntDiv.Text = Div2.ToString()
16 Modulus = First Mod Second
17 lblMod.Text = Modulus.ToString()
18 Expon = First ^ Second
19 lblExp.Text = Expon.ToString()
لاحظ ان :-
كلمة Me تستعمل لتوفير وقت البرمجة و هى تعنى ان هذه الادوت توجد على نفس النموذج
وعند كتابة كلمة Me وبعدها نقطة تظهر قائمة تحتوى على الكائنات و الخصائص و الطرق التى استعملت بهذا النموذج
(12)مجموعة أوامر Try / Catch :-
_ تستخدم لاكتشاف الاخطاء التى تحدث اثناء تشغيل البرنامج و التعامل معها
_ بالرغم من ان VB . net يكتشف الاخطاء و يقوم بعرض رسائل
_ لكن المبرمجين يفضلون استعمال Try / Catch لان هذا يتيح لهم التعامل مع الاخطاء بانفسهم و عرض رسائل اوضح للمستخدم
الفكرة الاساسية لها :-
Try
مجموعة من الاوامر التى لابد ان ينفذها المستخدم بدون اخطاء
Catch
كود يكتب و لا ينفذ الا ي حالة حدوث اخطاء في الاوامر السابقة و غالبا يكون رسالة
End Try
بقية اوامر البرنامج
- اذ قمنا بتنفيذ الاوامر بعد Try بدون اخطاء ينتقل البرنامج الي الاوامر بعد End Try مباشرة
- اذا تم تنفيذ الاوامر بعد Try بأخطاء ينتقل البرنامج الي الاوامر بعد Catch ليعرض الرسالة الموجودة بها و لا يتابع تنفيذ الاوامر بعد ذلك تصحيح الخطأ
مثال:-
• اكتب الاكواد اللازمة لمشروع يحتوى على نموذج (Form ) واحد الخاصية Name له هى Form1 اما الخاصية Text له هى Math
• يحتوى هذا النموذج على اداتى كتابة هما
TextFirst – TextScond
• المطلوب عرض نتائج عمليات الجمع و الطرح و الضرب و القسمة و قسمة الاعداد الصحيحة و باقى القسمة و الرفع االى اس لمحتويات اداتى الكتابة(الاول ثم الثاني) في سبع ادوات Label هى
LbLAdd – LbLSub – LbLMul – LbLDiv – LblDiv2 – LbLMod – LbLExp
• عرض المعاملات الرياضية + , - , * , / , \ , mod , ^ في خصائص الادوات من Label 10 الى Label 16 لسبع ادوات Label
• اداة Button تحتوى على اوامر تنفيذ العمليات
• في حالة ادخال المستخدم بيانات غير الارقام تظهر رسالة One of the filds is not numeric , Pleace enter only numeric values "
• في حالة ادخال المستخدم صفرا في الخانة الثانية تظهر رسالة" Second value must not be zero "
الحل
تكون الاكواد كلتالي :-
‘تعريف المتغيرات
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘decimal تحويل من الحرفي الى
4 Try
5 First = Decimal.Parse(Me.txtFirst.Text)
6 Second = Decimal.Parse(Me.txtSecond.Text)
7 Catch
8 msg Box ( " One of the filds is not numeric , Pleace enter only numeric values " )
9 End Try
'حساب المتغيرات
10 ad = First + Second
11 lblAdd.Text = ad.ToString()
12 subtract = First - Second
13 lblSub.Text = subtract.ToString()
14 Mul = First * Second
15 lblMul.Text = Mul.ToString()
16 Try
17 Div = First / Second
18 lblDiv.Text = Div.ToString()
19 Div2 = First \ Second
20 lblIntDiv.Text = Div2.ToString()
21 Modulus = First Mod Second
22 lblMod.Text = Modulus.ToString()
23 Catch
24 msg Box ( " Second value must not be zero " )
25 End Try
26 Expon = First ^ Second
27 lblExp.Text = Expon.ToString()
الفصل الثاني
الشروط والقرارات
(1)استخدام التعبيرات الشرطية
التعبير الشرطي : هو عبارة عن صياغة للعلاقة بين كميتين أي من هاتين الكميتين من الممكن أن تكون متغير أو خاصية أو ثابت أو قيمة مجردة .للتعبير الشرطي قيمة تتوقف على صحة العلاقة أو عدم صحتها .فإذا كانت العلاقة غير صحيحة فتكون قيمة التعبير الشرطي False .والعكس إذا كانت العلاقة صحيحة فتكون قيمة التعبير الشرطي True .
- لصياغة التعبيرات الشرطية فإننا نقوم باستعمال بعض المعاملات تسمى معاملات المقارنة
مثال
A = 50 B = 60
النتيجة مثال العلاقة العلامة
A > B اكبر من >
A < B اصغر من <
A = B يساوي =
A < > B لا يساوي < >
A>=B اكبر من او تساوي >=
A<=B اصغر من او تساوي <=
(2)قاعدة استخدام الأمر If ……. Then ……. Else
If condition ( شرط) Then
Statement Block1 ( مجموعة الأوامر رقم 1)
Else
Statement Block2 ( مجموعة الأوامر رقم 2)
End If
Statement Block3 ( مجموعة الأوامر رقم 3)
1. إذا كانت قيمة الشرط True سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 1 ويهمل مجموعة الأوامر رقم 2 ثم يذهب لتنفيذ مجموعة الأوامر رقم 3 .
2. إذا كانت قيمة الشرط False سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 2 ويهمل مجموعة الأوامر رقم 1 ثم يذهب لتنفيذ مجموعة الأوامر رقم 3 .
• الشكل العام للأمر If ……. Then ……. Else
If condition1 Then
Statement block 1
Else If condition2 Then
Statement block 2
………………………..
………………………..
Else
Statement block n
End If
الحل
Dim HoursWorked, OverTime, Salary as Decimal
HoursWorked=Decimal.parse(textbox1.text)
If HoursWorked > 40 Then
OverTime = 10 * (HoursWorked -40)
Salary = 40* 5 + OverTime
Else
Salary = 5 * HoursWorked
End If
MsgBox(“The salary is equal to “ & Salary)
(3)قاعدة استخدام الامر If ……. Then البسيط
If condition Then
Statement block 1
End If
Statement block 2
1. إذا كانت قيمة الشرط True سيقوم البرنامج بتنفيذ مجموعة الأوامر رقم 1 ثم يذهب لتنفيذ مجموعة الأوامر رقم 2 .
2. إذا كانت قيمة الشرط False فان لبرنامج سيذهب مباشرة لتنفيذ مجموعة الأوامر رقم 2 .
مثال
If Age > 16 Then
MsgBox(“You can get an ID card”)
End If
• الفرق بين If ……. Then ……. Else و If ……. Then
1. الأمر If ……. Then ……. Else
سيتم استخدامه في حاله ما إذا كان هناك بديلين ( أ، ب ) وكنا نريد تنفيذ حد البديلين اذا كانت قيمة الشرط True ويتم تنفيذ البديل الأخر إذا كانت قيمة الشرط False .
2. الأمر If ……. Then
سيتم استخدامه في حاله ما إذا كان هناك بديل واحد ( أ) بمعنى انه عند قيمة معينة للشرط يتم تنفيذ البديل (أ) أما عند القيمة الأخرى فلا يتم عمل شئ .
(4)الشروط المركبة
تستخدم في حالة ما إذا كنا سنستخدم قرارا معينا بناءا على تحقق شرطين وليس شرط واحد
ويمكننا عمل الشرط لمركب بالربط بين أكثر من شرط بأحد المعاملات التي تسمى المعاملات المنطقية وهي
Or, And, Not
جدول or اذا كان احد الشرطين صحيح او احداهما صحيح يكون الشرط المركب صحيح
النتيجة A or B B A
True True True
True False True
True True False
False False False
جدول and اذا كان كلا من الشرطين صحيح يكون الشرط المركب صحيح
النتيجة A and B B A
True True True
False False True
False True False
False False False
جدول not اذا كان صحيح صحيح يكون الشرط المركب خطأ والعكس بالعكس
Not A A
False True
True False
مثال
تقوم احد الشركات بتحديد قيمة الاجر لكل ساعة عمل لوظيفة معينة طبقا لعدد سنوات الخبرة كما هو موضح بالجول
والمطلوب كتابة معالج حدث النقر Click Event Hander بحيث يتيح لمستخدم البرنامج ادخال عدد سنوات الخدمة وعدد ساعات العمل بحساب كل من الاجر للساعة ويقوم بتخزينه في متغير WageRate والراتب الكلي Salary ويقوم بعرضهما في مربع رسالةعلى ان تكون الواجهة كما بالشكل
الحل
‘Variables declaration
1 Dim YearsOfServiceShort As Short
2 Dim HoursWorkedDecimal As Decimal
3 Dim WageRateDecimal As Decimal
4 Dim SalaryDecimal As Decimal
5 Try
6 YearsOfServiceShort = Short.Parse(Me.txtYears.Text)
7 HoursWorkedDecimal = Decimal.Parse(Me.txtHoursWorked.Text)
8 If YearsOfServiceShort < 5 Then 'Years < 5
9 WageRateDecimal = 5
10 ElseIf YearsOfServiceShort < 10 Then ' 5<= Years <10
11 WageRateDecimal = 7
12 ElseIf YearsOfServiceShort < 15 Then ' 10<= Years <15
13 WageRateDecimal = 10
14 ElseIf YearsOfServiceShort < 20 Then ' 15<= Years <20
15 WageRateDecimal = 12
16 Else
17 WageRateDecimal = 15 ' Years >= 20
18 End If
19 SalaryDecimal = WageRateDecimal * HoursWorkedDecimal
20 MsgBox("Your Wage Rate = " & WageRateDecimal & vbCrLf & _
21 "Your salary = " & SalaryDecimal)
22 Catch
23 MsgBox("Check your inputs ")
24 End Try
VbCrLf تعني اذهب لسطر جديد اي ما قبلها يكتب في سطر وما بعدها في السطر التالي
ـــــ تعني ان السطر الثاني في الامر هو استكمال للسطر السابق
(5)مقارنة القيم والمتغيرات الحرفية( String )
**نستطيع ان نقارن المتغيرات الحرفية بمتغيرات او ثوابت او خصائص حرفية لمتعيرات اخرى
**تتم عملية المقارنة بمقارنة الرمز الموجود في اقصى اليسار لكلا المتغيرين ونتقدم رمزا رمزا حتى نجد رمزين مختلفين فتتوقف عملية المقارنة
**يتم مقارنة المتغيرات الحرفية عن طريق تحديد رتبة كل رمز طبقا لطريقة تخزين الرموز في ذاكرة الحاسب وهذه الطريقة تسمى
ANSI= American National Standards Institute
وهي تعطي كل حرف أو رقم أو رمز خاص رتبة معينة وهذه الرتبة هي رقم ثابت لا يتغير كما في الجدول
i True
ii False
iii True
iv False
(6)استخدام الامر IF مع الادوات Radio Button CheckBox GroupBox
• الاداة Radio Button
تتيح للمستخدم مجموعة من البدائل لاختيار واحدة منها فقط
تستخدم في عرض البدائل المتاحة في البرنامج على ان يقوم المستخدم باختيار بديل واحد فقط
• خصائص الاداة Radio Button
مثال علي أشكال Radio Button
Radio1.checked=True
Radio3.checked=True
• الاداة CheckBox
تتيح للمستخدم مجموعة من البدائل لاختيار أي عدد منها
• خصائص الاداة CheckBox
مثال
• الاداة GroupBox
- تستخدم لتنظيم الأدوات علي النموذج .
- تسمح للمبرمج أن يقسم عدد من الأداة Radio Button و Checked Box إلي مجموعات ويقوم لمستخدم باختيار واحدة فقط من كل مجموعة .
• خصائص الاداة GroupBox
مثال
Group1.Text="sex(الجنس )"
Group2.Text="Birth Place( محل الميلاد)"
مثال يريد مدير معمل تحاليل كتابة برنامج يستطيع من خلاله تحرير فواتير بحيث يسمح للمشغل ان يدخل اسم المريض وتحديد التحاليل ويجب عدم اصدار فاتورة الا بعد ادخال الاسم وفي حالة عدم ادخال اسم يظهر رسالة خطأ ويبين الجدول الخدمات المتاحة واسعارها والشهل 1 يبين واجهة المستخدم والشكل 2 في حالة عدم ادخال اسم والشكل 3 الشكل النهائيبعد ادخال جميع البيانات
الجدول (3)
(1) (2)
lblTotal.Text = ""
If txtName.Text = "" Then
MessageBox.Show("Please enter a name and check at least one item",
"Incomplete information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
Dim total As Decimal = 0.0
If chkCBC.Checked = True Then
total = total + 21.0
End If
If chkTIC.Checked = True Then
total = total + 7.5
End If
If chkRBC.Checked = True Then
total = total + 5.5
End If
If chkHB.Checked = True Then
total = total + 5.0
End If
lblTotal.Text = total
End If
الفصل الثالث
أوامر التكرار
- في هذا الفصل سيتم تقديم أوامر التكرار وهي أوامر تتحكم في إعادة تنفيذ عمل معين أو مجموعة من الأوامر حتى يتحقق شرط معين.
(1)الأمر Do While…………Loop
يتبع القاعدة التالية:
في كل مرة يصل البرنامج إلي Do While يقوم بتقييم الشرط.
أ- لو كان الشرط خاطئاً "False" فإن التنفيذ يبدأ عند أول أمر بعد كلمة Loop
ب-لو كان الشرط صحيحا "True" فإنه يقوم بتنفيذ الأوامر ابتداء من الأمر الذي يلي الشرط وحتى أخر أمر قبل كلمة Loop وعندما يصل البرنامج إلي كلمة Loop فإنه يعود مرة أخري إلي Do while حيث يتم تقييم الشرط مرة أخري وطبقا لقيمة الشرط فإما أن تكون True فيستمر التكرار أو تكون False فينتهي التكرار كما في الشكل.
مثال: مطلوب أن تقوم بجمع الأعداد الفردية من (1) إلي (Limit) حيث Limit هو رقم صحيح موجود في الأداة Text Box المسمى TXTLimit
الحل:
Dim x, total, limit As Integer
limit = Integer.Parse(txtLimit.Text)
x = 1
Do While x <= limit
total = total + x
x = x + 2
Loop
Me.Label2.Text = Format(total, "##")
ملحوظة
في السطر الثامن استخدمنا الدالة Format والتي يمكن استخدامها لتحديد شكل المخرجات
Result for x = 3.456 Result for x = 3.4 Format function
Format(x)
(Format(x, “00.0
Format(x, “##.##”)
Format(x, “##.00” )
Format(x, “00.##” )
(2)الامر For ………. Next
على خلاف أوامر التكرار السابقة والتي لا نعرف فيها عدد مرات التكرار فان الأمر For ………. Next يستعمل في حالة معرفة عدد مرات التكرار مسبقاً .
الأمثلة:
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 5 الى 50 بزيادة 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 1 الى 100 بزيادة 1
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next من 100 الى 2 بنقص 2
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (11 , 13 ,15 ,17 ,19)
قم بتغيير قيم العداد(Counter ) باستعمال For ………. Next بالترتيب (49 , 42 ,35 ,28 ,21)
• الاداة ListBox
- هي واحدة من الأدوات التي ترتبط غالباً بالتكرار .
- وتتيح لك هذه الأداة أن تنشئ أو تعرض قائمة من العناصر وان تختار منها . وفي حالة ما اذا كان عدد الصفوف اكبر من يعرض داخل المستطيل يقوم v.b. تلقائيا باضافة شريط منزلقScroll Bar الى يمين الاداة Listbox
لاحظ ان index يأخذ الارقام من الصفر الي count-1 اي العنصر الاول صفر والذي يليه 1 وهكذا
مثال 1:
اكتب الاكواد اللازمة لمايأتي
1- عند الضغط على يتم ادخال ايام الاسبوع في الاداة ListBox المسماه lstDayays
2- عند الضغط على btnCopy يتم ادخال العنصر الذي تم اختياره الي الاداة ListBox المسماه lstChosen
3- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstDayays
4- عند الضغط على btnClearDays يتم ازالة كل العناصر المجودة في lstChosen
الحل
1- نضغط مرتتين على btnAddDays ونكتب الاكواد
1 Me.lstDays.Items.Add("Saturday")
2 Me.lstDays.Items.Add("Sunday")
3 Me.lstDays.Items.Add("Monday")
4 Me.lstDays.Items.Add("Tuesday")
5 Me.lstDays.Items.Add("Wednesday")
6 Me.lstDays.Items.Add("Thursday")
7 Me.lstDays.Items.Add("Friday")
2- نضغط مرتتين على btnCopy ونكتب الاكواد
8 Me.lstChosen.Items.Add(Me.lstDays.SelectedItem)
3- - نضغط مرتتين على btnClearDays ونكتب الاكواد
9 Me.lstDays.Items.Clear()
4-- نضغط مرتتين على btnClearDays ونكتب الاكواد
10 Me.lstChosen.Items.Clear()
مثال 2 :
Amount = principal ( 1 + rate/100 )n
حيث ان القيمة المستحقة =amount و قيمة رأس المال =principal ومعدل الفائدة =rate وعدد السنوات =n
الكود الخاص ب Button1
'declare variables to store user inputs
1 Dim principal, interest, years, amount As Decimal
2 Dim year As Integer
3 Dim output As String
'convert text to decimal
4 principal = Val(Me.txtPrinc.Text)
5 interest = Val(Me.txtInterest.Text)
6 years = Val(Me.txtYears.Text)
'write heading in the list box
7 output = "Amount" & ControlChars.Tab & ControlChars.Tab & "Years"
8 Me.lstAmount.Items.Add(output)
'Calculate the amount from 1 year to the value of years variable
9 For year = 1 To years
10 amount = principal * ((1 + interest / 100) ^ year)
11 output = Format(amount, "###.00") & ControlChars.Tab &
12 ControlChars.Tab & year
13 Me.lstAmount.Items.Add(output)
14 Next
15 Me.txtPrinc.Focus() 'focus on txtPrinc text box
الكود الخاص ب Button2
16 Me.txtPrinc.Text = "" 'clear the Principal
17 Me.txtInterest.Text = "" 'clear the interest
18 Me.txtYears.Text = "" 'clear the number of years
19 Me.lstAmount.Items.Clear() 'clear the list box
20 Me.txtPrinc.Focus()
لاحظ:
Val دالة تستخدم لتحويل المتغيرات الحرفية إلي رقمية ولكن تتجاهل إدخال المستخدم لرمز مثل$ ولا تظهر رسالة خطأ
Focus ( ) تستخدم لنقل الانتباه إلي Text Box .
Controlchar.tab يستخدم لعمل tab 5مسافات بين الكلام في ال MsgBox .
الفصل الرابع
الميقاتي Timer
• مقدمة
عزيزي الطالب تقع الأحداث (Events) عندما يقوم مستعمل البرنامج بعمل ما ، مثل الضغط علي زر أو زر راديو . ولكن في بعض الأحيان تكون في احتياج لان تجعل بعض الأحداث تقع بعد فترة زمنية معينة وبدون تدخل مستعمل البرنامج ، وهذا تستطيع عمله باستعمال الكائن Timer والحدث Tick .
في حقيقة الأمر الكائن Timer هو ساعة توقيت غير مرئية تتيح لك التعامل مع ساعة النظام (System Clock) من داخل البرنامج التي تقوم بتنفيذها .
(1)استعمال الكائن timer
عندما يكون لديك timer على النموذج فانه ينشط علي فترات زمنية متساوية . وهذه الفترات تسمى (Intervals) وكنتيجة لهذا النشاط يقع الحدث Tick ويمكنك تنفيذ مجموعة من الأوامر .
ونستنتج من ذلك الأتي :
الكائن Timer
الحدث Tick ( يقع بعد فترة زمنية معينة بدون تدخل المستخدم )
الخاصية 1. Interval لتحديد الفترة الزمنية بالمللي ثانية
2. Enabled (التمكين) (تستخدم لكي ينشط الــ Timer بعد كل فترة زمنية ) ولابد أن تكون قيمتها True ولإيقاف الــ Timer عن العمل نجعلها False .
(2)التكوين Date Time
عند الإعلان عن متغير من النوع Date يكون لدينا تكوين يسمى Date Time هذا التكوين له خصائص ووسائل نذكرها في الجدولين الآتيين :
مثلا: Dim X as Date
لا يمكن تغيير الوقت والتاريخ لكائن Date بعملية جمع وطرح عادية
مثال
تصميم ساعة رقمية تعلن عن التاريخ والوقت الحالي كما بالشكل
كود ال timer
Me.lblCurrentTime.Text = Date.Now
كود button1
Close()
مثال
تصميم ساعة توقيت ذات فترة زمنية متغيرة باستخدام الكائن Timer
كود Timer1
Me.lblCurrentTime.Text = Date.Now
كود Button1
Close()
كود btnStart
Me.Timer2.Interval = Integer.Parse(Me.txtInterval.Text)
Me.Timer2.Enabled = True
كود btnStop
Me.Timer2.Enabled = False
Me.btnStart.Text = "Continue"
كود Timer2
Static x As Integer = 0
x = x + 1
Me.lblCount.Text = Format(x)
كود btnReset
Me.Timer2.Enabled = False
Me.lblCount.Text = "0"
Me.btnStart.Text = "Start"
تم استخدام Static بدلا من Dim حتى يتم الاحتفاظ بقيمتها طوال البرنامج اما Dim يتم اعطاءها قيمة ابتدائية عند كل استدعاء للبرنامج الفرعي
الأربعاء يوليو 27, 2011 7:02 pm من طرف عمرو الامامى
» إصابة 10 أشخاص فى مشاجرة بسبب الخلاف على "حد" أرض زراعية بقنا
الخميس أكتوبر 21, 2010 4:41 pm من طرف مدير المنتدي
» مصرع طفل صعقاً بالكهرباء فى قنا
السبت أكتوبر 02, 2010 10:38 am من طرف مدير المنتدي
» اسماء المدرسون والعاملين بالمدرسه
السبت أغسطس 28, 2010 7:31 am من طرف I,m alone in my live
» إسبانيا بطلا لكأس العالم لأول مرة ..
الثلاثاء يوليو 13, 2010 3:25 pm من طرف ايهاب الشعار
» حزب التجمع يعلن أسماء مرشحيه في قنا و الأقصر
الثلاثاء يوليو 13, 2010 3:15 pm من طرف ايهاب الشعار
» حواااااااااار ساخن لدرجة التجمد !!!!
الخميس مايو 06, 2010 8:11 pm من طرف مدير المنتدي
» تصرفات الام بعد 3 اطفااااااااااااااااااال
الخميس مايو 06, 2010 7:48 pm من طرف مدير المنتدي
» تأجيل محاكمة المتهم باغتصاب طفلة فرشوط إلى 19 أبريل
السبت أبريل 17, 2010 4:02 pm من طرف مدير المنتدي