پنجشنبه, ۶ اردیبهشت, ۱۴۰۳ / 25 April, 2024
مجله ویستا

نکاتی درباره پروسیجرها


نکاتی درباره پروسیجرها
توجه داشته باشید که در ابتدای تعریف توابع و روالها می توانیم از Private یا Public نیز استفاده کنیم و تمام سطوحی که برای تعریف متغیرها گفته شد (خصوصاً سطح فرم و سطح ماژول) ، در اینجا نیز عیناً کاربرد دارند. (پیش فرض در اینجا هم Private است).
به عنوان مثال اگر بخواهیم تابعی به نام Square ایجاد نماییم که هر عددی را دریافت کرد، مربع آن را برگرداند، کافی است چنین بنویسیم (مثلاً به صورت Public در یک ماژول) :
Public Function Square (I As Integer) As Integer
Square = I*I
End Function
ملاحظه می کنید که در اینصورت اگر هر جایی از برنامه نام تابع را به همراه یک مقدار عددی Integer به عنوان پارامتر آن ذکر کنیم، مقدار عددی مذکور به متغیر I داخل تابع منتقل شده و عمل I*I روی آن انجام می گیرد و از آنجا که گفتیم خرجی توابع نام آنها هستند، خروجی (یعنی مقدار I*I را) را به نام تابع جایگزین کردیم (یعنی Square = I*I) . حال مثلاً اگر در جایی از برنامه دستور b = Square (۵) را وارد کنیم، مقدار متغیر b برابر ۲۵ خواهد شد.
توجه داریم که اگر تابع بیش از یک پارامتر ورودی داشت، باید نام آنها با کاما (,) از هم جدا کنیم که در اینصورت در هنگام فراخوانی باید به تعداد پارامترها، آرگومان قرار دهیم که به ترتیب در متغیر مربوط جایگزین (وارد) می شود. مثلاً اگر بخواهیم تابعی به نام Multiple ایجاد کنیم که حاصلضرب دو پارامتر ورودی اول را با پارامتر ورودی سوم جمع کند و نتیجه را برگرداند، کافی است بنویسیم:
Private Function Multiple (a, b, c As Integer) As Integer
Multiple = (a*b) +c
End Function
که در اینصورت دستورات زیر در محلی از پروژه (که البته دسترسی Private به تابع مذکور داشته باشد)، مقدار ۱۷ را در Text Box به نام txtResult قرار می دهد:
I = ۳
bs = ۵
g = ۲
txtResult.Text = Multiple (I, bs, g)
توجه داریم که مقادیر استفاده شده به عنوان آرگومانهای تابع باید با متغیرهای به کار رفته در پارامترهای تعریف تابع از لحاظ نوع داده، یکسان باشند.حال به عنوان مثالی برای روالها فرض کنید بخواهیم روالی به نام TF ایجاد کنیم که دو عدد را دریافت کند، بررسی کند که اگر این دو عدد برابر بودند، جواب True و همچنین حاصلضرب آن دو را برگرداند. برای این منظور اگر مثلاً در یک ماژول تعریف کنیم:
Public Sub TF (x, y As Integer, T as Boolean, M as Integer)
IF x = y then
T = True
Else
T = False
End IF
M = x*y
End Sub
می توان در جایی از پروژه، روال مذکور را فراخوانی نمود، فراخوانی روالها توسط دستور Call صورت می گیرد، مثلاً اگر در جایی از پروژه، روال فوق را به صورت زیر فراخوانی نماییم:
a = InputBox (“Please Enter a Number”)
Call TF (a, ۱۵, s, p)
در صورتی که متغیرهای a و s و p تعریف شده باشند آرگومان a به پارامتر x از روال، آرگومان ۱۵ به پارامتر y از روال، آرگومان s به پارامتر T از روال و آرگومان p به پارامترM از روال منصوب می شود. دستور InputBox یک جعبه محاوره‌ای برای کاربر نشان می دهد که پیغامی را (در اینجا پیغام Please Enter a Number) شامل می شود و در یک جعبه متن خاص، مقداری را از کاربر مطالبه می کند که پس از وارد کردن توسط کاربر مقدار وارد شده را برمی گرداند (و در اینجا در متغیر a جایگزین می کند).
حال اگر کاربر مقدار ۱۵ را وارد کند، مقدار متغیر s (که باید Boolean تعریف شده باشد) برابر True و در غیر اینصورت مقدار False را شامل می شود و در هر صورت متغیر p نیز حاصلضرب a و ۱۵ را در خود شامل می شود.
تأکید می کنیم که نوع داده آرگومانها و پارامترهای تعریف لزوماً باید به ترتیب متناسب باشد که در غیر اینصورت VB به ما خطا صادر می کند.
منبع : پایگاه اطلاع‌رسانی شبکه مدرسه


همچنین مشاهده کنید