الفائدة من احملاضرة التاسعة اإلجراءات و الدوال Procedures and Functions.1.2.3.4 استخدام اإلجراءات والدوال ميكن تلخيصها يف اآليت :- تقليل حجم الربانمج. سهولة تطوير الربانمج يف املستقبل. سهولة اكتشاف اخطاء الربانمج. سهولة فهم الربانمج. أوال: اإلجراءات Procedures تعريف اإلجراء ىميستدل خصاتص ال اتنا. هوو انورانمج يتون يت ووع مو لتولوة مو التمليتوا سم اعمامورى ملووش اسوم ممو يرالو فيوش ورم املت ور مهوو ال ير و قيتووة ل طريق امسش م مرالاة نوع ملدد الوسواتط الو يسوتقبلها ميسوت دت لتلقون لدخوا سم مماجلوة سم لمورإ لخوراو سم ل وبط طريقة إدراج اإلجراء o خنتار م القاتتة Project اعمر. Add Module مث م انفذة o الصيغة العامة لتعريف اإلجراء:. Module Sub procedure(arg1,arg2,.) Add New Item خنتار اإليقونة اال راء تمليتا Procedure Statements procedure Arg1,arg2,. الصيغة العامة الستدعاء اإلجراء: هو اسم اإل راء قاتتة مساتط اإل راء Call procedure(arg1value,arg2value,.) call كلتة مفتاحيش تست دت الستدلاء اإل راء Arg1Value,arg2Value,. قيم مساتط اإل راء 1
مثال 1 :- اكتب انرانمج يقوت إبدخا لددي م خال سدايت النصوو احلساانية )اجلت مالطرح مال رب مالقستة(. م Box2 Box1 مرحلة التصميم خنتار اعدما الالزمة هلذا الربانمج مهن: مث حندد خصاتص هذه اعدما كتا يف اجلدم التايل: مث مضو ل وراء يقووت ملمتليوا Box1, Box2,Label1,Label2, Button1 Object name Property Form1 Righttoleft New value Form1 اإل راءا Box1 Box2 yes Box1 Box2 ادخل المدد اعم Label1 نفذ المتليا ادخل المدد الثاين Label1 Button1 Button1 احلساانية فنحصل لل النافذة التالية يف مرحلة التصتيم: 2
مرحلة الربلة : كود اإل راء Sub Arithmetic_operators(ByVal a As Single, ByVal b As Single, ByVal op As Char) Dim c As Single If op = "+" Then c = a + b ElseIf op = "-" Then c = a - b ElseIf op = "*" Then c = a * b ElseIf op = "/" Then c = a / b End If MsgBox(c) 2. كود زر اعمر Dim x, y As Single Dim x, y As Single Dim z As Char x = Integer.Parse(Box1.) y = Integer.Parse(Box2.) z = InputBox("Enter Operator(+,-,*,/") Call Arithmetic_operators(x, y, z).1 مثال 2 :- اكتب انرانمج يقوت إبدخا ل راء. مرحلة التصتيم : سضف ال اتنا التالية لناصر مصفوفة سحادية مث فرزها تصالداي متنازليا للتا مع لتلية لدخا المناصر توتم مو خوال ListBox1, ListBox2, ListBox3,Label1, Label2, Label3,Button1 3
Sub input_elements(byval a() As Integer) Dim i As Integer For i = 0 To 9 a(i) = InputBox("Enter Element[" & i + 1 & "]=") مرحلة الربلة : Dim b(9), j As Integer input_elements(b) For j = 0 To 9 ListBox1.Items.Add(b(j)) Array.Sort(b) For j = 0 To 9 ListBox2.Items.Add(b(j)) Array.Reverse(b) For j = 0 To 9 ListBox3.Items.Add(b(j)) اثنيا: الدوال Functions تعريف الدالة هن سي ا انرانمج يتن يت وع م لتولة مو التمليتوا سم اعمامورى مهلوا اسوم ممو يرالو فيوش ورم املت ور مل نهوا تر و قيتوة مهذا هوو الفوارا اعساسون انو الدالوة ماإل وراء ى متسوتدل لو طريوق امسهوا مو مرالواة نووع ملودد الوسواتط الو تسوتقبلها متسوت دت لادة ملماجلة نص سم لدخا سم احتساب قيتة رقتية ى من تب الدالة اننفس م اعكتاانة اإل راء سي انوالوحدة النتطية Module 4
مالحظة :- الدالة الىت تمرف هبذه الطريفة تمرف ملدالة املمرفة م قبل املست دت للتا مع هناك نوع اخر م الدما يمرف ملدما اجلاهية سم املبنية يف الل ة مثل User Defined Function(UDF) دالة دالة التحويل م نص لىل رقم Parse() التحويل م رقم لىل نص ToString الدما الرايضية دالة الرف لقوى Math.Pow() الصيغة العامة لتعريف الدالة: مثال 1 :- دالة لجياد القيتة املطلقة.)...Math.Abs() Function Function(Arg1,arg2,.) الدالة تمليتا Function Statements القيتة الرا مة م الدالة Return Value Function Arg1,arg2,. الصيغة العامة الستدعاء الدالة: هو اسم الدالة قاتتة مساتط الدالة Function (Arg1Value,arg2Value,.) Arg1Value,arg2Value,. اكتب انرانمج يقوت إبدخا لوددي مو خوال سدايت النصوو احلساانية مرحلة التصميم : )اجلت مالطرح مال رب مالقستة(. قيم مساتطالدالة م Box2 Box1 تقووت ملمتليوا دالوة مث مضو 5
مرحلة الربجمة : Function Arithmetic_operators(ByVal a As Single, ByVal b As Single, ByVal op As Char) Dim c As Single If op = "+" Then c = a + b ElseIf op = "-" Then c = a - b ElseIf op = "*" Then c = a * b ElseIf op = "/" Then c = a / b End If Return c End Function Dim x, y As Single Dim z As Char x = Integer.Parse(Box1.) y = Integer.Parse(Box3.) z = Box2. Box4. = Arithmetic_operators(x, y, z) مثا 2: mىn مث حساب قيتة التوافيق مفقا للصي ة التالية:- اكتب انرانمج لقراءة املت ري p = n! / (n-m)!* m! n!=1*2*3* *(n-1)*n م سع n >= m للتا مع لتلية حساب امل رمب تتم يف دالة ممرفة م قبل املست دت مرحلة التصميم : 6
Function factorial(byval r As Integer) Dim i, fact As Integer fact = 1 For i = 1 To r fact = fact * i Return fact End Function مرحلة الربجمة : كود دالة حساب املضروب كود زر األمر "احسب التوافيق" Dim n, m, p As Integer n = Box1. m = Box3. Box2. = factorial(n) Box4. = factorial(m) If (n >= m) Then Box5. = factorial(n) / (factorial(n - m) * factorial(m)) Else (" اليمكن حساب التوافيق الن m اكبر من MsgBox(" n End If.a.b 7