ما هي الدوال : الدوال هي أسماء محجوزة ومعرفة من قبل الفيجوال بيسك لتقوم بعمل معين مثل المصفوفات والقيم المطلقة وغيرها ..
أو بمعني ابسط واعم هي عبارة عن برنامج صغير مكتوب مسبقا و محفوظ داخل لغة الفيجول بيسك يمكن استدعاءه من خلال برنامجك والاستفادة منه ، إضافة إلى ذلك يمكنك أنت أن تكتب دالة وتستدعيها أكثر من مرة داخل برنامجك . والدوال في الفيجول بيسك تنقسم إلى:
1.الدوال الرياضية . Mathematics Functions
2.دوال سلاسل البيانات . String Functions
3.دوال الوقت و التاريخ Date and Time Functions
4.دوال التحقق من أنواع البيانات Data Type Inspection Functions
5.دوال المدخلات و المخرجات Program Output and User Input Functions
6.دوال مالية Financial Functions
7.و دوال متنوعة أخري
8.دوال معرفة من قبل المبرمج. User Defined Functions ( UDF )
ونلاحظ أن نوع الدوال من رقم (1) حتى رقم (7) أنها دوال داخلية ضمن اللغة، أي تأتي مُعرفة في لغة الفيجول بيسك و مبرمجة مسبقاً لكي تستخدمها مباشرة.ً أما النوع الأخير فيتم تعريفه بواسطة المبرمج، أي بواسطتك أنت.
1. الدوال الرياضية . Mathematics Functions
الدالة Abs : ترجع القيمة المطلقة لآي عدد وترجعه من نفس نوع البيانات المعطى للدالة والمقصود بالقيمة المطلقة هي قيمة العدد بدون إشارة فالقيمة المطلقة ل (-13) مثلا هي (13) وهكذا, فمثلا لو كتبنا الكود التالي
code: MyNumber=Abs(-45.6)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي MyNumber=45.6
ولاحظ أن القيمة المدخلة للدالة لابد أن تكون عدد أو تعبير عددي فإذا كانت القيمة المدخلة للدالة Null ستكون النتيجة Null وإذا كانت القيمة المدخلة للدالة متغير فارغ أو لم يتم تعيين قيمة له ستكون النتيجة (0).
الدالة Sqr : تستخدم هذه الدالة في تحديد الجذر التربيعي لرقم معين وتأخذ الصورة العامة التالية .
code: MyNumber=Sqr(10)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي MyNumber=3.1622776
الدالة Log : تستخدم هذه الدالة في تحديد قيمة اللوغاريتم العشري لرقم وتأخذ الصورة العامة التالية :
code: MyNumber=Log (20)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي MyNumber=2.9957327
الدالة Exp : تستخدم هذه الدالة في تحديد القيمة (e) وهي قاعدة اللوغاريتم الطبيعي مرفوعة بقوة الرقم الذي تتضمنه حيث (e) تساوي تقريبا 2.7182818 وتأخذ الصورة العامة التالية :
code: MyNumber=Exp (رقم)
الدالة Rnd : وتستخدم هذا الدالة في توليد أرقام عشوائية تقع ما بين الصفر و واحد بحد أقصي 15 رقما عشريا وتأخذ الصورة العامة التالية :
code: MyNumber=Rnd (عدد)
فمثلا الدالة Rnd(10) قد تعطي رقما مثل 0.7055475 وعند تشغيل الدالة مرة أخري ينتج رقما آخر مثل 0.533424 وهكذا .
الدالة Int : وتستخدم هذه الدالة لحساب الجزء الصحيح فقط من رقم يشتمل علي أرقام صحيحة وعشرية أو بعبارة أخر لحذف الأرقام العشرية الموجودة بعد العلامة العشرية بدون تقريب وتأخذ الصورة التالية :
code: MyNumber=Int (332.54)
فإن نتيجة تنفيذ الدالة هي MyNumber=332
الدالة Atn : تستخدم هذه الدالة في حساب مقلوب ظل الزاوية "ظتا" للرقم الذي تشتمل علية مقدار بالتقدير الدائري وتأخذ الصورة العامة التالية :
code: MyNumber=Atn (رقم)
الدالة Tan : تستخدم هذه الدالة في تحديد قيمة ظل زاوية معينة وتأخذ الصورة العامة التالية :
code: MyNumber=Tan (رقم)
الدالة Cos : وتستخدم هذه الدالة في تحديد قيمة جيب تمام الزاوية معينة وتأخذ الصورة العامة التالية :
code: MyNumber=Cos (رقم)
الدالة Sin : : تستخدم هذه الدالة في تحديد قيمة جيب زاوية معينة وتأخذ الصورة العامة التالية :
code: MyNumber=Sin (رقم)
2. دوال سلاسل البيانات . String Functions
الدالة Array : تحول عدة بيانات مدخلة كنصوص تفصلها فاصلة إلى مصفوفة يكون رقم أول عنصر فيها (Lower Bound) هو (0) فمثلا لو أدخلنا النص التالي إلى الدالة .
code: "Frist","Second","Third","Forth"
MyNumber= Array("First" , "Second" , "Third" , "Forth" )
Print MyNumber(0)
Print MyNumber(1)
Print MyNumber(2)
Print MyNumber(3)
نرى أن النتيجة هي
code: First
Second
Third
Forth
أي أن المتغير MyNumber يحمل مصفوفة ممتلئة بالنصوص المدخلة بعد أن تحولت إلى عناصر للمصفوفة
لاحظ أن المتغير MyNumber كان من نوع Variant لأننا لم نعلن عنه ويمكن للمتغير من هذا النوع أن يحمل مصفوفة وكذلك يمكن أن تكون المصفوفة من أي نوع آخر فالمصفوفة المستعملة في المثال هي مصفوفة نصية بينما لو كانت العناصر المدخلة أرقما (لاستعملنا علامات التنصيص مع الأرقام حتى لا تعتبر نصوصا) لكانت مصفوفة من نوع Integer مثلا .
الدالة Asc : ترجع كود الرمز المدخل (ASCII Code) فمثلا الحرف A له الكود 65 فعند إدخال حرف A مثلا ستكون النتيجة 65 وهكذا ( لاحظ أن حرف A يختلف عن حرف a في الكود) .
code: MyNumber = Asc("a")
تجد أن المتغير MyNumber أصبح يحمل القيمة 97 . وهكذا .. انتبه فيما لو غيرة الحرف من صغير إلى كبير ستتغير القيمة إلى 65
الدالة IsNumeric : تستخدم لمعرفة ما إذا كان تعبير معين يدل على عدد أم لا فنحن ندخل للدالة تعبير من نوع Variant أو String فتختبر الدالة هذا التعبير هل يمكن التعامل مع هذا التعبير كعدد أم لا فإذا كان يمكن التعامل معه كعدد فإن الدالة IsNumeric ترجع بالقيمة True وإذا كان التعبير لا فإن الدالة ترجع بالقيمة False , فمثلا في المثال التالي كان المتغير ric من نوع String ويحمل عدد معين و نريد أن نختبر هذا العدد هل يمكن التعامل معه كعدد أم لا وفي حالتنا هذه سوف تكون قيمة المتغير True لان المتغير ric يصلح لأن يكون عدد
code: Dim ric as string
ric="7.1342"
TafTaf=IsNumeric(ric)
ستكون النتيجة هنا True لأن المتغير ric يحمل عددا بالفعل .
code: Dim ric as string
ric="LM7.1342"
TafTaf=IsNumeric(ric)
ستكون النتيجة هنا False لأن المتغير ric لا يحمل عددا فقط بل عدد مع أحرف وهذا غير صالح للتعامل معه كعدد .