جایگزینی برای توابع ریاضی در بیلدر

شروع موضوع توسط ɱɱβ ‏6 مارس 2012 در انجمن برنامه Multimedia Builder

  1. ɱɱβ

    ɱɱβ New Member

    ارسال‌ها:
    20
    تشکر شده:
    49
    امتیاز دستاورد:
    1
    با توجه به نبود اکثر توابع ریاضی در mmb باید خودمون دست به کار شیم و برای یک تابع ساده کلی کد بنویسیم.( البته میتونیم از plugin ها استفاده کنیم ولی خوب برای دونستن کد هاش بد نیست!!! )
    با توجه به این که پر کاربرد ترین فاکتوریل هست اول از « ! » استفاده میکنیم.

    تعریف فاکتوریل :
    !X =
    [LTR]
    کد (Text):

      Fact = 1
      For n=1 To x
        Fact = Fact*n
      Next n
    DisplayValue("Text","Fact")
     
    [/LTR]
    مثلا اگه به MMB بدیم 5 ، دستور حلقه از یک شروع میکنه و 1 رو در 1 ضرب می کنه بعد 2 رو در عدد حاصل بعد 3 و ...
    که حاصل می شه : !5 = 5×4×3×2×1

    سینوس :
    تعریف سینوس برای بسیاری از برنامه ها مهمه چون می شه با این عمل بسیاری دیگر از نسبت های مثلثاتی رو پیدا کرد.

    sin X =
    [LTR]
    کد (Text):
    i=1
    p=1
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      sin=sin+(((-1)^p)*(((x^i))/(fact_i)))
      i=i+2
    Next n
    DisplayValue("Text","sin")
    sin=0
     
    [/LTR]

    (** توجه : مقدار ورودی باید بر حسب رادیان باشد.)

    کسینوس :

    Cos X =
    [LTR]
    کد (Text):
    i=0
    p=0
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      cos=cos+(((-1)^p)*(((x^i))/(fact_i)))
      i=i+2
    Next n
    cos=1-cos
    DisplayValue("Text","cos")
    cos=0
     
    [/LTR]

    ** توجه : ورودی باید بر حسب رادیان باشد.

    به جای تعریف دوباره ی کسینوس x میتوان مقدار کسینوس را برابر با sin(90-x) قرار داد برای این کار کافیست دستور سینوس را نوشت اما در ابتدا عبارت x = 90- x را وارد کرد.
    نکــته : ورودی باید بر حسب رادیان باشد اگر می خواهید از درجه استفاده کنید باید از کد :
    [LTR]
    کد (Text):
    x=x*(3.1415926535897932384626433832795/180)
    [/LTR]
    استفاده کنید.

    تا قسمت بعدی آموزش بدرود ...
     
    نوشته شده توسط ɱɱβ در ‏6 مارس 2012
    Amit13، Aref_Alikhani، BlueMMB و 7 نفر دیگر از این ارسال تشکر کرده اند.
  2. ɱɱβ

    ɱɱβ New Member

    ارسال‌ها:
    20
    تشکر شده:
    49
    امتیاز دستاورد:
    1
    خوب چند تا دیگه :)
    تانژانت :

    tan X یعنی سینوس x تقسیم بر کسینوس x پس یه همچنین کدی میشه:
    کد (Text):
    i=1
    p=1
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      sin=sin+(((-1)^p)*(((x^i))/(fact_i)))
      i=i+2
    Next n
    y = (3.1415926535897932384626433832795/2)-x
    i=1
    p=1
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      cos=cos+(((-1)^p)*(((y^i))/(fact_i)))
      i=i+2
    Next n
    tan=sin/cos
    DisplayValue("Text","tan")
    sin=0
    cos=0
    tan=0
     
    :tavajoh: ورودی بر حسب رادیان است.

    کتانژانت x :



    کد (Text):
    i=1
    p=1
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      sin=sin+(((-1)^p)*(((x^i))/(fact_i)))
      i=i+2
    Next n
    y = (3.1415926535897932384626433832795/2)-x
    i=1
    p=1
    For n=1 To 50
      fact_i=1
      p=p+1
      For m=1 To i
        fact_i=fact_i*m
      Next m
      cos=cos+(((-1)^p)*(((y^i))/(fact_i)))
      i=i+2
    Next n
    cot=cos/sin
    DisplayValue("Text","tan")
    sin=0
    cos=0
    cot=0
     
    :tavajoh: ورودی بر حسب رادیان است.

    کسکانس معکوس تابع سینوس و سکانس معکوس تابع کسینوس است.
    در نتیجه :
    csc_x=1/sin_x
    sec_x=1/cos_x

    خوب یکم از مثلثات بریم توی نظریه اعداد !!!

    دستور MOD :

    کد (Text):
    mod = x-INT(x/y)*y
    مثال :
    3=5×[13/5]-13

    ( اون دستوری که شما برای باقی مانده دادید ، باقی مانده تقسیم بر 5 است که غلطه ! { اگه ممکنه پستتون رو پاک کنید } دستور اصلی این دستور MOD است که براتون گذاشتم )
     
    آخرین ویرایش: ‏6 مارس 2012
    نوشته شده توسط ɱɱβ در ‏6 مارس 2012
    Aref_Alikhani، BlueMMB، nevercom و 2 نفر دیگر از این ارسال تشکر کرده اند.
  3. ɱɱβ

    ɱɱβ New Member

    ارسال‌ها:
    20
    تشکر شده:
    49
    امتیاز دستاورد:
    1
    توابع معکوس مثلثاتی

    خوب در این پست می خوام چند تا دیگه عملیات ها رو به MMB بدون استفاده از PlugIN بشناسونیم.

    اولین دستور ArcTan هست که در کد زیر معرفی شده :
    کد (Text):
    i=1
    p=1
    For n=1 To 50
      p=p+1
      Arctan=Arctan+(((-1)^p)*(((x^i))/i))
      i=i+2
    Next n
    DisplayValue("Text","Arctan")
    Arctan=0
     
    تـــوجـــه ! : ورودی بر حسب رادیان است.

    "یک درد و دل ساده : برای معرفی رادیکال به mmb باید یک صفحه کد نوشت!!! "

    در بعضی از برنامه نویسی ها که Sqrt ( جذر ) تعریف نشده از دستور : sqrt(x)=x^(1/[LTR]2)[/LTR]
    استفاده می شود.
    و به طور کلی ریشه n ام یک عدد از به توان رساندن آن عدد به معکوس n بدست می آید ولی MMB نمی تواند این عبارت را حساب کند !!! و جواب 1 می دهد.

    برای معرفی رادیکال باید کد های زیادی نوشت که در اینجا بهتره بریم PlugIn استفاده کنیم .
    اگه شما روش ساده ای برای پیدا کردن جذر یک عدد پیدا کردید به ماهم بگید!
     
    آخرین ویرایش: ‏10 مارس 2012
    نوشته شده توسط ɱɱβ در ‏10 مارس 2012
    mahdigh، Aref_Alikhani و nevercom از این ارسال تشکر کرده اند.

به اشتراک بگذارید