سؤال

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

فمثلا:

3*(A+B)-(-2-78)*2+(0*A)

بعد أن حصلت على جميع القيم ، يجب على البرنامج حسابه.

والسؤال هو: ما هي أفضل طريقة للقيام بذلك؟ (مع التحسين والتحقق)

ما هو التدوين للاختيار كقاعدة للشجرة؟

هل يجب أن أمثل التعبير كشجرة؟ إذا كان الأمر كذلك ، فأنا أتمكن بسهولة من تحسينه (فقط إسقاط العقد التي تُرجع 0 أو smth آخر).

هتافات،

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

المحلول

يحتوي الرابط المقترح في تعليق Greg Hewgill أعلاه على جميع المعلومات التي ستحتاجها:

إذا أصرت على كتابة بنفسك ،

يمكنك أيضا البحث عن "تقييم التعبير" على CodeProject - لديهم الكثير من المقالات حول هذا الموضوع.

صادفت مُقيّم تعبير برنامج M4 منذ بعض الوقت. يمكنك دراسة التعليمات البرمجية الخاصة به لمعرفة كيفية عملها. أظن هذا الرابط على رموز Google هو الإصدار الذي رأيته.

نصائح أخرى

يلمح سؤالك إلى المتطلبات التي يتم وضعها على الحل الخاص بك:

للأسف على ج

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

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