PDA

View Full Version : تبدیل رشته ها به توابع ریاضی؟



ali2914
سه شنبه 08 اردیبهشت 1383, 07:11 صبح
سلام. من در یکی از پروژه های دانشگاهی به مشکلی برخوردم این مساله رو هم در بخش ویژوال بیسیک و هم در بخش عمومی مطرح می کنم شاید شما راه حلی برای اون داشته باشید
به طور کلی توابع در یک برنامه بوسیله برنامه نویس در برنامه وارد می شه و برنامه کامپایل می شه و کاربر آرگومانهایی را به عنوان ورودی در بر نامه وارد می کنه که برنامه با وارد کردن اون آرگومانها در تابع و انجام محاسبات خروجی متناسب را تولید می کند.
اما مشکل ما زمانیست که نیاز باشه که کاربر تابع راهم خودش در برنامه وارد کنه به عنوان مثال
برنامه ای رو در نظر بگیرید که در ان کاربر در یک textbox یک تابع مثلy=sin(xرا وارد می کنه و باتعیین یک دامنه مناسب برای x برنامه نمودار این تابع را رسم کند
من در هیچ زبانی امکان تبدیل یک رشته ورودی به یک تابع ریاضی که بتونه ارگومان بگیره را مشاهده نکردم و به نظر می رسه که در همه زبانهاعبارت ریاضی باید در خود برنامه قبل از کامپایل وارد شود.حالا اگه شما راه حلی برای این مساله می شناسید راهنمایی کنید.حل این مساله کمک بسیار مهمیه در تولید برنامه های کاربردی برق،الکترونیک،عمران ...

B-Vedadian
چهارشنبه 09 اردیبهشت 1383, 08:22 صبح
سلام،

برای بدست آوردن مقدار یک تابع برای عدد ورودی دلخواه لازم نیست که یک رشته به برنامه کامپیوتری تبدیل بشه، هرچند این کار هم ممکنه.

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

برنامه باید شامل دو بخش باشه، اول بخشی که بتونه تکه های یک عبارت ریاضی رو جدا کنه مثلا از <span dir=ltr>(2+x)*(5+log(x))</span> دو عبارت <span dir=ltr>2+x</span> و <span dir=ltr>5+log(x)</span> رو جدا کنه بخش دوم مقدار توابع رو برای ورودیهای متفاوت محاسبه کنه، مثلا عبارت <span dir=ltr>log(2)</span> و <span dir=ltr>2+3</span> رو بتونه محاسبه کنه.

من قبلا این کار را یک بار کرده ام، اگر خواستید بگویید تا کدش را به زبان پاسکال بفرستم.

مسعود صداقت
یک شنبه 29 شهریور 1383, 11:25 صبح
منم قبلآ دنبال نوشتن جنین برنامه ای بودم
راه B-Vedadian رو هم خوندم که کاملآ منطقی و بهترین راه است ولی یه راه ساده که من از اون استفاده
کردم این بود(شاید راهش از نظر منطقی درست نباشه ولی خیلی راحته )
که اول رشته رو از کاربر دریافت میکردم بعد رشته رو تو سورس برنامه قرار میدادم و برنامه رو از نو کامپایل
میکردم
شاید این راه به دردت بخوره

Sepidar
یک شنبه 29 شهریور 1383, 11:52 صبح
قبلا در این باره در جاهای مختلف فروم بحث شده.

Salar Ashgi
چهارشنبه 30 مرداد 1387, 12:37 عصر
دوست عزیز ، اینم برنامه شما که بزبان سی پلاس پلاس نوشتم ، البته چون وقت نداشتم

فقط تابع sin رو نوشتم که میشه تکمیلش کرد ، شما کافیه با اجرای برنامه یک رشته

(عبارت) با تابع سینوس همراه با پارانتز و عدد بدید و نتیجه رو ببینید !!!

اینم عکسی از محیط برنامه بعد از محاسبه :

http://i38.tinypic.com/668zee.jpg

موفق و پیروز باشید !!!!

hamid v
دوشنبه 07 اردیبهشت 1388, 13:08 عصر
لطفا سورسش هم بزارین.