مجید آرتا 5,874 ارسال شده در 5 اسفند، ۱۳۹۴ اشتراک گذاری ارسال شده در 5 اسفند، ۱۳۹۴ به نام خالق هستی خداوند عزیز رو شاکرم که به بنده این فرصت دوباره رو داد تا در خدمت شما عزیزان و هموطنان باشم و بتونم این دانش نا جیزم رو در راستای پیشرفت علمی و یادگیری ابتدایی دوستان در اختیارتون قرار بدم خب توی برنامه نویسی یا کلا بگم توی تمامی زبان های برنامه نویسی ( اونایی رو که ما میشناسیم و در حد اسم میشناسیم ) یکسری قوانین و قواعد خاصی هستش که باید رعایت بشه و طبق اون قوانین عمل کنیم،حالا قانون نه همون دستورالعمل. حالا چندتا از این دستور العمل ها رو که باید رعایت بشه رو بزارید بیان کنم و شاید ربطی به این تاپیک نداشته باشه ولی خب جزء عام هستش مثلا تعریف متغییر همیشه میگن با حرف از a-z شروع بشه و با عدد شروع نشه و یا میگن که نا متغییر ها رو نام های رزرو شده و یا ذخیره شده اون زبان برنامه نویسی انتخاب نکنید.مثل if,for,while و کلمات دیگه رزرو شده و یا ذخیره شده توسط شرکت و یا فرد ساخته کامپایلر و زبان مورد نظر حالا توابع هم جزء این قواعد و قوانین هستش یعنی توی تمامی زبان های برنامه نویسی از توابع استفاده میشه حالا خیلی ساده تر بگم دلیل استفاده از توابع رو : جلوگیری از تکرار مکررات ( یعنی یکسری کد مشترک که در قسمت های مختلف برنامه باید استفاده بشه رو در قالب یک تابع در میاریم و فقط اسم تابع صدا زده میشه و مشترکا کدها استفاده میشه) نظم و ترتیب به کد نویسی ( اینو بنده میکم شاید این جزء اهدافش نباشه) پویا تر می تونیم عمل کنیم ( خب یعنی چی ؟)،گاهی پیش میاد یکسری کارهارو توی برنامه انجام بدیم و این کارها هر دفعه و هر زمان متفاوته و قابل تشخیص و حدس زدن نیست.مثلا تغییر دادن اسم عکس ها : شما قصد دارید یک تابع بنویسید که هرجا خواستید اسم عکسی رو در حافظه تغییر بدید ( خب اینجا چه مشکلی میتونه وجود داشته باشه ؟)بله درسته نمیتونیم حدس بزنیم این عکس در حافظه داخلی هستش یا خارجی ؟ خب ما اینجا پس یکی از ورودی های تابع رو حافظمون قرار میدیم که داخلی هستش یا خارجی.کلی بگم زیادگیج نشید و برای اینکه کنترل بهتری داشته باشید باید اون ورودی هایی که قابل تغییر هستن رو به کاربر بسپاریم ... خب حالا یه جورایی فهمیدیم توابع چین و چیکار می کنن مثال ساده ای هم از توابع موجود در خود بیسیک که توسط برنامه نویس و سازنده این برنامه تعبیه شده مثلا همین Initialize کردن یا LoadLayout و ..... خب حالا از لحاظ نمایش نتیجه توابع دو نوع داریم : توابع با مقدار بازگشتی ( Return Value ) : با مقدار بازگشتی ؟ چی میتونه باشه ؟خب ببینید منظور از مقدار بازگشتی یعنی خروجی که به ما میده از چه نوعی هستش;عدد ؟ رشته ؟ منطقی ؟ و..... این نوع رو ما مشخص می کنیم ( برنامه نویس ).توابعی که مقدار بازگشتی دارن مثلا تابع rnd که وظیفش تولید اعداد تصادفی هست که توسط سازنده یا برنامه نویس بیسیک تعبیه شده که یک مقدار بازگشتی از نوع عدد صحیح یا Int داره.یعنی برای اینکه بتونیم نتیجشو ببینیم باید یک متغییر Int تعریف کنیم و rnd رو بریزیم توی این متغییر بعد تا بتونیم نتیجه رو ببینیم. توابع بدون مقدار بازگشتی : این نوع توابع هم فقط با صدا زدن اسمش کدش اجرا میشه و نتیجه رو نمایش میده و نیازی به تعریف متغییر از جنسی که ما تعریف کردیم نداره.از جفتشون مثال خواهیم زد نگران نباشید.از توابع خود بیسیک میشه همون LoadLayout رو واسه این مورد میشه گفت. حالا خودمون مثال میزنیم بیخیال اونایی که Erel جان تعریف کردن :دی از مدل اولی یا همون بازگشتی خیلی ساده میاییم یک عدد از ورودی میگیریم و دو برابرش می کنیم فوق العادع سخت و پیچیده : ( پس فهمیدیم یک ورودی داریم ) 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") دوست داشتم این آموزش رو به صورت ویدیو واستون بسازم ولی به دلیل اینکه لپ تاپ بنده دوران بازنشتگیش رسیده دیگه توان اینکه لایو و تصویری پخش کنه نداره به همین پخش از رادیو فعلا میسازیم باهاش یه آموزش ساده از انجمن AnswerCenter.IR راستی یادم رفت می تونید کپیش کنید واسه خودتون ولی خب اسم منم ذکر بشه وگرنه از پل صراط بخوای رد بشی باید سواری بدید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.