الگوریتم ماشین حسابی با تعریف زیر را بنویسید:
  • انجام چهار عمل اصلی با اولویت محاسباتی عملگرها طبق آنچه در زیر مشخص شده است:
    + -      عملگر یگانی (Unary)
    * /
    + - عملگر دودویی (Binary)
  • عبارات داخل پرانتز از اولویت بالاتری برخوردارند.
  • اعداد می‌توانند صحیح یا اعشاری باشند.
  • پایان هر عبارت با علامت سوال (=) مشخص می‌شود.
  • خروج از ماشین حساب با ورود حرف ایکس (X) مشخص می‌شود.
مثال:
2 * 3 + 4 * 5 =
26

2 * (3 + 4) * 5 =
70

2 * 3 + -4 * 5 =
-14

8.1 / -2.5 =
-3.24

X

شرایط الگوریتم:
  • برای گرفتن عبارت مورد محاسبه از کاربر٬ تنها یک تابع به نام GetChar وجود دارد که در هر زمان تنها یک کاراکتر از کاربر گرفته و آن را برمی‌گرداند.
  • به جز آخرین کاراکتر وارد شده توسط کاربر٬ الگوریتم نباید کاراکترهای قبلی وارد شده توسط کاربر را در متغیری ذخیره کند.
  • الگوریتم ارائه شده باید بر روی هر ماشین٬ سیستم عامل و زبان برنامه‌نویسی قابل پیاده‌سازی باشد.

----------------------
هدف از ارائه مسئله بالا٬ دستیابی به یک روش عمومی برای حل مسائل این چنینی است.