فلسفه توابع در برنامه نویسی

سلام و عرض ادب

در ریاضیات دبیرستان هم با توابع سر و کار داشتیم مثلا :
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