PDA

View Full Version : مشکل در پیاده سازی برنامه



golbehi
چهارشنبه 01 تیر 1390, 22:51 عصر
سلام دوستان
قبل از هرچیز از مدیران عزیز خواهشمندم پستمو پاک نکنن و اگه اسم تاپیک مناسب نیست اونو تصحیح کنن
چون این سوال خیلی برام مهمه و باید تحویل استاد بدم:گریه:
دوستان برنامه یه ورودی رشته میگیره مثل:(2*3)+2حالا باید نتیجه روحساب کنه با رعایت اولویت.
فقط من موندم چطوری پرانتز رو تشخیص بدم
پیشاپیش از راهنماییهاتون ممنونم

shahmohammadi
چهارشنبه 01 تیر 1390, 23:39 عصر
يه نمونش رو در كد زير ببينيد:
if(ch='(')
{
//
}
موفق باشيد.

quiet_programmer
پنج شنبه 02 تیر 1390, 12:43 عصر
با سلام.

برای اینکه بتونی این عبارت رو محاسبه کنی بایستی اونو به یه شکل postfix یا perfix تبدیل کنی که در این شرایط پرانتزها حذف میشن و براحتی میتونی عبارت رو محاسبه کنی.

روش تبدبل عبارت به perfix یا postfix رو میتونی تو بحث ساختمان داده ها پیدا کنی. مثلا تو کتاب ساختماندادها به زبان سی تالیف الیس هورویتز میتونی روش تبدیل و کد مربوطه رو پیدا کنی.

تو این روش میتونی حتی از پرانتز هم استفاده نکنی. یعنی عبارت 3*2+2 معادل عبارت (3*2)+2. چون اولویت ضرب بیشتر از جمع هست.

برای مقایسه پرانتز هم میتونی از کدی که جناب shahmohammadi (http://barnamenevis.org/member.php?191221-shahmohammadi) براتون گزاشتن استفاده کنین. البته به جای یه مساوی باید دوتا مساوی قرار بدین.
موفق باشین