2013-04-22 4 views
6

मैं वर्णनात्मक कैलकुलेटर तारों के आधार पर सरल मूल्य रूपांतरण और गणना करने के लिए एक लचीला लेकिन काफी तेज़ तरीका ढूंढ रहा हूं।गणितीय प्रिंटफ शैली गणना

कुछ उदाहरण के लिए इस तरह:

double r = 1.0; 
double d = mathf("sin(%1)+2*%2", r, M_PI); 
double e = mathf("%1/180.0 * %2", r, M_PI); 

महत्वपूर्ण लगता है कि गणितीय क्रियाओं कार्यावधि में मूल्यांकन किया जा सकता है और कॉन्फ़िग फ़ाइल से लोड है। मैं कुछ प्रकार की पटकथा भाषा एकीकरण पर विचार कर रहा था लेकिन ऐसा लगता है कि चिकना और तेज़ नहीं आता है?

कोई विचार अगर गणित की तरह कुछ सी ++ के लिए मौजूद है?

+2

जब आप 'printf()' कार्यान्वयन के आंतरिक भाग को देखते हैं, तो आपको पता चलेगा कि इसके बारे में "चिकना और तेज़" कुछ भी नहीं है। एक प्रारूप स्ट्रिंग को पार्स करना, समय के साथ जोड़े गए सभी विकल्पों के साथ-साथ झूठी इनपुट की संभावना और अर्थपूर्ण (यानी, गैर-क्रैशिंग) तरीके से उस पर प्रतिक्रिया कैसे करें ... – DevSolar

+0

चिकना और तेज़? इस बारे में सोचें कि आपका कंपाइलर अंकगणितीय अभिव्यक्तियों को कैसे संसाधित करता है ... – krsteeve

+0

मेरा मतलब था कि इन छोटे ऑपरेशन के लिए पूर्ण पैमाने पर पाइथन एकीकरण जोड़ने की तुलना में "चिकना और तेज़"। – Hhut

उत्तर

5

थोड़ा और खोज करने का प्रयास करें। यह एक बहुत आम बात है। यह पार्सिंग है, और हर कंपाइलर करता है। यह थोड़ा सा धारणा की तरह बनाता है।

Solve equation from string to result in C

Evaluate a simple string mathmatical expression

Convert string to mathematical evaluation

आदि आदि

इसके बारे में जाने के लिए दो तरीके हैं, एक अपने स्वयं के बारे में है, दूसरा एक पुस्तकालय जो क्या की तरह लगता है लगता है आप देख रहे हैं। मैं सी ++ मानक libs में, रूबी में और निश्चित रूप से अन्य भाषाओं का एक गुच्छा में ऐसा कुछ भी नहीं जानता, आप केवल स्ट्रिंग को eval कर सकते हैं, लेकिन सी ++ में आपको शायद वेब से लाइब्रेरी उधार लेनी होगी या कुछ और। उस अंतिम लिंक को आज़माएं, यह इसके लिए आशाजनक लग रहा था।

+16

धन्यवाद ... मैंने printf और मूल्यांकन भाग को अलग करने के बारे में नहीं सोचा था ... जो वास्तव में इसे बहुत आसान बनाता है। निम्नलिखित अच्छा दिखता है और इसे काम करना चाहिए: http://www.partow.net/programming/exprtk/index.html – Hhut

संबंधित मुद्दे