توابع ریاضی
مفهوم تابع يکی از مهمترين مفاهيم در رياضيات و علوم کامپيوتر و نيز ساير علوم می باشد. تابع را می توان به عنوان دستگاهی در نظر گرفت که وروديهای مجازش را با تغييراتی که وظيفه آن دستگاه می باشد به خروجی متناظر با ورودی تبديل می کند. معادله خط y = 2x + 1 را در نظر بگيريد، اگر به جای f(x)، y را قرار دهيم معادله خط فوق به صورت f(x) = 2x + 1 در خواهد آمد. در اينجا دستگاه ما تابع f خواهد بود که هر ورودی (هر عدد حقيقی) را در 2 ضرب می کند و سپس يک واحد به آن اضافه می کند.
به عنوان مثال :
f(0) = 2 * (0) + 1 = 1f(1) = 2 * (0) + 1 = 3f(-1) = 2 * (-1) + 1 = -1همانطور که در مثالهای فوق ديديد تابع f به هر ورودی تنها يک خروجی را نظير می کند.
مثال : تابعی بنويسيد که شعاع يک دايره به عنوان ورودی باشد و خروجی ، مساحت دايره باشد.
می دانيم که فرمول مساحت دايره s = 3.14*r2 می باشد پس تابع را به صورت زير تعريف می کنيم:
s(r) = 3.14*r2بعضی از توابع ممکن است بر اساس شرط خاصی خروجی متفاوتی داشته باشند، اينگونه توابع معمولاً به صورت چند ضابطه ای تعريف می شوند. به عنوان مثال تابع قدر مطلق به این صورت می باشد
به عنوان نمونه :
abs(1) = 1abs(-1) = 1abs(0) = 0
زبان ++C برای انجام محاسبات رياضياتی ، توابع کاربردی فراوانی را در اختيار ما قرار داده است ، به عنوان مثال فرض کنيد که می خواهيد جذر يک عدد را بدست آوريد، تابعی که زبان ++C برای اينکار در اختيار ما قرار داده است، تابع sqrt می باشد. به عنوان مثال دستور زير :
cout << sqrt (900);عدد 30 را چاپ خواهد کرد. در اينجا عدد 900 آرگومان تابع sqrt می باشد. برای استفاده از توابع رياضی در برنامه ملزم به استفاده از دستور:
#include در ابتدای برنامه می باشيم، چون توابع رياضی در فايل کتابخانه ای math.h قرار دارند. آرگومانهای توابع می توانند شامل اعداد ثابت، متغيرها و يا ترکيبی از آنها باشند؛ به عنوان مثال به برنامه زير توجه کنيد :
#include #include int main ( ){ int x = 30; double y = 5; cout << sqrt (x+2*y+9)< return 0;}خروجی برنامه فوق عدد 7 خواهد بود چون تابع sqrt جذر عبارت 30+2*5+9=49 را محاسبه خواهد کرد.
مثال : برنامه ای بنويسيد که sin و cos وtan زاويه های زوج 1 تا 90 درجه را در خروجی به صورت جدول بندی شده تا سه رقم اعشار چاپ نمايد.
#include #include int main( ){ float r; for (int d=2;d<=90;d+=2) { r = 3.1415 * d / 180; cout<<"sin("< < cout<<"\tcos("< < cout<<"\ttan("< < cout< } return 0;}خروجی برنامه به صورت زير می باشد:
sin(2)=0.035 cos(2)=0.999 tan(2)=0.035sin(4)=0.07 cos(4)=0.998 tan(4)=0.07sin(6)=0.105 cos(6)=0.995 tan(6)=0.105sin(8)=0.139 cos(8)=0.99 tan(8)=0.141sin(10)=0.174 cos(10)=0.985 tan(10)=0.176sin(12)=0.208 cos(12)=0.978 tan(12)=0.213sin(14)=0.242 cos(14)=0.97 tan(14)=0.249 . . . . . . . . . sin(86)=0.998 cos(86)=0.07 tan(86)=14.292sin(88)=0.999 cos(88)=0.035 tan(88)=28.599sin(90)=1 cos(90)=0 tan(90)=21584.891 در برنامه فوق توسط فرمول r = 3.1415 * d / 180 زاويه بر حسب درجه را به راديان تبديل کرديم و توسط فرمول floor(sin(r)*1000 + 0.5)/1000 خروجی را تا سه رقم اعشار محاسبه کرديم. همانطور که می بينيد ورودی تابع، علاوه بر متغير و عدد ثابت خروجی تابع ديگری می باشد. به عنوان مثال sqrt(pow(2,2)) برابر با 2 خواهد بود و ترکيب توابع به اين شکل کاملاً مجاز می باشد و بر حسب نياز می توانيد از اين شيوه استفاده کنيد.