رفتن به مطلب

گام پانزدهم : آشنایی با توابع و انواع آن ( Method یا Function )


ارسال‌های توصیه شده

به نام خالق هستی

خداوند عزیز رو شاکرم که به بنده این فرصت دوباره رو داد تا در خدمت شما عزیزان و هموطنان باشم و بتونم این دانش نا جیزم رو در راستای پیشرفت علمی و یادگیری ابتدایی دوستان در اختیارتون قرار بدم

خب توی برنامه نویسی یا کلا بگم توی تمامی زبان های برنامه نویسی ( اونایی رو که ما میشناسیم و در حد اسم میشناسیم ) یکسری قوانین و قواعد خاصی هستش که باید رعایت بشه و طبق اون قوانین عمل کنیم،حالا قانون نه همون دستورالعمل.

حالا چندتا از این دستور العمل ها رو که باید رعایت بشه رو بزارید بیان کنم و شاید ربطی به این تاپیک نداشته باشه ولی خب جزء عام هستش

مثلا تعریف متغییر همیشه میگن با حرف از a-z  شروع بشه و با عدد شروع نشه

و یا میگن که نا متغییر ها رو نام های رزرو شده و یا ذخیره شده اون زبان برنامه نویسی انتخاب نکنید.مثل if,for,while  و کلمات دیگه رزرو شده و یا ذخیره شده توسط شرکت و یا فرد ساخته کامپایلر و زبان مورد نظر

حالا توابع هم جزء این قواعد و قوانین هستش یعنی توی تمامی زبان های برنامه نویسی از توابع استفاده میشه

حالا خیلی ساده تر بگم دلیل استفاده از توابع رو :

  • جلوگیری از تکرار مکررات ( یعنی یکسری کد مشترک که در قسمت های مختلف برنامه باید استفاده بشه رو در قالب یک تابع در میاریم و فقط اسم تابع صدا زده میشه و مشترکا کدها استفاده میشه)
  • نظم و ترتیب به کد نویسی ( اینو بنده میکم شاید این جزء اهدافش نباشه)
  • پویا تر می تونیم عمل کنیم ( خب یعنی چی ؟)،گاهی پیش میاد یکسری کارهارو توی برنامه انجام بدیم و این کارها هر دفعه و هر زمان متفاوته و قابل تشخیص و حدس زدن نیست.مثلا تغییر دادن اسم عکس ها : شما قصد دارید یک تابع بنویسید که هرجا خواستید اسم عکسی رو در حافظه تغییر بدید ( خب اینجا چه مشکلی میتونه وجود داشته باشه ؟)بله درسته نمیتونیم حدس بزنیم این عکس در حافظه داخلی هستش یا خارجی ؟ خب ما اینجا پس یکی از ورودی های تابع رو حافظمون قرار میدیم که داخلی هستش یا خارجی.کلی بگم زیادگیج نشید و برای اینکه کنترل بهتری داشته باشید باید اون ورودی هایی که قابل تغییر هستن رو به کاربر بسپاریم
  • ...

خب حالا یه جورایی فهمیدیم توابع چین و چیکار می کنن

مثال ساده ای هم از توابع موجود در خود بیسیک که توسط برنامه نویس و سازنده این برنامه تعبیه شده مثلا همین Initialize  کردن یا LoadLayout و .....

خب حالا از لحاظ نمایش نتیجه توابع دو نوع داریم :

  1. توابع با مقدار بازگشتی ( Return Value ) : با مقدار بازگشتی ؟ چی میتونه باشه ؟خب ببینید منظور از مقدار بازگشتی یعنی خروجی که به ما میده از چه نوعی هستش;عدد ؟ رشته ؟ منطقی ؟ و..... این نوع رو ما مشخص می کنیم ( برنامه نویس ).توابعی که مقدار بازگشتی دارن مثلا تابع rnd  که وظیفش تولید اعداد تصادفی هست که توسط سازنده یا برنامه نویس بیسیک تعبیه شده که یک مقدار بازگشتی از نوع عدد صحیح یا Int  داره.یعنی برای اینکه بتونیم نتیجشو ببینیم باید یک متغییر Int  تعریف کنیم و rnd  رو بریزیم توی این متغییر بعد تا بتونیم نتیجه رو ببینیم.
  2. توابع بدون مقدار بازگشتی : این نوع توابع هم فقط با صدا زدن اسمش کدش اجرا میشه و نتیجه رو نمایش میده و نیازی به تعریف متغییر از جنسی که ما تعریف کردیم نداره.از جفتشون مثال خواهیم زد نگران نباشید.از توابع خود بیسیک میشه همون LoadLayout  رو واسه این مورد میشه گفت.

 

حالا خودمون مثال میزنیم بیخیال اونایی که Erel  جان تعریف کردن :دی :DD:

از مدل اولی یا همون بازگشتی خیلی ساده میاییم یک عدد از ورودی میگیریم و دو برابرش می کنیم :DD:  فوق العادع سخت و پیچیده :DD: : ( پس فهمیدیم یک ورودی داریم )

Sub num(value As Int) As Int
 Return value * 2
End Sub

خب حالا یک مثال می زنیم ازش :


Example »
Dim Result As Int
Result = num(3)
Log("Natije = "&Result)

Display » Natije = 6

اومدیم یک متغییر تعریف کردیم و مساوی کردیم با تابع خودمون و عدد 3 رو به عنوان ورودی دادیم و در نتیجه در LogCat  به ما عدد 6 رو نمایش میده.

حالا همون تابع اولی رو به این شکل هم میشه تعریف کرد : ( هیچ تفاوتی توی خروجی برنامه نداره )

Sub num(value As Int) As Int
 Private number As Int
 number = value * 2
 Return number
End Sub

خب بریم سر فصل نوع دوم یا غیر بازگشتی اینم همون مثال بالا رو میزنیم یه عدد رو میگیریم دو برابرش می کنیم :

Sub num(value As Int)
 Private number As Int
 number = value * 2
 Log("Natije = "& number)
End Sub

 حالا یک نمونه از طرز استفادش :

num(3)

Display » Natije = 6

 خب فقط ما اینجا میاییم اسم تابع رو با ورودی های لازم میدیم و صداش می زنیم حالا هرجا فرقی نداره و نتیجه ای که میده عدد 6 هستش

 

پس دیدید دو نوع تابع رو نوشتیم با یک نتیجه اما متفاوت و این بستگی به خودتون داره که طبق چه نیازی و چه تابعی رو تعریف کنید

 

مثالی  دیگه از توابع بازگشتی ( میخوام یک تابع بنویسم که ورودی رشته بگیره و بعد چک کنه این رشته ای که گرفتیم حروفیه یا عددی) :

Sub IsLetter(value As String) As Boolean
 If IsNumber(value) = False Then
   Return True
  Else
   Return False
  End If
End Sub

خب این تابع ورودی رشته رو میگیره و شرط میزاره و از تابع از پیش ساخته شده IsNumber  اومده استفاده کردیم و گفتیم اگر عددی بودنش False  یا نا درسته و عددی نیست بیا مقدار True  رو برگردون و در غیر اینصورت ( Else )  مقدار درست  یا True

 

 حالا نحوه استفاده از تابع  به دو شکل میشه و هر دو شکل رو مینویسم:

شکل اول :

Dim mybool As Boolean
mybool = IsLetter("Majid")
If mybool = True Then
 Log("Yeah!")
 Else
 Log("No Baby")
End If

شکل دوم :

If IsLetter("Majid") = True Then
 Log("Yeah")
Else
 Log("No Baby")
End If

حالا بریم همین مثالو با غیر بازگشتی ها بزنیم :

Sub IsLetter(value As String)
 If IsNumber(value) = False Then
   Log("Yeah")
  Else
   Log("No Baby")
  End If
End Sub

این از تابعش حالا مثالش :

IsLetter("Majid")

دوست داشتم این آموزش رو به صورت ویدیو واستون بسازم ولی به دلیل اینکه لپ تاپ بنده دوران بازنشتگیش رسیده دیگه توان اینکه لایو و تصویری پخش کنه  نداره :DD:  به همین پخش از رادیو فعلا میسازیم باهاش :DD:

 

یه آموزش ساده از انجمن AnswerCenter.IR

 راستی یادم رفت :DD: 

می تونید کپیش کنید واسه خودتون ولی خب اسم منم ذکر بشه وگرنه از پل صراط بخوای رد بشی باید سواری بدید :DD:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...