سؤال

كيفية تقييم التعبير الرياضي من السلسلة في J2ME.

على سبيل المثال سلسلة تحتوي على "2*4". من السلسلة التي أريد تقييم التعبير الرياضي والحصول على النتيجة على 8 (2*4).

في "Java ™ Platform Standard ed. 6" ، هناك حزمة وهي "javax.script" تستخدم لتقييم التعبيرات الرياضية من سلسلة. على سبيل المثال ، تتوفر أي حزمة أو أي فئة لـ J2ME لتقييم التعبير الرياضي من السلسلة.

هل كانت مفيدة؟

المحلول 2

فيما يلي الخطوات المستخدمة لتقييم التعبير الرياضي من السلسلة في J2ME

  1. اقرأ التعبير في متغير سلسلة. هنا التعبير في شكل Infix.
  2. قم بتحويل التعبير في متغير السلسلة إلى نموذج postfix وقم بتخزينه في متغير سلسلة آخر وهو "postfix_str".
  3. تقييم التعبير في نموذج postfix (القيمة في بيانات "postfix_str") باستخدام المكدس.

نصائح أخرى

إذا كنت بحاجة إلى التعامل مع التعبيرات المتداخلة ، فما عليك سوى كتابة المحلل القائم على المكدس.

إذا لم تكن معتادًا على الخوارزمية ، فأنت تستخدم اثنين من المداخن ، أحدهما للمشغلين المحتجزين والآخر لعقد المعاملات.

بالنسبة للحالة الأساسية ، يمكنك تحليل جميع المشغلين والمعاملات في المداخن الخاصة بهم ثم تقييمها من خلال تفجير اثنين من المعاملات والمشغل ، وتنفيذ الحساب ثم تخزين النتيجة مرة أخرى على مكدس المعامل. تابع حتى يصبح مكدس المشغل فارغًا ، ويحتوي المكدس المعامل على قيمة واحدة فقط (النتيجة). إذا نفدت المشغلين وهناك أكثر من نتيجة واحدة على مكدتك ، فهناك خطأ في التعبير.

للتعامل مع أقواس (بما في ذلك قوسين متداخلين) ، يمكنك تضمين مشغلي للباريس الأيسر واليمين. عند تحليل التعبير إذا واجهت Paren الأيمن ، ابدأ في تقييم التعبير على الفور (ظهور معاملتين ومشغل ، ووضع النتيجة مرة أخرى على مكدس المعامل) حتى تواجه Paren الأيسر. ثم استئناف تحليل التعبير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top