توابع ریاضی

   مفهوم تابع يکی از مهمترين مفاهيم در رياضيات و علوم کامپيوتر و نيز ساير علوم می باشد. تابع را می توان به عنوان دستگاهی در نظر گرفت که وروديهای مجازش را با تغييراتی که وظيفه آن دستگاه می باشد به خروجی متناظر با ورودی تبديل می کند. معادله خط y = 2x + 1  را در نظر بگيريد، اگر به جای f(x)، y را قرار دهيم معادله خط فوق به صورت f(x) = 2x + 1 در خواهد آمد. در اينجا دستگاه ما تابع f خواهد بود که هر ورودی (هر عدد حقيقی) را در 2 ضرب می کند و سپس يک واحد به آن اضافه می کند.

    به عنوان مثال :

f(0) = 2 * (0) + 1 = 1
f(1) = 2 * (0) + 1 = 3
f(-1) = 2 * (-1) + 1 = -1

   همانطور که در مثالهای فوق ديديد تابع f به هر ورودی تنها يک خروجی را نظير می کند.

   مثال : تابعی بنويسيد که شعاع يک دايره به عنوان ورودی باشد و خروجی ، مساحت دايره باشد.

می دانيم که فرمول مساحت دايره s = 3.14*r2 می باشد پس تابع را به صورت زير تعريف می کنيم:

s(r) = 3.14*r2

   بعضی از توابع ممکن است بر اساس شرط خاصی خروجی متفاوتی داشته باشند، اينگونه توابع معمولاً به صورت چند ضابطه ای تعريف می شوند. به عنوان مثال تابع قدر مطلق به این صورت می باشد

   به عنوان نمونه :

abs(1) = 1
abs(-1) = 1
abs(0) = 0

 

   زبان ++C برای انجام محاسبات رياضياتی ، توابع کاربردی فراوانی را در اختيار ما قرار داده است ، به عنوان مثال فرض کنيد که می خواهيد جذر يک عدد را بدست آوريد، تابعی که زبان ++C برای اينکار در اختيار ما قرار داده است، تابع sqrt می باشد. به عنوان مثال دستور زير :

cout << sqrt (900);

   عدد 30 را چاپ خواهد کرد. در اينجا عدد 900 آرگومان تابع sqrt می باشد. برای استفاده از توابع رياضی در برنامه ملزم به استفاده از دستور:

#include <math.h>

   در ابتدای برنامه می باشيم، چون توابع رياضی در فايل کتابخانه ای math.h قرار دارند. آرگومانهای توابع می توانند شامل اعداد ثابت، متغيرها و يا ترکيبی از آنها باشند؛ به عنوان مثال به برنامه زير توجه کنيد :

#include <iostream.h>
#include <math.h>
int main ( )
{
    int x = 30;
    double y = 5;
    cout << sqrt (x+2*y+9)<<endl;
    return 0;
}

   خروجی برنامه فوق عدد 7 خواهد بود چون تابع sqrt جذر عبارت 30+2*5+9=49 را محاسبه خواهد کرد.

   مثال : برنامه ای بنويسيد که sin و cos وtan زاويه های زوج 1 تا 90 درجه را در خروجی به صورت جدول بندی شده تا سه رقم اعشار چاپ نمايد.

#include <iostream.h>
#include <math.h>
 
int main( )
{
  float r;
  for (int d=2;d<=90;d+=2)
  {
    r = 3.1415 * d / 180;
    cout<<"sin("<<d<<")="
        <<floor(sin(r)*1000 + 0.5)/1000;
    cout<<"\tcos("<<d<<")="
        <<floor(cos(r)*1000 + 0.5)/1000;
    cout<<"\ttan("<<d<<")="
        <<floor(tan(r)*1000 + 0.5)/1000;
    cout<<endl;
  }
  return 0;
}

   خروجی برنامه به صورت زير می باشد:

sin(2)=0.035    cos(2)=0.999    tan(2)=0.035
sin(4)=0.07     cos(4)=0.998    tan(4)=0.07
sin(6)=0.105    cos(6)=0.995    tan(6)=0.105
sin(8)=0.139    cos(8)=0.99     tan(8)=0.141
sin(10)=0.174   cos(10)=0.985   tan(10)=0.176
sin(12)=0.208   cos(12)=0.978   tan(12)=0.213
sin(14)=0.242   cos(14)=0.97    tan(14)=0.249
 
       .               .               .
       .               .               .
       .               .               .
 
sin(86)=0.998   cos(86)=0.07    tan(86)=14.292
sin(88)=0.999   cos(88)=0.035   tan(88)=28.599
sin(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 خواهد بود و ترکيب توابع به اين شکل کاملاً مجاز می باشد و بر حسب نياز می توانيد از اين شيوه استفاده کنيد.
 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد