در این مطلب به طور کامل و با کلی مثال و تمرین به بررسی کامل تابع function و نحوه ساخت تابع در زبان برنامه نویسی R میپردازیم! از توابع بدون پارامتر گرفته تا توابع چندپارامتری! پس با ما همراه باشید!
فرض کنید میخوایم یک تابعی بنویسیم به اسم Koolac که وقتی فراخوونی میشه، آدرس سایت ما (یعنی www.Koolac.Org) رو چاپ کنه! در این صورت داریم:!
Koolac <- function (){ print("www.Koolac.Org") }
خب همینطور که مشخصه اسم تابع رو گذاشتیم Koolac !
در ضمن با دستور function شروع میکنیم به تعریف تابع خودمون!
کاری که قراره این تابع انجام بده اینه که میخواد print کنه آدرس سایت ما رو!
نذکر: گذاشتن اووون } و { واجبه! و هر چیزی که بین {} بنویسیم، همون کاری است که قراره تابع انجام بده!
شاید بپرسید: آیا لازمه که تابع رو در چند خط بنویسیم؟! نه، ما برای خوانایی بیشتر اینجوری نوشتیم! ولی اگر شما حال کردید میتونید به صورت زیر هم همین کد رو بنویسید!
Koolac <- function (){print("www.Koolac.Org")}
حالا برای قراخوانی تابع باید چه کنیم؟!
هیچی! خیلی ساده فقط کافیه به صورت زیر تابع Koolac رو فراخوانی کنید!
Koolac()
وقتی تابع رو فراخووونی کنید،هرچی توووش بوده، اجرا میشه! پس خروجی میشه!:
[1] “www.Koolac.Org”
میخوایم یک تابعی بنویسیم به اسم square که کارش به توان دو رساندن عدد ورودی است! یعنی مثلاً اگر شما بهش 2 بدید، این به شما 4 رو میده!
یادآوری: در زبان برنامه نویسی R، علامت توان ** یا ^ است! [هر کدوم که حال کردید رو میتونید استفاده کنید! من با ** حال میکنم! چون شبیه زبان برنامه نویسی پایتون است!]
داشتم میگفتم…! پس میخوایم تابعی بنویسیم به اسم square که کارش به توان دو رساندنِ عدد ورودی است! پس داریم!:
square <- function (a){ return(a**2) } square(5)
در خط 1 تا 3 اومدیم یک تابع تعریف کردیم به اسم square که میاد عدد ورودی (حال کردیم اسم ورودی رو بذاریم a! ولی وحی منزل نیست! شم هر اسم دیگه هم خواستید میتونید بذارید!) رو به توان 2 میرسونه!
تذکر: اون return یعنی برگردوندن! این تابع ما میاد به عنوان خروجی برمیگردونه (یا اصطلاحاً return میکنه!) a به توان 2 رو!
حالا در خط آخر، اومدیم یک مثال با همین تابعی که نوشتیم داریم پیادهسازی میکنیم! اومدیم به این تابع عدد 5 رو دادیم تا بینیم چند مرده حلّاجه! میخوایم ببینیم آیا عدد 25 رو بهمون میده یا نده؟!
که بعد از اجرا میبینیم، بله! همون عدد 25 رو بهمووون بر میگردونه!
توجه: اگر کد بالا رو به صورت زیر هم بنویسید مشکلی نداره!
square <- function (a){ a**2 } square(5)
اگر دقت کنید، تنها فرقش اینه که اون دستور return رو برداشتم و هیچی ننوشتم! ولی R به حدی از شعور رسیده که اگر دستور return رو هم نذارید، آخرین خط کدی که داخل تابع نوشتید رو خودش خودکار return میکنه!
ولی من دوست دارم return رو بذارم! چرا؟! چون اینجوری، این مورد هم شبیه پایتون میشه!
فرض کنید میخوایم یک تابعی بنویسیم که دو تا ورودی میگیره و به عنوان خروجی، ضرب این دوتا عدد رو بر میگردوونه!
zarb <- function (a,b){ return(a*b) } zarb(6,8)
همینطور که واضحه یک تابع تعریف کردیم به اسم ضرب (zarb، البته ضرب به زبان انگلیسی میشه multiplication، ولی دوست داشتیم اسمش رو بذاریم zarb !) که میاد دو تا عدد مثل a و b رو به عنوان ورودی میگیره! و بعد در خروجی حاصل ضرب اینا رو میده!
در خط آخر هم یک مثال پیادهسازی کردیم که خروجی اجرای این کد میشه: 48 !
احتمالاً شما هم حداقل برای یکبار اون فرمولی که باهاش درصد تست رو حساب میکنن رو دیدین! همون فرمولی که میگن تعداد درستهایی که توی آزمون زدی رو بده، تعداد غلطها رو هم بده، تعداد کل سوالات رو هم بده، بعد بهت درصدی که در آزمون زدی رو بهت میگیم!
میخوایم همین رو در زبان برنامه نویسی R کدنویسی کنیم!
darsad <- function (t,f,n){ return( (t*3-f)/(n*3) ) } darsad(12,2,20)
در خط 1 تا 3 تابعی نوشتیم به اسم darsad که سه پارامتر ورودی میگیره!
1- تعداد درستها (که با t نشون دادیم! ولی شما هر اسمی دیگهای هم که دوست دارید میتونید بذارید!)
2- تعداد غلطها (ما دوست داشتیم با f نشونش بدیم!)
3- تعداد کل سوالات (که ما با n نشون دادیم ولی شما با هر چیزی که دوست دارید میتونید نشون بدید!)
حالا این تابع ما میاد: (تعداد درستها ضربدر 3؛ منهایِ تعداد غلطها) رو تقسیم میکنه بر (تعداد سوالات ضربدر 3)!
در خط آخر هم یه نمونه داریم باهاش حساب میکنیم! داریم فرض میکنیم در یک آزمون تستی، 12تا درست زدیم، 2تا غلط و کلاً هم 20 سوال بوده!
بعد از اجرا، خروجی میشه: 0.5666667 ! که این درصد ما در این آزمون است!
تعداد دیدگاه | 0 |
تعداد بازدید | 12.5K |
تاریخ انتشار | 04/03/2020 |
تاریخ بروزرسانی | 04/03/2020 |
نویسنده | گروه آموزشی کولاک |