PDA

View Full Version : سوال: چگونگی ساخت توابع ریاضی توسط خود نرم افزار



rezamansori
جمعه 17 دی 1389, 00:38 صبح
سلام دوستان عزیز.
من می خواهم یک ماشین حساب مهندسی درست کنم ولی نمی دونم چطوری برنامه تابعی رو که کاربر می سازه رو بشناسه ؛ مثلا کاربر در تکست باکس نوشت



|x+1|+cos(tanx)+5


و تو تکست باکس بعدی 1 را وارد کرد که باید بجای x قرار گیرد و جواب را نشان دهد ؛ چگونه می شود این کار رو کرد ، خود سی شارپ این امکان رو فراهم نمی کنه که یه تابع بصورت رشته بدیم و خودش حساب کنه؟
منتظر جوابهاتون هستم ؛ خدا نگهدار.

ali.rezaei7
جمعه 17 دی 1389, 05:02 صبح
درود. برای طراحی این برنامه، باید با اصول ساختمان داد ها مانند پشته ها، مباحث Postfix و Infix و Prefix، آشنا باشید.
الان که موقع امتحاناست ولی حتما سعی می کنم که الگوریتم لازم برای این کارو طراحی کنم و تو سایت بزارم.

سوداگر
پنج شنبه 01 دی 1390, 21:42 عصر
درود. برای طراحی این برنامه، باید با اصول ساختمان داد ها مانند پشته ها، مباحث Postfix و Infix و Prefix، آشنا باشید.
الان که موقع امتحاناست ولی حتما سعی می کنم که الگوریتم لازم برای این کارو طراحی کنم و تو سایت بزارم.

یک سال بعد....(امتحان تموم نشد!)
خیلی ها به انجام چنین کاری نیاز دارندولی متاسفانه فقط به گفتن اینکه باید از فلان مباحث ساختمان داده استفاده کنی اکتفا شده. دوستان کمک کنین تا این مسئله بالاخره حل بشه!
ممنون

linux
پنج شنبه 01 دی 1390, 22:39 عصر
یک سال بعد....(امتحان تموم نشد!)
خیلی ها به انجام چنین کاری نیاز دارندولی متاسفانه فقط به گفتن اینکه باید از فلان مباحث ساختمان داده استفاده کنی اکتفا شده. دوستان کمک کنین تا این مسئله بالاخره حل بشه!
ممنون
حداقل خودم دو سه بار این را جواب دادم، قرار نیست که هر بار که کسی سوال می کند دوباره از اول شروع بشود.به هر حال یک بار دیگر
با استفاده از الگو های طراحی و الگوی Interpreter که به نظر من خیلی راه حل خوبی هست و نمونه اش اینجا هست http://www.codeproject.com/KB/architecture/InterpreterPatternParsing.aspx
و یک کتابخانه آماده دیگر در این آدرس http://muparser.sourceforge.net/
اگر به دنبال math parse بگرید کلی کد نوشته شده به زبان سی شارپ خواهید یافت

سوداگر
پنج شنبه 01 دی 1390, 23:39 عصر
ممنون از جوابتون برای بار چهارم!
یادم هست که قبلا شما به این سوال جواب داده بودید ولی بین 1800 صفحه واقعا گم شده بود.
همون عبارت انگلیسی رو نمیدونستم که توی گوگل چی باید جستجو می کردم!
با تشکر.