2008-08-06 13 views
16

बोडामास क्या है और यह प्रोग्रामिंग में क्यों उपयोगी है?"बोडामा" शब्द का क्या अर्थ है?

+0

[सी और सी ++ में ऑपरेटर प्राथमिकता] (http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence) – foxy

+0

मैं आमतौर पर चार + -/पर संचालन के क्रम को दिखाने के लिए सफेद स्थान का उपयोग करता हूं। * संचालन, इस तरह: ए + बी * सी अन्य सभी ऑपरेटरों के लिए, मैं संचालन के आदेश को स्पष्ट करने के लिए ब्रांड्स का उपयोग करता हूं। –

+0

मैंने आज पहले कभी बोडामा नहीं देखा है। मैंने पेम्दास (माता-पिता, एक्सपोनेंट्स, गुणा, डिवीजन, एडिशन, घटाव) सीखा। – FishBasketGordo

उत्तर

21

http://www.easymaths.com/What_on_earth_is_Bodmas.htm:

आपको क्या लगता है 2 + 3 x 5 का जवाब है?

क्या यह (2 + 3) x 5 = 5 x 5 = 25 है?

या 2 + (3 x 5) = 2 + 15 = 17?

BODMAS बचाव के लिए आते हैं और हमें नियमों दे तो पालन करने के लिए है कि हम हमेशा सही जवाब प्राप्त कर सकते हैं:

(बी) रैकेट (ओ) rder (डी) ivision (एम) ultiplication (ए) ddition (एस) ubtraction

बोडामास के मुताबिक, गुणा को हमेशा जोड़ा जाने से पहले किया जाना चाहिए, इसलिए 17 वास्तव में बोडामा के अनुसार सही उत्तर है और यदि आप 2 + 3 x 5 टाइप करते हैं तो आपका कैलकुलेटर भी जवाब देगा।

प्रोग्रामिंग में यह क्यों उपयोगी है? कोई विचार नहीं, लेकिन मुझे लगता है कि ऐसा इसलिए है क्योंकि आप कुछ ब्रैकेट से छुटकारा पा सकते हैं? मैं एक काफी बचाव की मुद्रा में प्रोग्रामर हूँ, तो मेरे लाइनों इस तरह दिख सकता:

result = (((i + 4) - (a + b)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER; 

BODMAS साथ आप इस एक सा साफ कर सकते हैं:

result = (i + 4 - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER; 

मुझे लगता है कि मैं अभी भी पहले संस्करण का उपयोग करना चाहते हैं - अधिक ब्रैकेट्स, लेकिन इस तरह मुझे अभी तक एक और नियम नहीं सीखना है और मैं इसे भूलने के कम जोखिम में भाग लेता हूं और उन अजीब त्रुटियों को डीबग करने के लिए कठिन बनाता हूं?

हालांकि उस हिस्से पर बस अनुमान लगाया जा रहा है।

माइक स्टोन संपादित करें: गयुस के रूप में फिक्स्ड गणित इस का एक और संस्करण (मिडिल स्कूल में) बाहर

+1

ईमानदार होने के लिए, मैं अनुमानित रूप से अनुकूलित संस्करण की बजाय आपकी "ब्रैकेट" शैली के साथ हूं। शायद यह सिर्फ मुझे है, लेकिन मुझे लगता है> परिणाम = (((i + 4) - (ए + बी)) * MAGIC_NUMBER) - ANOTHER_MAGIC_NUMBER; मानसिक रूप से विश्लेषण करना आसान है ... – ZombieSheep

8

अंक था, "माफ करना कृपया मेरे प्रिय चाची सैली"।

  • कोष्ठक
  • Exponents
  • गुणा
  • डिवीजन
  • अलावा
  • घटाव

स्मरक डिवाइस आज स्कूल में सहायक, और अभी भी प्रोग्रामिंग में उपयोगी था।

5

जैसे एक अभिव्यक्ति में आपरेशन, का क्रम:

foo * (bar + baz^2/foo) 
  • बी रैकेट पहले
  • हे rders (यानी शक्तियां और वर्ग जड़ों, आदि)
  • डी ivision और एम ultiplication (बाएं से दाएं)
  • एक ddition और एस ubtraction (बाएं से दाएं)

स्रोत: http://www.mathsisfun.com/operation-order-bodmas.html

4

जब मैंने ग्रेड स्कूल (कनाडा में) में यह सीखा तो इसे बेडमैस के रूप में जाना जाता था:

बी रैकेट
xponents
डी ivision
एम ultiplication
एक ddition
एस ubtraction

बस दुनिया के इस हिस्से से उन लोगों के लिए

। ..

+0

इसी तरह न्यूजीलैंड में भी। 'एक्सपोनेंट' सामान्य रूप से नामित 'ऑर्डर' की तुलना में मेरे लिए अधिक समझ में आता है –

1

मुझे सच में यकीन नहीं है कि पुरानी बोडामास निमोनिक प्रोग्रामिंग के लिए कितना लागू है। भाषाओं के बीच संचालन के आदेश पर कोई गारंटी नहीं है, और कई लोग उस क्रम में मानक संचालन करते हैं, सभी नहीं। और फिर कुछ ऐसी भाषाएं हैं जहां संचालन का आदेश वास्तव में सभी अर्थपूर्ण नहीं है (उदाहरण के लिए लिस्प बोलीभाषाएं)। एक तरह से, यदि आप मानक ऑर्डर भूल जाते हैं और या तो सब कुछ के लिए ब्रांड्स का उपयोग करते हैं (उदाहरण के लिए (ए * बी) + सी) या विशेष रूप से आपके द्वारा काम की जाने वाली प्रत्येक भाषा के लिए ऑर्डर सीखें।

5

मेरे पास @Michael Stum's answer संपादित करने की शक्ति नहीं है, लेकिन यह बिल्कुल सही नहीं है। उन्होंने कहा कि कम कर देता है

(i + 4) - (a + b) 

(i + 4 - a + b) 

को वे समान नहीं होते हैं। सबसे अच्छा कमी मैं पूरी अभिव्यक्ति के लिए प्राप्त कर सकते हैं

((i + 4) - (a + b)) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER; 

या

(i + 4 - a - b) * MAGIC_NUMBER - ANOTHER_MAGIC_NUMBER; 
0

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

ऑप्टिमाइज़ेशन दिनचर्या उन स्थानों पर रजिस्टरों का उपयोग करेगी जहां आपके पास चर था इसलिए इसे अंतरिक्ष को प्रभावित नहीं करना चाहिए, लेकिन यह संकलक को थोड़ा सा मदद कर सकता है।

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