افزونه ماشین حساب با قابلیت محاسبه جملات متعدد

arash-mmb-tz

Active Member
سلام.
میدونم حالا میگید این چه پروژه ایه یه بچه سه ساله هم میتونه درست کنه :lol:
ولی چیزی که اون بچه سه ساله درست میکنه، دو تا Editbox میاره زیر هم و دکمه های + و * و / و - میزاره و چند تا متغییر و یه Display value میزاره و تموم!
اما من ( که مشخصا بالاتر از 3 سال سنمه D: ) اومدم یه کاری کردم که بشه جملات متعدد رو حین نوشتن محاسبه کرد و همچینین پرانتز ها رو به خوبی محاسبه کنه
از اینجا میتونید هم خود برنامه و هم سورسش رو دانلود کنید ( با molebox پک کردم واسه همین فایل اجراییش 300 کیلوبایت بیشتره)

mohit.jpg

حالا به طور خلاصه چه چیزی این نرم افزار رو از ماشین حساب هایی که با دو تا editbox درست میکنن متمایز میشه؟ (اسکریپت cal رو هم خواستید توی پروژه ببینید که مغز متفکر این نرم افزاره و موارد زیر تصحیحش به عهده اونه) مثلا اگه متغییر زیر رو به MMB بدید، غش میکنه:
کد:
Calculate = 5×-3.4+9(5)÷(2)3
به چند دلیل:
اولا اصلا × و ÷ توی mmb و خیلی از زبون های برنامه نویسی تعریف نشده و به صورت * و / نوشته میشه (حالا این یکی که با یه StrChange درست میشه زیاد مهم نیست)
دوما توی mmb مثلا خروجی value=3*-4 رو 4- نشون میده که یعنی ضرب و منها و همچنین تقسیم و منها رو کنار هم تشخیص نمیده
سوما mmb نمیتونه خروجی متغییر value=(3)5 یا (value=(3)(5 یا (value=3(5 رو حساب کنه. در اصل هر یک از سه متغییری که گفتم، نشانگر 5*3 هست
چهارما، وقتی متغییر value=3(2(4 رو تعریف میکنیم، مشخصا منظورمون 4*2*3 هست، یعنی اگه پرانتز نوشته نشد، نرم افزار تشخیص بده که دقیقا چند تا پرانتز باید ببنده
پنجما، توی نرم افزارم از هیچ Editbox ـی استفاده نکردم. یعنی اینکه کاملا باید قواعد نوشتن یک عبارت ریاضی رو توی نرم افزارم تعریف کنم. مثلا نرم افزار نباید اجازه نوشتن این عبارات رو داشته باشه:
rr.png

همچنین تمام کلید های ماشین حساب رو باید تعریف میکردم مخصوصا Backspace که توی mmb به طور عادی بدون پلاگین تشخیص داده نمیشه.
و خیلی از چیز های ریز و درشت دیگه که تا قصد ساختن همچین ماشین حسابی نکنید، نمیدونید ممکنه همینایی که گفتم به جای ده دقیقه بیشتر از 6 ساعت زمان ببره
این نرم افزار هم خالی از باگ نیست و ممکنه در مواردی باگ هایی وجود داشته باشه. اگه توی همین تاپیک بگید ممنون میشم
 
آخرین ویرایش:

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
ممنون از برنامه خوبتون و زحمتی که کشیدین ولی برای این کار یه پلاگین موجود هستش میتونید تست بکنید من تست کامل نکردم فقط تو آرشیو فایل هام بود
 

پیوست ها

  • Max_Math_1.2.rar
    1.7 کیلوبایت · بازدیدها: 15

arash-mmb-tz

Active Member
ممنون از برنامه خوبتون و زحمتی که کشیدین ولی برای این کار یه پلاگین موجود هستش میتونید تست بکنید من تست کامل نکردم فقط تو آرشیو فایل هام بود
سلام محمود جان
خیلی ممنون بابت معرفی پلاگین.
سورسی رو که فرستادید رو اجرا کردم و (3)2 رو بهش دادم نتیجه جالبی رو نشون داد: (البته اگه عبارت3)2 رو بهش بدیم صفر نشون میده )
2017-07-06-13-31-44.jpg


اسکریپت زیر کار این پلاگین رو به راحتی انجام میده:
کد:
CreateScript("ui","outlabel$")
ScriptParam$='SCRIPT:1=' + 'ryder='+var$
SetObjectParam("outlabel$","ScriptParam$")
RunScript("outlabel$")
یعنی بعد تصحیح عبارت نوشته شده توسط کاربر (مثل همون مثال هایی که در پست اول دادم) یه اسکریپت درست میکنه و عبارت تصحیح شده رو در متغییر ryder قرار میده و MMB اتوماتیک محاسبه اش میکنه یعنی دقیقا کار همین پلایگن رو میکنه کد بالا.
اما چالش من توی درست کردن برنامه تصحیح عبارت نوشته شده توسط کاربره به طوری که MMB اون عبارت رو درک کنه و محاسبه اش کنه
 
آخرین ویرایش:

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

بالا