PDA

View Full Version : مقاله: توابع ریاضی در VB و روش ساخت توابع ریاضی



parsajey
جمعه 25 مرداد 1387, 20:05 عصر
سلام به تمام برنام نویسان گل

همین طور که می دونید برنامه نویسی ( مثلا برنامه نویسی برای بازی ها ) ارتباط مستقیم با ریاضیات و توابع ریاضی داره

در VB توابع ریاضیاتی وجود دارند مثل + قدرمطلق - آرك تانژانت - گرد کردن - جذر و ........ +

و بعضی از توابع ریاضی هم در VB وجود ندارند مثل + سکانت - کتانژانت - آرك کسکانت - سیونس هیپربولیک و ....... +

در این تاپیک شما متونید با توابع ریاضیاتی VB و روش ساخت توابعی که در VB وجود ندارند آشنا بشید ....
( خوشحال میشم اگه برنامه نویسان عزیز هم کمک کنن )

parsajey
جمعه 25 مرداد 1387, 20:07 عصر
توابع موجود در VB

توجه : تمام خروجی ها از نوع Double است به جز SGN

تابع LOG = این تابع لگاریتم عدد ورودی را بر می گرداند
تابع ABS = این تابع قدرمطلق عدد ورودی را بر می گرداند
تابع Atn = این تابع آرك تانژانت عدد ورودی را بر می گرداند
تابع Sgn = این تابع علامت عدد ورودی را برمی گرداند
تابع Tan = این تابع تانژانت عدد ورودی را بر می گرداند

parsajey
جمعه 25 مرداد 1387, 20:08 عصر
توابع موجود در VB

توجه : تمام خروجی ها از نوع Double است به جز INT

تابع Tan = این تابع تانژانت عدد ورودی را بر می گرداند
تابع Sin = این تابع سینوس عدد ورودی را بر می گرداند
تابع Sqr = این تابع جذر عدد ورودی را بر می گرداند
تابع Cos = این تابع کسینوس عدد ورودی را بر می گرداند
تابع Int = این تابع نزدیکترین عدد صحیح مساوي یا کوچکتر نسبت به عدد ورودي را برمی گرداند

parsajey
جمعه 25 مرداد 1387, 20:11 عصر
روش تولید تابعی ریاضاتی که در VB وجود ندارند


کسینوس هیپربولیک = (Exp(X)+Exp(-x))/2
آرك سینوس هیپربولیک = Log(X + Sqr(X * X +1))
کسینوس هیپربولیک = (Exp(X) + Exp(-X)) /2
آرك کسینوس هیپربولیک = Log(X + Sqr(X * X -1))
تانژانت هیپربولیک = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
کتانژانت هیپربولیک = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))

parsajey
جمعه 25 مرداد 1387, 20:27 عصر
روش تولید تابعی ریاضاتی که در VB وجود ندارند


آرك سینوس = Atn(X / Sqr(1-X * X ))
آرك کسینوس = Atn(-X / Sqr(1-X * X)) + 2 * Atn(1)
آرك سکانت = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1)*(2 * Atn(1))
آرك کسکانت = Atn(X / Sqr(X * X - 1)) + (Sgn(X) -1) * (2 * Atn(1))
آرك کتانژانت = Atn(X) + 2 * Atn(1)

vahid_d_0101
شنبه 26 مرداد 1387, 15:22 عصر
من میخوام بعضی از این تابع ها را رسم کنک میتونید کمکم کنید برای رسم توابع یا باید به تاپیک دیگه ای برم

hexer01
چهارشنبه 20 آذر 1387, 22:39 عصر
سلام
چرا موقعی که از دستور sin یا cos استفاده میکنیم ، جواب درست به ما نمیده ؟
مثل :
a = Val(Text1.Text)
b = sin(a)
Text2.Text = Str(b)

اگه text1 را 90 وارد کنیم ، باید در جواب عدد 1 رو به ما تحویل بده ولی اصلا به این صورت نیست.
با تشکر.

.:KeihanCPU:.
پنج شنبه 21 آذر 1387, 10:18 صبح
چرا موقعی که از دستور sin یا cos استفاده میکنیم ، جواب درست به ما نمیده ؟



ورودی این تابع رادیان هست

VB.SOS
پنج شنبه 21 آذر 1387, 22:15 عصر
اگه تابع ها رو به صورت كلي دربياري عالي ميشه. مرسي

hamed aj
جمعه 22 آذر 1387, 01:04 صبح
سلام به همه دوستان

من یک سری توابع ریاضی دارم که اگر برنامه ای که می نویسم با VB6 باشه، همیشه به دادم میرسند. اونا رو اینجا میگذارم شاید به کار شما هم بیاد.





تابع Abs (قدرمطلق):
مقدار بدون علامت یک عدد را برمی‌گرداند.

تابع Atn (آرک تانژانت):
خروجی این تابع عددی از نوع double است که برابر زاویه‌ای است که تانژانت آن عدد ورودی تابع است.

تابع Cos (کسینوس):
خروجی این تابع عددی از نوع double است که برابر کسینوس زاویه ورودی است.

تابع Exp (توان نمانی):
خروجی این تابع عددی از نوع double است که برابر e به توان ورودی تابع است.

تابع Int (تابع کف یا تابع جزء صحیح):
نزدیکترین عدد صحیح مساوی یا کوچکتر نسبت به عدد ورودی را برمی‌گرداند.

تابع Log (لگاریتم):
خروجی این تابع عددی از نوع double است که برابر لگاریم طبیعی عدد ورودی است (لگاریتم بر مبنای عدد e یا همان Ln).

تابع Round (گرد کردن):
خروجی این تابع عددی از نوع double است که برابر نزدیکترین عدد صحیح به مقدار عدد ورودی است.

تابع Sgn (علامت):
خروجی این تابع عددی از نوع صحیح است که نشان دهنده علامت عدد ورودی است.

تابع Sin (سینوس):
خروجی این تابع عددی از نوع double است که برابر سینوس زاویه ورودی است.

تابع Sqr (جذر):
خروجی این تابع عددی از نوع double است که برابر ریشه دوم یا جذر عدد ورودی است.

تابع Tan (تانژانت):
خروجی این تابع عددی از نوع double است که برابر با تانژانت زاویه ورودی (برحسب رادیان) می‌باشد.






سایر توابع ریاضی که در ویژوال بیسیک 6 وجود ندارند :



سکانت Sec(X) = 1 / Cos(X)

کسکانت Cosec(X) = 1 / Sin(X)

کتانژانت Cotan(X) = 1 / Tan(X)

آرک سینوس Arcsin(X) = Atn(X / Sqr(1-X * X ))

آرک کسینوس Arccos(X) = Atn(-X / Sqr(1-X * X)) + 2 * Atn(1)

آرک سکانت Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1) * (2 * Atn(1))

آرک کسکانت Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))

آرک کتانژانت Arccotan(X) = Atn(X) + 2 * Atn(1)

سیونس هیپربولیک HSin(X) = (Exp(X) - Exp(-X)) / 2

کسینوس هیپربولیک HCos(X) = (Exp(X) + Exp(-X)) / 2

تانژانت هیپربولیک HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))

سکانت هیپربولیک HSec(X) = 2 / (Exp(X) + Exp(-X))

کسکانت هیپربولیک HCosec(X) = 2 / (Exp(X) - Exp(-X))

کتانژانت هیپربولیک HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))

آرک سینوس هیپربولیک HArcsin(X) = Log(X + Sqr(X * X + 1))

آرک کسینوس هیپربولیک HArccos(X) = Log(X + Sqr(X * X - 1))

آرک تانژانت هیپربولیک HArctan(X) = Log((1 + X) / (1 - X)) / 2

آرک سکانت هیپربولیک HArcsec(X) = Log((Sqr(1-X * X) + 1) / X)

آرک کسکانت هیپربولیک HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)

آرک کتانژانت هیپربولیک HArccotan(X) = Log((X + 1) / (X - 1)) / 2

لگاریتم بر مبنای N LogN(X) = Log(X) / Log(N)

hexer01
شنبه 23 آذر 1387, 00:07 صبح
سلام و ممنونم از همتون.
مشکل من همون رادیان بود.
اگه عددم رو در( 180 / 3.1415926535898) ضرب کنم ، اون موفق درست جواب میده...
a=90
s = Sin((a) * (3.1415926535898 / 180))
باز هم تشکر.

Yousha
شنبه 23 آذر 1387, 14:46 عصر
بهترین راه برای نوشتن و استفاده از توابع ریاضی، استفاده از زبان C هستش.
هسته(Library) رو با این زبان بنویسید. هیچ محدودیتی نداره، هم کامله، هم قدرتمند.

neverlieme
چهارشنبه 05 تیر 1392, 10:21 صبح
بهترین راه برای نوشتن و استفاده از توابع ریاضی، استفاده از زبان C هستش.
هسته(Library) رو با این زبان بنویسید. هیچ محدودیتی نداره، هم کامله، هم قدرتمند.

منظور شما اینه که اگه با زبان c این توابع رو ایجاد کنیم میشه تو vb ازشون استفاده کرد؟

Yousha
پنج شنبه 06 تیر 1392, 11:42 صبح
آره میشه...

neverlieme
پنج شنبه 06 تیر 1392, 15:36 عصر
آره میشه...

چطوری یاد بگیرم این کارو؟

SlowCode
پنج شنبه 06 تیر 1392, 15:56 عصر
بعد از نوشتن کدها تو C باید به صورت dll ذخیرش کنی و تو وی بی ازش استفاده کنی.

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