الفصل الأول
تمثيل البيانات
(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- حروف *حرف Char يحتاج 2خلية حرف واحد
*سلسلة حرفية String اي عدد من الحروف = عدد الخلايا
4- اعداد 1-صحيحة
Byte يحتاج خلية واحدة بين 0 و 255 الدقة خانة واحدة
Short يحتاج 2 خلية بين – 32768 و+ 32767 الدقة 5 خانات
Integer يحتاج 4 خلية بين + 2147483647 و – 2147483648 الدقة 10خانات
Long يحتاج 8 خلية بين ± 9223372036854775808 الدقة 19 خانة
2عشرية
Single تحتاج 4 خلية بدقة 7 خانات Double تحتاج 8 خانات بدقة 15 خانة
Decimal تحتاج 16 خلية بدقة 29 خانة
(5)اختيار النوع المناسب لكل متغير
حسب : نوع البيانات التي يمكن تخزينها فيه - العمليات التي يمكن اجراؤها عليه - حجم الذاكرة
طبيعة البيانات المخزنة النوع المناسب السبب
True / False Boolean احسن استغلال للذاكرة
ارقام السيارات التليفونات الرقم القومي String اختيار وحيد
مبلغ من المال Decimal يخزن ارقام عشرية وبدقة وبدون اخطاء وسريع في العمليات
عدد صحيح بين ± 32768 Short استهلاك قليل للذاكرة واسرع في العمليات الحسابية
عدد صحيح بين ± 2147483647 Integer اقل في الذاكرة واسرع في الحساب من Long
عدد صحيح اكبر من ±2147483647 Long اختيار وحيد
كسر عشري سبع خانات دقة Single اسرع من Double
كسر عشري اكبر من 7 خانات دقة Double
مثال اذا اردنا ان نخزن القيمة 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 – Double Dim-Print-Data
ثانيا : قواعد يستحسن الالتزم بها :-
1. اختر اسماء ذات معنى مناسب
2. فى الكلمات التى تتكون من مقطعين يمكن ان يبدأ كل مقطع بحرف Capital
3. يفضل ان يبدأ الاسم بـ 3 احرف تعطى انطباع عن نوع المتغير
FirstName Ahmed2000 PopulationOfEgypt Spent_mony امثلة لأسماء صحيحة
2ndWorldWar Spen.Mon Birth Day Double امثلة لأسماء غير صحيحة
في حالة استخدام اسم خطأ يعطي synatax error
(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 حيث يتم تخزين قيمة 5 في المتغير X
متغير اخر X=Y حيث يتم تخزين قيمة Y في المتغير X
عملية حسابية X=2Y+Z حيث يتم حساب القيمة 2Y+Z ثم تخزن في X
1- المتغيرات التي على يمين = لا يحدث بها اي تغيير
2- مفهوم العلامة = في امر التخصيص يختلف نهائيا عن مفهومها في المعادلة الرياضية
حيث الصيغة X+3=10 صحيحة كمعادلة رياضية وليست صحيحة كامر تخصيص لوجود عملية حسابية شمال =والصيغة X=X+1 غير صحيحة كمعادلة رياضية وصحيحة كامر تخصيص
(9)استعمال امر التخصيص مع المتغيرات الحرفية String
من العمليلت التي نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفي ببعضها لتكوين متغير حرفي واحد هذا الربط يتم باستعمال & الذي يسمى معامل الربط
FirstName ="Hany"
SecondName = "Ahmed"
Fullname = "Welcome"&FirstName&" "&SecondName
تكون النتيجة Welcome Hany Ahmed
- " " تعنى انه سيترك مسافة فارغة مقدارها مسافة واحدة او عدة مسافات و" " تعنى قيمة حرفية فارغة مثال اكمل الجدول التالي
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
UnitPrice = 6.2
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
مثال قم بتتبع مجموعة الاوامر التالية :
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
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.
مثال تتبع مجموعة الاوامر الاتية :
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
(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)
الحل
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
TotalPrice = BooksQuantitly * UnitPric
لاحظ ان :-
داخل الاكواد يمكن كتابة بعض الاسطر التى تساعد المبرمج و لكن المترجم او المفسر يهملها ولا يلتفت اليها وتسمى تعليقات وهذه الاسطر تكتب امامها ( ' ) مثل ' calculate the total price
ثانيا تحويل البيانات العددية الي بيانات حرفية
لاظهار النتائج يتم اظهارها في الاداة Label او TextBox وعليه لابد ان تكون حرفية اي تتحول من عددي الى حرفي باستعمال ToString ( )وما بين القوسين يسمي معامل الدالة 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 )
TotalPrice = BooksQuantitly * UnitPric
txtResult.Text = TotalPrice.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
مثال :
اكتب اوامر تخزين المتغيرات n1,n2,n3 من النوع single , Double ,Decimal على الترتيب في المتغيرات v1 ,v2, v3 من النوع Decimal , Integer ,Single على الترتيب
الحل
V1 = convert.ToDecimal (n1 )
V2= convert.ToDecimal (n2 )
V3= convert.ToDecimal (n3 )
(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 ) B)1- نستبدل كل متغير بقيمته 3^ 2 * 2 + 4 * 3
2-حساب ما بداخل الاقواس اولا 2 * ( 4 ) 2- يتم حساب الاس اولا 9 * 2 + 4 * 3
3- تنفيذ عملية الضرب فيكون الناتج ( 8 ) 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
• اداة Button تحتوى على اوامر تنفيذ العمليات
الحل
1-تخطيط المشروع
رسم واجهة المستخدم ( الشكل المقابل )
2-كتابة المشروع
أ – من الصفحة الرئيسية اختر قائمة File اختار New Project
او من Star Page اختار Creat Project فى مربع RecentProject
ب – يظهر مربع New Project
من Project typ اختار Windows
من Templaes اختار Windowes Application
القيمة الخاصية الاسم
نجعلها فارغة
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
جـ – ادخل الاسم الذى اخترته للمشروع فى خانة Name و ليكن Math
د – اضغط Ok
3--تهيئة النموذج
- تغيير ابعاده لتحصل على المساحة المناسبة
- تغير خاصية Text وجعلها Math
1-وضع الادوات على النموذج
تتغير خصائص الادوات طبقا للجدول
5. ضبط موقع الادوات على ال Form
اما يدوي بالماوس او من قائمة Format _______> Align
6. اكتب الاكواد للزر Buton
انقر مرتين على الزر مما سيؤدى الى فتح Cod Window مكتوبا بها الاوامر الاولى و الاخيرة و ما عليك إلاكتابة الاتى :
‘Declare the local variables
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘Convert the text strings to decimal
4 First = Decimal.Parse(Me.txtFirst.Text)
5 Second = Decimal.Parse(Me.txtSecond.Text)
'Caculate the values of local variables
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 ليعرض الرسالة الموجودة بها و لا يتابع تنفيذ الاوامر بعد ذلك تصحيح الخطأ
مثال:- نفس السابق ويزيد
• في حالة ادخال المستخدم بيانات غير الارقام تظهر رسالة One of the filds is not numeric , Pleace enter only numeric values "
• في حالة ادخال المستخدم صفرا في الخانة الثانية تظهر رسالة" Second value must not be zero "
الحل تكون الاكواد كلتالي :-
‘Declare the local variables
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘Convert the text strings to 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
'Caculate the values of local variables
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)
(2) (1)
الحل
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- حروف *حرف Char يحتاج 2خلية حرف واحد
*سلسلة حرفية String اي عدد من الحروف = عدد الخلايا
4- اعداد 1-صحيحة
Byte يحتاج خلية واحدة بين 0 و 255 الدقة خانة واحدة
Short يحتاج 2 خلية بين – 32768 و+ 32767 الدقة 5 خانات
Integer يحتاج 4 خلية بين + 2147483647 و – 2147483648 الدقة 10خانات
Long يحتاج 8 خلية بين ± 9223372036854775808 الدقة 19 خانة
2عشرية
Single تحتاج 4 خلية بدقة 7 خانات Double تحتاج 8 خانات بدقة 15 خانة
Decimal تحتاج 16 خلية بدقة 29 خانة
(5)اختيار النوع المناسب لكل متغير
حسب : نوع البيانات التي يمكن تخزينها فيه - العمليات التي يمكن اجراؤها عليه - حجم الذاكرة
طبيعة البيانات المخزنة النوع المناسب السبب
True / False Boolean احسن استغلال للذاكرة
ارقام السيارات التليفونات الرقم القومي String اختيار وحيد
مبلغ من المال Decimal يخزن ارقام عشرية وبدقة وبدون اخطاء وسريع في العمليات
عدد صحيح بين ± 32768 Short استهلاك قليل للذاكرة واسرع في العمليات الحسابية
عدد صحيح بين ± 2147483647 Integer اقل في الذاكرة واسرع في الحساب من Long
عدد صحيح اكبر من ±2147483647 Long اختيار وحيد
كسر عشري سبع خانات دقة Single اسرع من Double
كسر عشري اكبر من 7 خانات دقة Double
مثال اذا اردنا ان نخزن القيمة 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 – Double Dim-Print-Data
ثانيا : قواعد يستحسن الالتزم بها :-
1. اختر اسماء ذات معنى مناسب
2. فى الكلمات التى تتكون من مقطعين يمكن ان يبدأ كل مقطع بحرف Capital
3. يفضل ان يبدأ الاسم بـ 3 احرف تعطى انطباع عن نوع المتغير
FirstName Ahmed2000 PopulationOfEgypt Spent_mony امثلة لأسماء صحيحة
2ndWorldWar Spen.Mon Birth Day Double امثلة لأسماء غير صحيحة
في حالة استخدام اسم خطأ يعطي synatax error
(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 حيث يتم تخزين قيمة 5 في المتغير X
متغير اخر X=Y حيث يتم تخزين قيمة Y في المتغير X
عملية حسابية X=2Y+Z حيث يتم حساب القيمة 2Y+Z ثم تخزن في X
1- المتغيرات التي على يمين = لا يحدث بها اي تغيير
2- مفهوم العلامة = في امر التخصيص يختلف نهائيا عن مفهومها في المعادلة الرياضية
حيث الصيغة X+3=10 صحيحة كمعادلة رياضية وليست صحيحة كامر تخصيص لوجود عملية حسابية شمال =والصيغة X=X+1 غير صحيحة كمعادلة رياضية وصحيحة كامر تخصيص
(9)استعمال امر التخصيص مع المتغيرات الحرفية String
من العمليلت التي نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفي ببعضها لتكوين متغير حرفي واحد هذا الربط يتم باستعمال & الذي يسمى معامل الربط
FirstName ="Hany"
SecondName = "Ahmed"
Fullname = "Welcome"&FirstName&" "&SecondName
تكون النتيجة Welcome Hany Ahmed
- " " تعنى انه سيترك مسافة فارغة مقدارها مسافة واحدة او عدة مسافات و" " تعنى قيمة حرفية فارغة مثال اكمل الجدول التالي
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
UnitPrice = 6.2
Price = Quantity * UnitPrice
Price = Price – Price * TaxRate
مثال قم بتتبع مجموعة الاوامر التالية :
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
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.
مثال تتبع مجموعة الاوامر الاتية :
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
(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)
الحل
Dim BooksQuantitly as Integer
Dim UnitPric as Decimal
Dim TotalPrice as Decimal
BooksQuantitly = Integer. Parse (me . txtBooksQuantitly. Text )
UnitPric = Decimal. Parse (me . txtUnitPric. Text )
TotalPrice = BooksQuantitly * UnitPric
لاحظ ان :-
داخل الاكواد يمكن كتابة بعض الاسطر التى تساعد المبرمج و لكن المترجم او المفسر يهملها ولا يلتفت اليها وتسمى تعليقات وهذه الاسطر تكتب امامها ( ' ) مثل ' calculate the total price
ثانيا تحويل البيانات العددية الي بيانات حرفية
لاظهار النتائج يتم اظهارها في الاداة Label او TextBox وعليه لابد ان تكون حرفية اي تتحول من عددي الى حرفي باستعمال ToString ( )وما بين القوسين يسمي معامل الدالة 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 )
TotalPrice = BooksQuantitly * UnitPric
txtResult.Text = TotalPrice.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
مثال :
اكتب اوامر تخزين المتغيرات n1,n2,n3 من النوع single , Double ,Decimal على الترتيب في المتغيرات v1 ,v2, v3 من النوع Decimal , Integer ,Single على الترتيب
الحل
V1 = convert.ToDecimal (n1 )
V2= convert.ToDecimal (n2 )
V3= convert.ToDecimal (n3 )
(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 ) B)1- نستبدل كل متغير بقيمته 3^ 2 * 2 + 4 * 3
2-حساب ما بداخل الاقواس اولا 2 * ( 4 ) 2- يتم حساب الاس اولا 9 * 2 + 4 * 3
3- تنفيذ عملية الضرب فيكون الناتج ( 8 ) 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
• اداة Button تحتوى على اوامر تنفيذ العمليات
الحل
1-تخطيط المشروع
رسم واجهة المستخدم ( الشكل المقابل )
2-كتابة المشروع
أ – من الصفحة الرئيسية اختر قائمة File اختار New Project
او من Star Page اختار Creat Project فى مربع RecentProject
ب – يظهر مربع New Project
من Project typ اختار Windows
من Templaes اختار Windowes Application
القيمة الخاصية الاسم
نجعلها فارغة
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
جـ – ادخل الاسم الذى اخترته للمشروع فى خانة Name و ليكن Math
د – اضغط Ok
3--تهيئة النموذج
- تغيير ابعاده لتحصل على المساحة المناسبة
- تغير خاصية Text وجعلها Math
1-وضع الادوات على النموذج
تتغير خصائص الادوات طبقا للجدول
5. ضبط موقع الادوات على ال Form
اما يدوي بالماوس او من قائمة Format _______> Align
6. اكتب الاكواد للزر Buton
انقر مرتين على الزر مما سيؤدى الى فتح Cod Window مكتوبا بها الاوامر الاولى و الاخيرة و ما عليك إلاكتابة الاتى :
‘Declare the local variables
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘Convert the text strings to decimal
4 First = Decimal.Parse(Me.txtFirst.Text)
5 Second = Decimal.Parse(Me.txtSecond.Text)
'Caculate the values of local variables
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 ليعرض الرسالة الموجودة بها و لا يتابع تنفيذ الاوامر بعد ذلك تصحيح الخطأ
مثال:- نفس السابق ويزيد
• في حالة ادخال المستخدم بيانات غير الارقام تظهر رسالة One of the filds is not numeric , Pleace enter only numeric values "
• في حالة ادخال المستخدم صفرا في الخانة الثانية تظهر رسالة" Second value must not be zero "
الحل تكون الاكواد كلتالي :-
‘Declare the local variables
1 Dim First, Second, ad, subtract, Mul, Div, Div2 As Decimal
2 Dim Modulus As Integer
3 Dim Expon As Double
‘Convert the text strings to 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
'Caculate the values of local variables
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)
(2) (1)
الحل
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 يتم اعطاءها قيمة ابتدائية عند كل استدعاء للبرنامج الفرعي
الشهادة الاعدادية
سبحانك اللهم وبحمدك أشهد أن لا إله إلا أنت أستغفرك وأتوب إليك
» invention forever
» سلسلة قطرات الندا في الدراسات الأجتماعية الصف السادس الأبتدائي الترم الأول
» مذكرة دراسات أجتماعية الصف السادس الأبتدائي الترم الثاني
» مناظرة الحياة والموت
» اختبار تجريبى للصف الرابع الابتدائى
» أختبار تجريبى للصف الرابع الابتدائى
» أختبار تجريبى للصف الخامس
» موقع ثانوية أون لاين