تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ عماد چشم آذر
ماشین حساب شیشه ای(توسعه یافته)
مهرداد دادخواه حل شده توسط مهرداد دادخواه

سلام

یک باگی تو ماشین حساب بود که بعد از زدن مساوی و انجام عملیات ریاضی، نتیجه تو خروجی می‌موند و مقادیر جدیدی که وارد میکردیم به نتیجه قبلی کانکت میشد. در این صورت برای رسیدن به جواب درست بعد از هر بار زدن مساوی  ac رو میزدیم. این باگ رو به کمک ایده ای ک استاد دادخواه برای تایع pow استفاده کردن برطرف کردم. داخل کد‌های فایل پیوستی هست

و اما سوالم:
من دکمه‌های پرانتز رو هم اضافه کردم ولی یک باگی دارند:
چون نتیجه داخل eval ریخته میشه اگه قبل پرانتز یک عملگر ریاضی نباشه، مثلا: (3)2 ،eval اون رو به عنوان تابع در نظر میگیره و چون همچین تابعی تعریف نشده، جوابی برنمیگردونه.
با این حالت مشکلی نداره: (3*2)+3 و منطقی هم هست ولی مثل بالا بشه باگ میده. چجوری برطرفش کنم؟

 

 

 

 

 

سلام

ممنون از اینکه به اشتراک دانش و تجربه پرداختید

کار شما درسته و البته رفتار eval هم همینطور

ما در ماشین و حتی ماشین حساب هایی که من دیدم ضرب در پرانتز بدون علامت نداریم و باید حتما علامت داشته باشه

اگر دوست داشتید مثل ریاضی داخل کتاب‌ها عمل بکنه باید قبل از اینکه متن را تحویل eval بدید خودتون علامت قبل از پرانتز را بهش اضافه کنید

یعنی کاربر اون را نمیبینه ولی به eval میدید

برای اینکار هم با استفاده از توابع String یا با استفاده از regex میتونید موضوع را حل کنید

بهترین پاسخ
مهرداد دادخواه ۰۲ آبان ۱۴۰۰، ۰۲:۵۵