حل مساله :
با توجه به سوال باید از تابع استفاده کنیم نه روال ، بنابراین در قسمت کد نویسی می رویم و تابع خود را به صورت زیر تعریف میکنیم.
Private Function PowNumber(num1 As Integer, num2 As Integer) As Integer
نام تابع: PowNumber
تعداد 2 آرگومان به نامهای num1 و num2
نوع برگشتی تابع integer (به As Integer در قسمت تعریف تابع توجه نمایید)
If (num1 < num2) Then
PowNumber = num1 ^ num2
عدد کوچکتر به توان عدد بزرگتر محاسبه میشود و نتیجه بدست آمده درون نام تابع قرار می گیرد تا به برنامه برگردانده شود
Else
PowNumber = num2 ^ num1
End If
End Function
تابع بالا دو آرگومان از نوع integer به نامهای num1 و num2 از کاربر دریافت میکند..
برای اینکه عدد کوچکتر به توان عدد بزرگتر محاسبه شود باید از عملگر شرطی if به صورت زیر استفاده کنیم
If (num1 < num2) Then
پس از به توان رساندن عدد کوچکتر به عدد بزرگتر باید نتیجه را به برنامه(یعنی جایی که تابع فراخوانی(call) شد) برگردانیم . جهت برگرداندن مقدار باید نتیجه محاسبات را به نام تابع نسبت دهیم به صورت زیر.
PowNumber = num1 ^ num2
در دستور بالا نام تابع مانند متغیرها مقدار گرفته است که باعث میشود مقدار خود را به برنامه برگرداند.
اکثر دانش آموزان بجای برگرداندن مقدار توسط نام تابع از تابع Msgbox جهت نمایش نتیجه بدست آمده استفاده می کنند(در داخل بلاک تابع) که این عمل کاملا اشتباه می باشد.در صورتی که بجای تابع از روال(Sub) استفاده کنیم در این صورت صحیح می باشد.
ادامه حل مساله : فرمی طراحی کردیم با دو کنترل متنی(Textbox) به نامهای txtnumber1 و txtnumber2 برای دریافت اعداد از کاربر.
یک دکمه فرمان(CommandButton) بر روی فرم قرار داده شد و در رویداد کلیک آن کدهای زیر را نوشتیم
lblResult.Caption = "Result is:" کنترل لیبل جهت نمایش نتیجه محاسبات به کاربر
Dim number1 As Integer (TextBox) متغیر جهت دریافت عدد از کنترل متنی
Dim number2 As Integer (TextBox) متغیر جهت دریافت عدد از کنترل متنی
number1 = Val(txtnumber1.Text) عدد را از کنترل متنی درون متغیر قرار می دهد
number2 = Val(txtnumber2.Text) عدد را از کنترل متنی درون متغیر قرار می دهد
Dim result As Integer متغیری جهت نگهداری نتیجه محاسبات
result = PowNumber(number1, number2)
تابع PowNumber در این قسمت فراخوانی میشود و آرگومانهای تابع نیز مقدار دهی میشوند و نتیجه ای که توسط نام تابع به برنامه برگردانده میشود درون متغیر Result قرار میگیرد
lblResult.Caption = lblResult.Caption & result نتیجه محاسبه درون کنترل لیبل درج میشود
End Sub پایان تابع
در صورت نیاز به توضیحات بیشتر سوالات خود را از قسمت پایین مطرح نمایید.
پروژه را ازقسمت فایلهای ضمیمه شده در همین صفحه دریافت نمایید
|