PDA

View Full Version : استفاده از editbox در برنامه



reza4257
دوشنبه 23 دی 1387, 22:00 عصر
من میخوام یه فرمول رو در editbox وارد کنم و از اون در برنامم استفاده کنم.
مثلا متغیرهای a,b را مقدار دهی کنم و با توجه به عبارت وارد شده در editboxحاصل عبارت را نمایش بدم
مثل
a+b
a*2+b
a/b+8
,...

narsic
دوشنبه 23 دی 1387, 23:44 عصر
با سلام
دوعدد Edit بر روی فرمتون قرار بدید و a رو در یکی و b رو در دیگری بگیرید .
برای تعیین وضعییت جمع ضرب و غیره هم میتونی عمل رو در یک edit دیگه بگیری و با دستور else if بررسی کنید چه دستوری هست و بعد ادامه عملیات .
کلا نمیشه به سادگی و با استفاده از یک Edit این کار رو انجام بدید .
موفق باشید

reza4257
دوشنبه 23 دی 1387, 23:57 عصر
فرمولهایی که قراره وارد بشن متنوع هستندو قراره کاربر اون رو وارد کنه, روش شما مشکل رو حل نمیکنه

SYNDROME
سه شنبه 24 دی 1387, 06:27 صبح
فرمولهایی که قراره وارد بشن متنوع هستندو قراره کاربر اون رو وارد کنه, روش شما مشکل رو حل نمیکنه
باید یک برنامه بنویسید که علائم را بشناسد و بتواند آنها را اجرا کند.
در ابتدای کار شما باید فرمولی را که کاربر وارد می کند جدا کنید و مثلاً داخل یک ListBox اضافه کنید.
مانند :
a * b - 4
a
*
b
-
4
سپس چون همه عملوندها و عملگردها را جدا کرده اید به ترتیب می توانید آنها را اجرا کنید.
فقط باید ببینید الویت بندی عوامل برایتان مهم است یا نه؟
موفق باشید

hojjatcroos
سه شنبه 24 دی 1387, 08:59 صبح
سلام سورس زیر رو دانلود کن کارت راه می افته
http://upload.iranblog.com/1/1231828591.rar (http://upload.iranblog.com/1/1231828591.rar)

bmanfy
سه شنبه 24 دی 1387, 18:04 عصر
شما باید از همون منطق خود کامپیوتر که برای محسبات استفاده میکنه استفاده کنی .
در واقع کامپیوتر هم وقتی یک عبارت مثل 12+2 رو میگیره یک سری تغییرات در اون میده تا بتونه حسابش کنه .
که دو روش هست یکی PostFix و درگیر PreFix که اینها رو توی ساختمان داده کاملا شرح داده میشه .
که پیاده سازی اون بااستفاده از پشته صورت میگیره . مبحثی خیلی شیرین و دلنشین و ساده.
میتونی از ادرس زیر جزوه های مربوط به ساختمان داده رو دانلود کنی .
فکر کنم توی فصل پشته ها توضیح داده باشم . با یک سری مثال واضح . البته سورس برنامه هایی هم که دقیقا این کار رو انجام میدن هست . البته با C نوشتم و تحت داس هستش .
یک سری از دوستان اخیرا گفتن دانلود نمیشه . اما اگه دیدی دانلود نمیشه بگو تا برات میل بزنم .
bmanfy.blogfa.com (http://barnamenevis.org/forum/bmanfy.blogfa.com)
اگر باز هم در این زمینه مشکلی داشتین در خدمتم .

bmanfy
سه شنبه 24 دی 1387, 18:10 عصر
یک مسئله دیگه هم که هست اولویت هاست . و هم چنین اینکه اگر پرانتز گذاشتی زودتر انجام بشه . که توی این جزوهای که گفتم کاملا اینها رو هم گفته .
در واقع این روشها همون روشهایی هست که کامپایلر ها استفاده میکنند .
مثلا تو پاسکال اگه مینویس


)2+2(*4/2

از کجا میفهمه باید چه طور حساب کنه .
ساده ترین و بهترین روش همینه .

reza4257
چهارشنبه 25 دی 1387, 03:24 صبح
من نتونستم مواردیکه فرمودین رو دانلود کنم , ضمنا مشکل من در دلفی هست چون در fox,c این کار با گذاشتن علامت & جلو متغیر امکان پذیر است

bmanfy
چهارشنبه 25 دی 1387, 10:59 صبح
چیزهایی رو گه گفتم سعی میکنم شب براتون بفرستم . یا اگه شد همینجا Upload میکنم .

اما ببین دوستی عزیز چیزی که من گفتم مربوط به الگوریتمه نه مربوط به زبان خواصی . یه الگوریتم باید پیاده سازی بشه .
که گفتم روش پیاده سازی اون رو توی همون چزوه ها کاملا گفتم . . البته اون رو هم با C نوشتم .
و این چیزی که شما گفتید تو Fox,c با گذاشتن & اجرا میشه رو نمیدونم .
شاید هم چیزی که شما مد نظرتون باشه خیلی ساده تر از این چیزی باشه که من گفتم .
اما خوب به نظر من پویایی مهمه .
طبق این الگوریتم شما هر عبارتی رو میتونید به صورت متن بنویسید و به صورت ریاضی حسابش کنید . حتی تا اگر پرانتز گذاری هم کرده باشد .
این روش روش استانداردی است که توسط کامپایلر ها هم از اون استفاده میشه .
مثلا 2+2 رو تبدیل میشه به + 2 2 و یا 2 2 + و سپس با استفاده از پشته محاسبه میشه .
حالا سعی می کنم براتون بغرستم به احتمال زیاد به دردتون بخوره .

bmanfy
چهارشنبه 25 دی 1387, 17:34 عصر
با عرض شرمندگی اون فایل جزوه ها نتونستم پیدا کنم .
اما خوب تو اینترنت مطالب زیاد هست .
ببین عباراتی در حالت عادی ما وارد میکنیم InFix هستند و باد اونا رو یا به PosFix یا به PreFix تبدیل کنی .
پس اول به دنبال تبدیل InFix به Postfix بگرد .
حالاباید با پشته عبارت PostFix یا PreFix رو حساب کنی .

خوب به همین سادگی .
میتونی دنبال جزو های ساختمان داده هم بگردی . حتما توش گفته .
موفق باشید.