End Sub - WordPress.com

Download Report

Transcript End Sub - WordPress.com

‫المحاضرة الثانية – االسبوع الثالث‬
‫الفصل الثاني‬
‫اجراء عرض لسماء الطالبات‬
‫مناداة ‪Calling‬‬
‫البرنامج االساسي‬
‫‪Main Program‬‬
‫االجراءات و الدوال‬
‫• مجموعة من التعليمات التي يتم تنفيذها عند نداء هذا‬
‫االجراء ثم يعود البرنامج الى تنفيذه العادي‬
‫فوائد استخدام الدوال واالجراءات‬
‫• سهولة اختبار االجراء او الدالة على حده للتأكد من انه يعمل‬
‫بصورة صحيحة‬
‫• تجنب تكرار الكود بال داع باستدعاء االجراء عندما نحتاج اليه‬
‫بدالً من اعادة كتابه كل محتوياته‬
‫• صيانة البرامج تصبح اسهل وذلك من خالل التعديل في مكان‬
‫واحد ( االجراء ) بدال من التعديل على االماكن التي تنادي عليه‬
‫• انشاء مكتبه من االجراءات الخاصة التي يمكن استخدامها في‬
‫برامج مختلفة‬
Procedures ‫االجراءات‬
‫أنواع االجراءات‬
‫االجراءات الحدثية‬
‫هي التي يستدعيها البرنامج‬
‫عند وقوع حدث معين‬
‫مثل تحميل نموذج ‪ ،‬النقر‬
‫على زر أمر ‪Button‬‬
‫االجراءات الفرعيه‬
‫هي التي يكتبها المستخدم‬
‫بحسب احتياجاته‬
‫مثال على اجراء حدثي‬
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num1, num2, num3 As Integer
num3 = num2 + num1
MessageBox.Show(num3)
End Sub
‫مكان كتابه االجراء الفرعي‬
‫قبل كل االجراءات‬
‫بين االجراءات‬
‫بعد كل االجراءات‬
)‫إ نشاء اجراء فرعي جديد ( الصيغة العامة‬
Sub procname ([arguments])
Statements
End sub
Calling ‫صيغ المناداة‬
Call ‫ باستخدام‬.1
Call Procname ([arguments])
‫ بذكر اسم االجراء مباشره‬.2
Procname ([arguments])
‫مثال ‪1‬‬
SayHello ‫كتبه االجراء‬
Sub SayHello()
MessageBox.Show("Hello world")
End Sub
‫ كتابه برنامج االساسي ومناداة االجراء‬.2
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Call SayHello()
End Sub
‫مثال ‪2‬‬
Sum ‫ كتابه اجراء فرعي باسم‬.1
Sub sum(ByVal num1 As Integer, ByVal num2 As
Integer)
MessageBox.Show(num1 + num2)
End Sub
‫ كتابه برنامج االساسي ومناداة االجراء‬.2
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim num1, num2 As Integer
num1 = TextBox1.Text
num2 = TextBox2.Text
Call sum(num1, num2)
End Sub
‫مثال ‪3‬‬
ShowStudent ‫ كتابه اجراء فرعي باسم‬.1
Sub showStudent(ByVal students () As string)
For i = 0 To 4
TextBox1.Text = TextBox1.Text & student(i) & vbCrLf
Next
End Sub
‫ كتابه برنامج االساسي ومناداة االجراء‬.2
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim students(4) As String
students(0) = " Nora Abdullah"
students(1) = "sara salem"
students(2) = "Amerah Mohd"
students(3) = " Rana Saud"
students(4) = " Arwa Hamad"
Call showstudent(students)
End Sub
‫‪ByVal and ByRef‬‬
‫‪ByVal(Passing by‬‬
‫)‪Value‬‬
‫يتم عمل نسخة من متغير في‬
‫مكان اخر من الذاكرة‬
‫ليستخدمها االجراء‬
‫‪ByRef(Passing by‬‬
‫)‪Reference‬‬
‫البرنامح يمرر عنوان‬
‫المتغير في الذاكرة الى‬
‫االجراء‬
ByVal ‫مثال‬
‫البرنامج االساسي‬
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
MyBase.Load
Dim num1 As Integer
num1 = 5
Label4.Text = num1
call addone(num1)
Label6.Text = num1
End Sub
AddOne ‫كتابة االجراء‬
Sub Addone(ByVal num1 As Integer)
num1 = num1 + 1
Label5.Text = num1
End Sub
ByRef ‫مثال‬
‫البرنامج االساسي‬
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
MyBase.Load
Dim num1 As Integer
num1 = 5
Label4.Text = num1
call addone(num1)
Label6.Text = num1
End Sub
AddOne ‫كتابة االجراء‬
Sub Addone(ByRef num1 As Integer)
num1 = num1 + 1
Label5.Text = num1
End Sub
‫الخروج من االجراء‬
‫• لسبب او الخر تحتاج احيانا للخروج او مغادرة‬
‫االجراء دون تكميل تنفيذه‬
‫• يتم ذلك باستخدام جملة ‪Exit Sub‬‬
‫مثال‬
‫البرنامج االساسي‬
Private Sub Button1_Click (ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles
MyBase.Load
Dim num1, num2 As Integer
num1 = TextBox1.Text
num2 = TextBox2.Text
Call DivNum(num1, num2(
End Sub
DivNum ‫كتابة االجراء‬
Sub DivNum (ByVal num1 As Integer, ByVal
num2 As Integer)
If num2 = 0 Then Exit Sub
MessageBox.Show(num1 / num2)
End Sub
Function ‫الدوال‬
‫الدوال ‪Functions‬‬
‫• تشبة الدوال االجراءات تماما ً‬
‫• الفرق الوحيد بينهما ان الدالة ‪ Function‬ترجع قيمة عند‬
‫استدعائها حيث يمكن تخزين هذه القيمة مباشره او‬
‫استخدامها في تعبير مباشرة في البرنامج االساسي‪.‬‬
‫داله حساب مجموع‬
‫مناداة ‪Calling‬‬
‫مجموع‬
‫(يمكن استخدامه في البرنامج‬
‫االساسي)‬
‫البرنامج االساسي‬
‫‪Main Program‬‬
‫حساب مجموع الدرجات‬
‫حساب مجموع الدرجات‬
‫ثم حساب المتوسط‬
‫حساب مجموع الدرجات‬
‫ثم اختبار قيمة المجموع‬
‫لتحديد التقدير‬
‫مجموع الدرجات ‪Sum mark‬‬
‫اختبار قيمة المجموع‬
‫لتحديد تقدير الطالب‬
‫حساب المتوسط عن‬
‫طريق قسمة مجموع‬
‫الدرجات على ‪2‬‬
‫عرض نتيجة في‬
‫‪MessageBox‬‬
)‫إ نشاء دالة جديده ( الصيغة العامة‬
Function Funcname ([arguments]) As dataType
Statements
End Function
‫خطوات مناداة الدالة ‪Function‬‬
‫‪ .1‬تعريف متغير لتخزين القيمة المرجعة من الداله‬
‫ويكون من نفس نوع البيانات‬
‫‪Dim x as datatype‬‬
‫‪ .2‬مناداة الدالة ‪Function‬‬
‫)]‪X=funcname([arguments‬‬
‫مثال ‪1‬‬
summarks ‫كتابة الدالة‬
Function summarks(ByVal mark1 As Integer,
ByVal mark2 As Integer) As Integer
summarks = 0
mark1 = TextBox1.Text
mark2 = TextBox3.Text
summarks = mark1 + mark2
End Function
General ‫في منطقة‬
Dim mark1, mark2 As Integer
Dim sum as integer
»‫داخل زر أمر «عرض مجموع الدرجات‬
sum = summarks(mark1, mark2)
MessageBox.Show(sum)
»‫داخل زر أمر «عرض متوسط الدرجات‬
Dim avg as integer
sum = summarks(mark1, mark2)
avg = sum / 2
MessageBox.Show(avg)
»‫داخل زر أمر «عرض تقدير الطالب‬
sum = summarks(mark1, mark2)
If sum >= 90 Then
MessageBox.Show )“‫)”ممتاز‬
ElseIf sum >= 80 Then
MessageBox.Show)"‫)“ جيد جدا‬
ElseIf sum >= 70 Then
MessageBox.Show)"‫)“ جيد‬
ElseIf sum >= 60 Then
MessageBox.Show("‫)“ مقبول‬
Else
MessageBox.Show)"‫)“ ضعيف‬
End If
‫أنواع الدوال ‪Function‬‬
‫الدوال المبنية داخل اللغة‬
‫هي الدوال التي يمكن‬
‫استخدامها مياشرة دون‬
‫تعريف مثل الدوال الحسابية‬
‫‪sqrt , Sin‬‬
‫والدوال الحرفية مثل ‪Len‬‬
‫الدوال المعرفة من قبل‬
‫المستخدم‬
‫هي التي يكتبها المستخدم‬
‫بحسب احتياجاته‬
‫الدوال المبنية داخل اللغة (مثال ‪)1‬‬
»‫داخل زر االمر «احسب عدد احرف النص‬
Dim charcount As integer
charcount = Len(TextBox1.Text)
MessageBox.Show(charcount)
Static ‫المتغيرات الساكنه في الذاكره‬
Static
[Static ] Sub procname ([arguments])
Statements
End sub
‫التعامل مع اكثر من نموذج ‪ Form‬في‬
‫البرنامج‬
‫اضافة نموذج ‪Form‬‬
‫اضافة نموذج ‪Form‬‬
‫‪Module‬‬
‫• المديول مفيدة جدا في صناعة البرامج فهي تنظم لك‬
‫مشروعك بحيث يسهل عليك تعديله في أي وقت‬