فلسفه توابع در برنامه نویسی
سلام و عرض ادب
در ریاضیات دبیرستان هم با توابع سر و کار داشتیم مثلا :
f(x) = 2x+1
هر اسمی هم که دلمون میخواد میذاشتیم f(x) , g(x) , h(x) , ...
که یک(یا چند) پارامتر میگرفت و محاسباتی روش انجام میداد و حاصلش رو برمیگردوند(محاسبه ش رو خودمون باید انجام میدادیم تو ریاضی اما توی کامپیوتر پردازنده این محاسبه رو برای ما انجام میده)
مثلا
f(x,y) = x+y
تابعی توی ریاضیاته که دوتا عدد میگیره و جمع میکنه(محاسباتش با خودمونه)
توی ریاضیات ما چه چیزهایی میتونستیم بفرستیم به تابع؟؟ 1-عدد 2-عبارت جبری
پس دو تا نوع داده ای داشتیم تو ریاضیات ، جز این دو تا دیگه نمیتونستیم بفرستیم مثلا نمیتونستیم اسم خودمون رو بفرستیم به تابع f(x) چون یک پارامتر غلطیه و f(x) عدد یا عبارت جبری میخواد. در واقع *انواع داده ای* که توی ریاضی تعریف شدن رو میتونه بعنوان پارامتر بگیره.
اگه دقت کنین میبینین توی ریاضی وقتی کار تابع تموم میشه انگار ی مقدار برگردونده میشه مثلا
f(x,y) = x+y
f(2,3) = 2+3 = 5
این مقدار 5 الان برگردونده شد . اگه دقت کنین تابع توی ریاضی هر چندتا که پارامتر بگیره ، در نهایت فقط یک خروجی برمیگردونه مثلا
g(x,y,z,t,k) = x+y+z+t+k
g(1,2,3,4,5) = 1+2+3+4+5 = 15
میبینین که هر چندتا پارامتر بهش میدیم ، در نهایت فقط یک خروجی داره.
توی برنامه نویسی هم دقیقا مثل همین ، ما با توابع سر و کار داریم که یکسری کارهایی برای ما انجام میدن ، هر اسمی دوست داشتیم میتونیم براش بزاریم . مثلا یک تابع دو عدد رو میگیره و اولی رو به توان دومی میرسونه و برمیگردونه که توی ریاضی اینجوری نشون میدن :
h(x) = x^y
توابع توی برنامه نویسی به این شکلن :
return-type function-name(data-type parameter1 , data-type parameter2 , ...)
{
//statements...
}
return-type = نوع داده بازگشتی(int , char , float , ... مثل)
function-name = f,g,h,... اسم تابع مثل
data-type = نوع داده ای پارامتر
parameter1 = نام پارامتر اول(همونطور که توی ریاضیات اسمشو میذاشتیم ایکس)
parameter2 = نام پارامتر دوم
...
دستورات مربوط به هر تابع بین آکلاد باز و بسته است { }
مقایسه کنین با توابع توی ریاضی
این تابع توی برنامه نویسی :
int add(int a , int b){
return a+b;
}
دقیقا همان کاری را میکند که تابع f(x,y) = x+y در ریاضیات میکند . در برنامه نویسی باید حتما نوع داده بازگشتی مشخص باشه.
بیشتر از این از فلسفه خارج میشه و میره تو دانش برنامه نویسی
کوچیکتون Alone7
یا علی(ع)
Tel : @AloneMaster7
مطلبی دیگر از این انتشارات
روزهایمان...!؟
مطلبی دیگر از این انتشارات
چطور نویسنده مبتذلی نباشیم؟
مطلبی دیگر از این انتشارات
هزینه های فرصتی که از دست رفت...