recent TED talk से प्रेरित, मैं शैक्षिक सॉफ्टवेयर का एक छोटा टुकड़ा लिखना चाहता हूं। शोधकर्ता ने "Siftables" नामक ब्लॉक के आकार में छोटे लघु कंप्यूटर बनाए।बच्चों के शैक्षिक सॉफ्टवेयर के लिए बुनियादी गणित समीकरणों को पार्स करना?
alt text http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg
[David Merril, inventor - with Siftables in the background.
]
कई अनुप्रयोगों वह में ब्लॉक का इस्तेमाल किया थे लेकिन मेरी पसंदीदा जब प्रत्येक ब्लॉक एक नंबर या बुनियादी आपरेशन प्रतीक था। फिर आप लाइनों में संख्याओं या ऑपरेशन प्रतीकों के ब्लॉक को फिर से व्यवस्थित कर सकते हैं, और यह किसी अन्य siftable ब्लॉक पर एक जवाब प्रदर्शित करेगा।
alt text http://i44.tinypic.com/m7us6g.png
तो, मैं एक सीएस कोर्स मैं ले रहा हूँ के लिए मेरा अंतिम परियोजना के रूप में एक सीमित पैमाने पर "गणित Siftables" का एक सॉफ़्टवेयर संस्करण कार्यान्वित करने के लिए मैं चाहता था फैसला किया है।
गणित अभिव्यक्तियों की एक स्ट्रिंग को पार्स करने और व्याख्या करने के लिए आम तौर पर स्वीकार्य तरीका क्या है, और यदि वे मान्य हैं, तो ऑपरेशन करें?
क्या यह एक ऐसा मामला है जहां मुझे एक पूर्ण पार्सर/लेक्सर लागू करना चाहिए? मुझे लगता है कि बुनियादी गणित अभिव्यक्तियों की व्याख्या करना कंप्यूटर विज्ञान में एक अर्ध-आम समस्या होगी, इसलिए मैं इस दृष्टिकोण के लिए सही तरीका ढूंढ रहा हूं।
उदाहरण के लिए, अगर मेरी गणित Siftable अवरुद्ध कर देता है की तरह की व्यवस्था की:
[1
][+
][2
]
यह एक वैध अनुक्रम होगी और मैं "3" पर पहुंचने के लिए आवश्यक कार्रवाई करने के होगा।
हालांकि, अगर बच्चे को एक साथ इस तरह के रूप में कई संचालन ब्लॉक खींचें करने के लिए किए गए:
[2
][\
][\
][5
]
यह स्पष्ट रूप से अमान्य होगा।
आखिरकार, मैं उन ब्लॉकों के साथ संचालन के किसी भी श्रृंखला को पार्स और व्याख्या करने में सक्षम होना चाहता हूं जो उपयोगकर्ता एक साथ खींच सकते हैं। क्या कोई मुझे बुनियादी गणित अभिव्यक्तियों को पार्स करने के लिए संसाधनों को समझा सकता है या मुझे बता सकता है?
मैं जितना संभव हो उतना भाषा अज्ञेय उत्तर पसंद करूंगा।
मुझे लगता है कि न केवल सवाल ही है बल्कि परियोजना का उद्देश्य प्रशंसनीय है। उम्मीद है कि जवाब रोशनी होनी चाहिए। – Cerebrus
क्या हम दूसरा उदाहरण नहीं पढ़ेंगे क्योंकि 2 नकारात्मक 5 से विभाजित है? या नकारात्मक अभ्यास इस अभ्यास के लिए गणित के स्तर से परे जाते हैं? –
@ रेक्स एम, सच, शायद यह एक बुरा उदाहरण है। शायद दो विभाजन प्रतीक बेहतर होंगे। –