كيفية تقييم التعبير الرياضي من السلسلة في J2ME
-
27-09-2019 - |
سؤال
كيفية تقييم التعبير الرياضي من السلسلة في J2ME.
على سبيل المثال سلسلة تحتوي على "2*4". من السلسلة التي أريد تقييم التعبير الرياضي والحصول على النتيجة على 8 (2*4).
في "Java ™ Platform Standard ed. 6" ، هناك حزمة وهي "javax.script" تستخدم لتقييم التعبيرات الرياضية من سلسلة. على سبيل المثال ، تتوفر أي حزمة أو أي فئة لـ J2ME لتقييم التعبير الرياضي من السلسلة.
المحلول 2
فيما يلي الخطوات المستخدمة لتقييم التعبير الرياضي من السلسلة في J2ME
- اقرأ التعبير في متغير سلسلة. هنا التعبير في شكل Infix.
- قم بتحويل التعبير في متغير السلسلة إلى نموذج postfix وقم بتخزينه في متغير سلسلة آخر وهو "postfix_str".
- تقييم التعبير في نموذج postfix (القيمة في بيانات "postfix_str") باستخدام المكدس.
نصائح أخرى
إذا كنت بحاجة إلى التعامل مع التعبيرات المتداخلة ، فما عليك سوى كتابة المحلل القائم على المكدس.
إذا لم تكن معتادًا على الخوارزمية ، فأنت تستخدم اثنين من المداخن ، أحدهما للمشغلين المحتجزين والآخر لعقد المعاملات.
بالنسبة للحالة الأساسية ، يمكنك تحليل جميع المشغلين والمعاملات في المداخن الخاصة بهم ثم تقييمها من خلال تفجير اثنين من المعاملات والمشغل ، وتنفيذ الحساب ثم تخزين النتيجة مرة أخرى على مكدس المعامل. تابع حتى يصبح مكدس المشغل فارغًا ، ويحتوي المكدس المعامل على قيمة واحدة فقط (النتيجة). إذا نفدت المشغلين وهناك أكثر من نتيجة واحدة على مكدتك ، فهناك خطأ في التعبير.
للتعامل مع أقواس (بما في ذلك قوسين متداخلين) ، يمكنك تضمين مشغلي للباريس الأيسر واليمين. عند تحليل التعبير إذا واجهت Paren الأيمن ، ابدأ في تقييم التعبير على الفور (ظهور معاملتين ومشغل ، ووضع النتيجة مرة أخرى على مكدس المعامل) حتى تواجه Paren الأيسر. ثم استئناف تحليل التعبير.