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

ɱɱβ

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

تعریف فاکتوریل :
!X =
[LTR]
کد:
  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]
کد:
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]
کد:
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]
کد:
x=x*(3.1415926535897932384626433832795/180)
[/LTR]
استفاده کنید.

تا قسمت بعدی آموزش بدرود ...
 

ɱɱβ

Member
خوب چند تا دیگه :)
تانژانت :

tan X یعنی سینوس x تقسیم بر کسینوس 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
  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 :



کد:
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 :

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

( اون دستوری که شما برای باقی مانده دادید ، باقی مانده تقسیم بر 5 است که غلطه ! { اگه ممکنه پستتون رو پاک کنید } دستور اصلی این دستور MOD است که براتون گذاشتم )
 
آخرین ویرایش:

ɱɱβ

Member
توابع معکوس مثلثاتی

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

اولین دستور ArcTan هست که در کد زیر معرفی شده :
کد:
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 استفاده کنیم .
اگه شما روش ساده ای برای پیدا کردن جذر یک عدد پیدا کردید به ماهم بگید!
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا