बीसी (प्रोग्रामिंग भाषा): Difference between revisions

From Vigyanwiki
(Edit text)
No edit summary
 
(20 intermediate revisions by 5 users not shown)
Line 5: Line 5:
| screenshot size        =  
| screenshot size        =  
| caption                =  
| caption                =  
| developer              = [[Robert Morris (cryptographer)|Robert Morris]] and [[Lorinda Cherry]] of [[Bell Labs]]
| developer              = [[बेल लैब्स]] के [[रॉबर्ट मॉरिस]] और [[लोरिंडा चेरी]]
| released              = {{Release year|df=yes|1975}}
| released              = {{1975, 47-48 साल पहले}}
| latest release version =  
| latest release version =  
| latest release date    =  
| latest release date    =  
| operating system      = [[Unix]], [[Unix-like]], [[Plan 9 from Bell Labs|Plan 9]], [[FreeDOS]]
| operating system      = [[यूनिक्स]], [[यूनिक्स कि tarah]], [[प्लान 9 बेल लैबस से |प्लान 9]], [[फ्री DOS]]
| platform              = [[Cross-platform]]
| platform              = [[क्रॉस -प्लेटफार्म ]]
| genre                  = [[Command (computing)|Command]]
| genre                  = [[आज्ञा ]]
| license                =  
| license                =  
| website                =  
| website                =  
}}
}}
बीसी, ''बेसिक कैलकुलेटर'' (अक्सर ''बेंच कैलकुलेटर'' के रूप में जाना जाता है) के लिए, सी (प्रोग्रामिंग लैंग्वेज) के समान शब्द योजना के साथ एक आरबिटर-परिशुद्धता कैलकुलेटर भाषा है। बीसी आमतौर पर गणितीय अंकन भाषा या एक अन्योन्यक्रिया गणितीय कोश के रूप में प्रयोग किया जाता है।
'''बीसी''', ''बेसिक कैलकुलेटर'' (सामान्य परिगणक) (प्रायः ''बेंच'' परिगणक के रूप में जाना जाता है) के लिए, सी (प्रोग्रामिंग भाषा) के समान शब्द योजना के साथ एक यादृच्छिक-परिशुद्धता परिगणक भाषा है। बीसी सामान्यतः गणितीय अंकन भाषा या एक अन्योन्यक्रिया गणितीय कोश के रूप में प्रयोग किया जाता है।


== अवलोकन ==
== अवलोकन ==
यूनिक्स कमांड प्रॉम्प्ट पर कमांड बीसी टाइप करना और एक गणितीय अभिव्यक्ति दर्ज करना एक सामान्य पारस्परिक उपयोग है, जैसे {{code|(1 + 3) * 2}}, जिसके बाद {{samp|8}} आउटपुट होगा। जबकि बीसी अपने तरीके से सटीकता के साथ काम कर सकता है, यह वास्तव में दशमलव बिंदु के बाद शून्य अंकों के लिए चूक करता है, इसलिए अभिव्यक्ति {{code|2/3}} परिणाम {{samp|0}} (परिणामों को छोटा कर दिया जाता है, गोल नहीं)। यह इस तथ्य से अनजान नए बीसी उपयोगकर्ताओं को आश्चर्यचकित कर सकता है। बीसी के लिए {{code|-l}} विकल्प व्यतिक्रम पैमाने पर (दशमलव बिंदु के बाद अंक) को 20 पर सेट करता है और भाषा में कई अतिरिक्त गणितीय कार्यों को  जोड़ता है।
यूनिक्स कमांड प्रॉम्प्ट पर कमांड बीसी लिखना और एक गणितीय अभिव्यक्ति दर्ज करना एक सामान्य पारस्परिक उपयोग है, जैसे {{code|(1 + 3) * 2}}, जिसके बाद {{samp|8}} निर्गम होगा। जबकि बीसी अपने तरीके से सटीकता के साथ काम कर सकता है, यह वास्तव में दशमलव बिंदु के बाद शून्य अंकों के लिए चूक करता है, इसलिए अभिव्यक्ति {{code|2/3}} परिणाम {{samp|0}} (परिणामों को छोटा कर दिया जाता है, गोल नहीं)। यह इस तथ्य से अनजान नए बीसी उपयोगकर्ताओं को आश्चर्यचकित कर सकता है। बीसी के लिए {{code|-l}} विकल्प व्यतिक्रम पैमाने पर (दशमलव बिंदु के बाद अंक) को 20 पर सेट करता है और भाषा में कई अतिरिक्त गणितीय कार्यों को  जोड़ता है।


== इतिहास ==
== इतिहास ==
बीसी पहली बार 1975 में यूनिक्स के संस्करण 6 में दिखाई दिया। यह बेल लैब्स के लोरिंडा चेरी द्वारा डीसी (कंप्यूटर प्रोग्राम) के फ्रंट एंड के रूप में लिखा गया था, जो रॉबर्ट मॉरिस (क्रिप्टोग्राफर) और चेरी द्वारा लिखित एक आरबिटर-परिशुद्धता कैलकुलेटर है। डीसी ने रिवर्स पोलिश नोटेशन में निर्दिष्ट आरबिटर-परिशुद्ध संगणनाएँ कीं। बीसी ने एक साधारण संकलक (कोड की कुछ सौ पंक्तियों वाली एक एकल याक्क स्रोत फ़ाइल) के माध्यम से समान क्षमता के लिए एक पारंपरिक प्रोग्रामिंग-भाषा अंतरापृष्ठ प्रदान किया, जिसने सी (प्रोग्रामिंग भाषा)-जैसे वाक्य - विन्यास को डीसी संकेतन में परिवर्तित कर दिया और डीसी के माध्यम से परिणामों को पाइपड (यूनिक्स) कर दिया।  
बीसी पहली बार 1975 में यूनिक्स के संस्करण 6 में दिखाई दिया। यह बेल लैब्स के लोरिंडा चेरी द्वारा डीसी (कंप्यूटर प्रोग्राम) के फ्रंट एंड के रूप में लिखा गया था, जो रॉबर्ट मॉरिस (क्रिप्टोग्राफर) और चेरी द्वारा लिखित एक यादृच्छिक-परिशुद्धता परिगणक है। डीसी ने रिवर्स पोलिश नोटेशन में निर्दिष्ट यादृच्छिक-परिशुद्ध संगणनाएँ कीं। बीसी ने एक साधारण संकलक (कोड की कुछ सौ पंक्तियों वाली एक एकल याक्क स्रोत फ़ाइल) के माध्यम से समान क्षमता के लिए एक पारंपरिक प्रोग्रामिंग-भाषा अंतरापृष्ठ प्रदान किया, जिसने सी (प्रोग्रामिंग भाषा)-जैसे वाक्य - विन्यास को डीसी संकेतन में परिवर्तित कर दिया और डीसी के माध्यम से परिणामों को पाइपड (यूनिक्स) कर दिया।  


1991 में, पॉज़िक्स ने बीसी को सख्ती से परिभाषित और मानकीकृत किया। इस मानक के तीन कार्यान्वयन आज भी मौजूद हैं, पहला पारंपरिक यूनिक्स कार्यान्वयन है, जो डीसी के लिए एक फ्रंट-एंड है, जो यूनिक्स और प्लान 9 तंत्र में मौजूद है। दूसरा मुफ्त सॉफ्टवेयर जीएनयू बीसी है, जिसे पहली बार 1991 में फिलिप ए. नेल्सन द्वारा जारी किया गया था। जीएनयू कार्यान्वयन में पॉज़िक्स के मानक के अलावा कई एक्सटेंशन हैं और यह अब dc का फ्रंट-एंड नहीं है (यह एक बायटेकोड दुभाषिया है)। तीसरा 2003 में ओपनबीएसडी द्वारा पुन: कार्यान्वयन है।
1991 में, पॉज़िक्स ने बीसी को सख्ती से परिभाषित और मानकीकृत किया। इस मानक के तीन कार्यान्वयन आज भी मौजूद हैं, पहला पारंपरिक यूनिक्स कार्यान्वयन है, जो डीसी के लिए एक फ्रंट-एंड है, जो यूनिक्स और प्लान 9 तंत्र में मौजूद है। दूसरा मुफ्त सॉफ्टवेयर जीएनयू बीसी है, जिसे पहली बार 1991 में फिलिप ए. नेल्सन द्वारा जारी किया गया था। जीएनयू कार्यान्वयन में पॉज़िक्स के मानक के अलावा कई एक्सटेंशन हैं और यह अब डीसी का फ्रंट-एंड नहीं है (यह एक बायटेकोड दुभाषिया है)। तीसरा 2003 में ओपनबीएसडी द्वारा पुन: कार्यान्वयन है।


== कार्यान्वयन ==
== कार्यान्वयन ==
Line 30: Line 30:
पॉज़िक्स मानकीकृत बीसी भाषा पारंपरिक रूप से डीसी (कंप्यूटर प्रोग्राम) प्रोग्रामिंग भाषा में एक प्रोग्राम के रूप में लिखी जाती है, जो डीसी भाषा की सुविधाओं के लिए डीसी के संक्षिप्त वाक्यविन्यास की जटिलताओं के बिना उच्च स्तर की पहुंच प्रदान करती है।
पॉज़िक्स मानकीकृत बीसी भाषा पारंपरिक रूप से डीसी (कंप्यूटर प्रोग्राम) प्रोग्रामिंग भाषा में एक प्रोग्राम के रूप में लिखी जाती है, जो डीसी भाषा की सुविधाओं के लिए डीसी के संक्षिप्त वाक्यविन्यास की जटिलताओं के बिना उच्च स्तर की पहुंच प्रदान करती है।


इस रूप में, बीसी भाषा में एकल-अक्षर चर (प्रोग्रामिंग), सरणी डेटा संरचना और फ़ंक्शन (प्रोग्रामिंग) नाम और अधिकांश मानक अंकगणितीय ऑपरेटर होते हैं, साथ ही परिचित नियंत्रण-प्रवाह निर्माण  (<code>'''if('''cond''')'''...</code>, <code>'''while('''cond''')'''...</code> तथा <code>'''for('''init''';'''cond''';'''inc''')'''...</code>) सी से। सी के विपरीत, एक <code>if</code>उपवाक्य का पालन एक <code>else</code> द्वारा नहीं किया जा सकता है।
इस रूप में, बीसी भाषा में एकल-अक्षर चर (प्रोग्रामिंग), सरणी डेटा संरचना और फलन (प्रोग्रामिंग) नाम और अधिकांश मानक अंकगणितीय संचालक होते हैं, साथ ही परिचित नियंत्रण-प्रवाह निर्माण  (<code>'''if('''cond''')'''...</code>, <code>'''while('''cond''')'''...</code> तथा <code>'''for('''init''';'''cond''';'''inc''')'''...</code>) सी से। सी के विपरीत, एक <code>if</code>उपवाक्य का पालन एक <code>else</code> द्वारा नहीं किया जा सकता है।


कार्यों को एक <code>define</code>संकेतशब्द का उपयोग करके परिभाषित किया गया है, और कोष्ठकों में वापसी मूल्य के बाद<code>returnका उपयोग करके उनसे मूल्य वापस किए जाते हैं।</code> <code>auto</code>संकेतशब्द (C में वैकल्पिक) का उपयोग किसी चर को किसी फ़ंक्शन के लिए स्थानीय घोषित करने के लिए किया जाता है।
कार्यों को एक <code>define</code>संकेतशब्द का उपयोग करके परिभाषित किया गया है, और कोष्ठकों में वापसी मूल्य के बाद<code>return का उपयोग करके उनसे मूल्य वापस किए जाते हैं।</code> <code>auto</code>संकेतशब्द (C में वैकल्पिक) का उपयोग किसी चर को किसी फलन के लिए स्थानीय घोषित करने के लिए किया जाता है।


सभी संख्याएँ और चर सामग्री आरबिटर-परिशुद्ध संख्याएँ हैं जिनकी सटीकता (दशमलव स्थानों में) वैश्विक <code>scale द्वारा निर्धारित की जाती है।</code>
सभी संख्याएँ और चर सामग्री यादृच्छिक-परिशुद्ध संख्याएँ हैं जिनकी सटीकता (दशमलव स्थानों में) वैश्विक <code>scale द्वारा निर्धारित की जाती है।</code>


<code>आरक्षित ibase</code>(इनपुट बेस) और<code>obase</code>(आउटपुट बेस) चर को सेट करके इनपुट का संख्यात्मक आधार (इंटरैक्टिव मोड में), आउटपुट और प्रोग्राम स्थिरांक निर्दिष्ट किए जा सकते हैं।
<code>आरक्षित ibase</code>(निवेश बेस) और<code>obase</code>(निर्गम बेस) चर को व्यवस्थित करके निवेश का संख्यात्मक आधार (अन्योन्यक्रिया अवस्था में), निर्गम और प्रोग्राम स्थिरांक निर्दिष्ट किए जा सकते हैं।


गणना के परिणाम को जानबूझकर एक चर के लिए निर्दिष्ट नहीं करके आउटपुट उत्पन्न किया जाता है।
गणना के परिणाम को जानबूझकर एक चर के लिए निर्दिष्ट नहीं करके निर्गम उत्पन्न किया जाता है।


<code>टिप्पणियों को बीसी कोड में सी /*</code>तथा<code>*/</code>(शुरुआत और अंत टिप्पणी) प्रतीकों का उपयोग करके जोड़ा जा सकता है।
<code>टिप्पणियों को बीसी कोड में सी /*</code>तथा<code>*/</code>(शुरुआत और अंत टिप्पणी) प्रतीकों का उपयोग करके जोड़ा जा सकता है।
Line 44: Line 44:
====गणितीय संचालक ====
====गणितीय संचालक ====


===बिल्कुल सी==के रूप में
बिल्कुल C के रूप में
निम्नलिखित पॉज़िक्स बीसी ऑपरेटर (प्रोग्रामिंग) बिल्कुल उनके सी समकक्षों की तरह व्यवहार करते हैं:
 
निम्नलिखित पॉज़िक्स बीसी ऑपरेटर (प्रोग्रामिंग) बिल्कुल उनके सी समकक्षों की तरह व्यवहार करते हैं-


  + - * /
  + - * /
Line 53: Line 54:
  ( ) [] { }
  ( ) [] { }


=== सी === के समान
के समान
मॉड्यूलस ऑपरेटर ऑपरेटर, <code>%</code> तथा <code>%=</code> बिल्कुल अपने C समकक्षों की तरह ही व्यवहार करें जब वैश्विक<code>scale</code>वेरिएबल को 0 पर सेट किया गया है, यानी सभी गणनाएँ केवल-पूर्णांक हैं। अन्यथा गणना उचित पैमाने के साथ की जाती है। <code>a%b</code> की तरह परिभाषित किया गया है <code>a-(a/b)*b</code>. उदाहरण:
 
<वाक्यविन्यास लैंग = कंसोल हाइलाइट = 6,8,10>
मॉड्यूलस ऑपरेटर , <code>%</code> तथा <code>%=</code> बिल्कुल अपने C समकक्षों की तरह ही व्यवहार करते हैं जब वैश्विक<code>scale</code> चर को 0 पर व्यवस्थित किया जाता है, यानी सभी गणनाएँ केवल-पूर्णांक हैं। अन्यथा गणना उचित पैमाने के साथ की जाती है। <code>a%b</code> को <code>a-(a/b)*b</code> के रूप में परिभाषित किया गया है। उदाहरण:
$ ई.पू
 
बीसी 1.06
$ bc
कॉपीराइट 1991-1994, 1997, 1998, 2000 फ्री सॉफ्टवेयर फाउंडेशन, इंक।
 
यह बिल्कुल मुफ्त सॉफ्टवेयर है जिसमें बिल्कुल कोई वारंटी नहीं है।
bc 1.06
विवरण के लिए 'वारंटी' टाइप करें।
 
पैमाना = 0; 5% 3
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
 
This is free software with ABSOLUTELY NO WARRANTY.
 
For details type `warranty'.
scale=0; 5%3
 
2
2
पैमाना = 1; 5% 3
 
scale=1; 5%3
 
.2
.2
पैमाना = 20; 5% 3
 
scale=20; 5%3
 
.00000000000000000002
.00000000000000000002
</वाक्यविन्यास हाइलाइट>


== सी == के साथ संघर्ष
के साथ संघर्ष
 
संचालक
संचालक


  ^ ^ =
  ^ ^ =


सतही रूप से C बिटवाइज़ एक्सक्लूसिव-या ऑपरेटर्स से मिलते जुलते हैं, लेकिन वास्तव में bc पूर्णांक घातांक ऑपरेटर हैं।
सतही रूप से C बिटवाइज़ एक्सक्लूसिव-या संचालक से मिलते जुलते हैं, लेकिन वास्तव में बीसी पूर्णांक घातांक संचालक हैं।


विशेष रूप से ध्यान दें, का उपयोग <code>^</code> नकारात्मक संख्या वाला ऑपरेटर सी ऑपरेटर प्राथमिकता का पालन नहीं करता है। <code>-2^2</code> -4 के बजाय बीसी के अंतर्गत 4 का उत्तर देता है।
विशेष रूप से ध्यान दें, ऋणात्मक संख्या वाले <code>^</code> संचालक का उपयोग सी संचालक प्राथमिकता का पालन नहीं करता है।<code>-2^2</code> -4 के बजाय बीसी के अंतर्गत 4 का उत्तर देता है।


=== सी === के सापेक्ष लापता ऑपरेटर
सी के सापेक्ष अनुपस्थित संचालक
बिटवाइज़ ऑपरेशन, बूलियन लॉजिक और सशर्त (प्रोग्रामिंग) ऑपरेटर:


  और | ^ और& ||
बिटवाइज़ संचालन, बूलियन लॉजिक और सशर्त (प्रोग्रामिंग) संचालक:
&= |= ^= &&= ||=
 
  << >>
  &    |     ^     &&   ||                                                                                                                     &=   |=   ^=   &&=   ||=
  <<= >>=
  <<   >>
  <<=   >>=
  ?:
  ?:


पॉज़िक्स बीसी में उपलब्ध नहीं हैं।
पॉज़िक्स बीसी में उपलब्ध नहीं हैं।


==== बिल्ट-इन फंक्शन्स ====
==== बिल्ट-इन फंक्शन्स (अंतर्निहित फलन) ====
<code>sqrt()</code>वर्गमूल की गणना के लिए कार्य पॉज़िक्स बीसी का एकमात्र अंतर्निहित गणितीय कार्य है। अन्य कार्य बाहरी मानक पुस्तकालय में उपलब्ध हैं।
<code>sqrt()</code> वर्गमूल की गणना के लिए , पॉज़िक्स बीसी का एकमात्र अंतर्निहित गणितीय कार्य है। अन्य कार्य बाहरी मानक पुस्तकालय में उपलब्ध हैं।


<code>scale()</code>सटीकता निर्धारित करने के लिए कार्य (जैसा कि<code>scale</code>चर) इसके तर्क और<code>length()</code>इसके तर्क में महत्वपूर्ण दशमलव अंकों की संख्या निर्धारित करने के लिए कार्य भी अंतर्निहित हैं।
<code>scale()</code>सटीकता निर्धारित करने के लिए (जैसा कि<code>scale</code>चर) इसके तर्क और<code>length()</code>इसके तर्क में महत्वपूर्ण दशमलव अंकों की संख्या निर्धारित करने के लिए कार्य भी अंतर्निहित हैं।


==== मानक पुस्तकालय कार्य ====
==== मानक पुस्तकालय कार्य ====
बीसी की मानक गणित लाइब्रेरी (-एल विकल्प के साथ परिभाषित) में साइन, कोसाइन, आर्कटेंजेंट, प्राकृतिक लॉगरिदम, एक्सपोनेंशियल फ़ंक्शन और दो पैरामीटर बेसेल फ़ंक्शन 'जे' की गणना के लिए फ़ंक्शन शामिल हैं। इनका उपयोग करके अधिकांश मानक गणितीय कार्यों (अन्य व्युत्क्रम त्रिकोणमितीय कार्यों सहित) का निर्माण किया जा सकता है। कई अन्य कार्यों के कार्यान्वयन के लिए बाहरी लिंक देखें।
बीसी की मानक गणित लाइब्रेरी (-एल विकल्प के साथ परिभाषित) में ज्या, कोज्या, स्पर्शरेखा, प्राकृतिक लघुगणक, घातीय कार्य और दो पैरामीटर बेसेल फलन 'जे' की गणना के लिए फलन शामिल हैं। इनका उपयोग करके अधिकांश मानक गणितीय कार्यों (अन्य व्युत्क्रम त्रिकोणमितीय कार्यों सहित) का निर्माण किया जा सकता है। कई अन्य कार्यों के कार्यान्वयन के लिए बाहरी लिंक देखें।
{| class="wikitable"
{| class="wikitable"
|+The bc standard library<ref name=":0">{{man|cu|bc|SUS|arbitrary-precision arithmetic language}}</ref>
|+बीसी मानक पुस्तकालय<ref name=":0">{{man|cu|bc|SUS|arbitrary-precision arithmetic language}}</ref>
!bc command
!बीसी कमांड
!Function
!फंक्शन
!Description
!विवरण
|-
|-
|<code>s(x)</code>
|<code>s(x)</code>
|[[Sine]]
|साइन
|Takes ''x'', an angle in [[radian]]s
|टेक्स  x, ऍन   एंगल  इन  रेडियंस
|-
|-
|<code>c(x)</code>
|<code>c(x)</code>
|[[Cosine]]
|कोसाइन
|Takes ''x'', an angle in radians
|टेक्स  x, ऍन   एंगल  इन  रेडियंस
|-
|-
|<code>a(x)</code>
|<code>a(x)</code>
|[[Arctangent]]
|आर्कटैंजेंट
|Returns radians
|रिटर्न्स  रेडियंस
|-
|-
|<code>l(x)</code>
|<code>l(x)</code>
|[[Natural logarithm]]
|नेचुरल लोगरिथ्म
|
|
|-
|-
|<code>e(x)</code>
|<code>e(x)</code>
|[[Exponential function]]
|एक्सपोनेंशियल  फंक्शन
|  
|  
|-
|-
|<code>j(n,x)</code>
|<code>j(n,x)</code>
|[[Bessel function]]
|बेसेल फंक्शन
|Returns the order-''n'' Bessel function of ''x''.
|रिटर्न्स  द आर्डर -n बेसेल  फंक्शन  ऑफ़  x.
|}
|}
-l विकल्प स्केल को 20 में बदल देता है,<ref name=":0" />इसलिए मोडुलो जैसी चीजें अप्रत्याशित रूप से काम कर सकती हैं। उदाहरण के लिए, लेखन <code>bc -l</code> और फिर आदेश <code>print 3%2</code> आउटपुट 0. लेकिन लेखन <code>scale=0</code> बाद में <code>bc -l</code> और फिर आदेश <code>print 3%2</code> आउटपुट 1 होगा।
-l विकल्प स्केल को 20 में बदल देता है,<ref name=":0" />इसलिए मोडुलो जैसी चीजें अप्रत्याशित रूप से काम कर सकती हैं। उदाहरण के लिए, लेखन <code>bc -l</code> और फिर आदेश <code>print 3%2</code> निर्गम 0। लेकिन लेखन <code>scale=0</code> बाद में <code>bc -l</code> और फिर आदेश <code>print 3%2</code> निर्गम 1 होगा।


===योजना 9 ई.पू.===
===योजना 9 ई.पू.===
बेल लैब्स बीसी से योजना 9 POSIX बीसी के समान है लेकिन एक अतिरिक्त के लिए<code>print</code>बयान।
बीसी से योजना 9 पॉज़िक्स बीसी के समान है लेकिन एक अतिरिक्त <code>print</code>कथन के लिए।


=== जीएनयू बीसी ===
=== जीएनयू बीसी ===
जीएनयू बीसी पॉज़िक्स मानक से निकला है और इसमें कई संवर्द्धन शामिल हैं। यह POSIX मानक के dc-आधारित कार्यान्वयन से पूरी तरह से अलग है और इसके बजाय C में लिखा गया है। फिर भी, यह पूरी तरह से पीछे की ओर संगत है क्योंकि सभी POSIX bc प्रोग्राम GNU bc प्रोग्राम के रूप में अपरिवर्तित चलेंगे।
जीएनयू बीसी पॉज़िक्स मानक से निकला है और इसमें कई संवर्द्धन शामिल हैं। यह पॉज़िक्स मानक के डीसी -आधारित कार्यान्वयन से पूरी तरह से अलग है और इसके बजाय C में लिखा गया है। फिर भी, यह पूरी तरह से पीछे की ओर संगत है क्योंकि सभी पॉज़िक्स बीसी प्रोग्राम जीएनयू बीसी प्रोग्राम के रूप में अपरिवर्तित चलेंगे।


जीएनयू बीसी चर, सरणी और फ़ंक्शन नामों में एक से अधिक वर्ण हो सकते हैं, कुछ और ऑपरेटरों को सी से शामिल किया गया है, और विशेष रूप से, एक<code>if</code>खंड एक द्वारा पीछा किया जा सकता है<code>else</code>.
जीएनयू बीसी चर, सरणी और फलन के नामों में एक से अधिक वर्ण हो सकते हैं, कुछ और संचालकों को सी से शामिल किया गया है, और विशेष रूप से, एक<code>if</code>क्लॉज़ का <code>else</code>के द्वारा अनुगमन किया जा सकता है।


आउटपुट या तो जानबूझकर एक चर (POSIX तरीका) की गणना के परिणाम को निर्दिष्ट नहीं करके या जोड़े गए का उपयोग करके प्राप्त किया जाता है<code>print</code>बयान।
निर्गम या तो विचारपूर्वक  एक चर (पॉज़िक्स तरीका) की गणना के परिणाम को निर्दिष्ट नहीं करके या जोड़े गए <code>print</code>कथन का उपयोग करके प्राप्त किया जाता है।


इसके अलावा, <code>read</code>स्टेटमेंट किसी संख्या के इंटरएक्टिव इनपुट को रनिंग कैलकुलेशन में अनुमति देता है।
इसके अलावा, एक <code>read</code>कथन किसी संख्या के पारस्परिक निवेश को संचालन गणना में अनुमति देता है।


सी-शैली टिप्पणियों के अलावा, a<code>#</code>चरित्र इसके बाद सब कुछ का कारण बनेगा जब तक कि अगली नई-पंक्ति को अनदेखा नहीं किया जाएगा।
सी-शैली टिप्पणियों के अलावा, एक <code>#</code>चरित्र इसके बाद सब कुछ का कारण बनेगा जब तक कि अगली नई-पंक्ति को अनदेखा नहीं किया जाएगा।


अंतिम गणना का मान हमेशा अतिरिक्त बिल्ट-इन में संग्रहीत होता है<code>last</code>चर।
अंतिम गणना का मान हमेशा <code>last</code>चर के अतिरिक्त अंतः संग्रहीत होता है।


====अतिरिक्त ऑपरेटर्स====
====अतिरिक्त संचालक====
POSIX बीसी में निम्नलिखित लॉजिकल ऑपरेटर अतिरिक्त हैं:
पॉज़िक्स बीसी में निम्नलिखित लॉजिकल संचालक अतिरिक्त हैं-


  && || !
  && || !


वे सशर्त बयानों में उपयोग के लिए उपलब्ध हैं (जैसे कि एक के भीतर<code>if</code>बयान)। हालाँकि, ध्यान दें कि अभी भी कोई समतुल्य बिटवाइज़ या असाइनमेंट ऑपरेशन नहीं हैं।
वे सशर्त कथनो  में उपयोग के लिए उपलब्ध हैं (जैसे कि एक के भीतर<code>if</code>बयान)। हालाँकि, ध्यान दें कि अभी भी कोई समतुल्य बिटवाइज़ या असाइनमेंट संचालन नहीं हैं।


==== कार्य ====
==== कार्य ====
जीएनयू बीसी में उपलब्ध सभी कार्य POSIX से विरासत में मिले हैं। GNU वितरण के साथ मानक के रूप में आगे कोई कार्य प्रदान नहीं किया गया है।
जीएनयू बीसी में उपलब्ध सभी कार्य पॉज़िक्स से पूर्व पीढ़ियों में मिले हैं। जीएनयू वितरण के साथ मानक के रूप में आगे कोई कार्य प्रदान नहीं किया गया है।


== उदाहरण कोड ==
== उदाहरण कोड ==
चूंकि ई.पू <code>^</code> ऑपरेटर केवल एक पूर्णांक शक्ति को उसके दाईं ओर अनुमति देता है, एक बीसी उपयोगकर्ता द्वारा लिखे जाने वाले पहले कार्यों में से एक फ्लोटिंग-पॉइंट एक्सपोनेंट वाला एक पावर फ़ंक्शन है। नीचे दिए गए दोनों मानते हैं कि मानक पुस्तकालय को शामिल किया गया है:
चूंकि बीसी <code>^</code> संचालक केवल एक पूर्णांक घात को उसके दाईं ओर अनुमति देता है, एक बीसी उपयोगकर्ता द्वारा लिखे जाने वाले पहले कार्यों में से एक फ्लोटिंग-पॉइंट एक्सपोनेंट वाला एक घातांक वाला फलन है। नीचे दिए गए दोनों मानते हैं कि मानक पुस्तकालय को शामिल किया गया है:


=== पॉज़िक्स बीसी === में एक पावर फ़ंक्शन
पॉज़िक्स बीसी में एक घातांक  फलन
<वाक्यविन्यास लैंग = बीसी>
  /* A function to return the integer part of x */                                                                                                        define i(x) {
  / * x का पूर्णांक भाग वापस करने के लिए एक फ़ंक्शन * /
    auto s
परिभाषित मैं (एक्स) {
    s = scale
    ऑटो एस
    scale = 0
    एस = स्केल
    x /= 1  /* round x down */
    पैमाना = 0
    scale = s
    x /= 1 /* राउंड x डाउन */
    return (x)
    स्केल = एस
  }
    वापसी (एक्स)
   
  /* Use the fact that x^y == e^(y*log(x)) */
  define p(x,y) {
    if (y == i(y)) {
        return (x ^ y)
    }
    return ( e( y * l(x) ) )
  }
 
===10000 अंकों तक π की गणना ===
अंतर्निहित व्युत्क्रम त्रिकोणमितीय फलन  का उपयोग करके पाई की गणना करें,
  $ bc -lq
 
scale=10000
4*a(1) # The atan of 1 is 45 degrees, which is pi/4 in radians.
        # This may take several minutes to calculate.
 
=== एक अनुवादित सी फलन ===
चूंकि बीसी का वाक्य विन्यास सी (प्रोग्रामिंग भाषा) के समान है, सी में लिखे गए प्रकाशित संख्यात्मक कार्यों को अक्सर आसानी से बीसी में अनुवादित किया जा सकता है, जो तुरंत बीसी की मनमानी सटीकता प्रदान करता है। उदाहरण के लिए, जर्नल ऑफ स्टैटिस्टिकल सॉफ्टवेयर (जुलाई 2004, वॉल्यूम 11, अंक 5) में, जॉर्ज मार्सग्लिया ने सामान्य वितरण के लिए निम्नलिखित सी कोड प्रकाशित किया:
   
बीसी के विभिन्न वाक्य विन्यास को समायोजित करने के लिए कुछ आवश्यक परिवर्तनों के साथ, और यह महसूस करते हुए कि निरंतर 0.9189... वास्तव में लॉग (2 * पीआई)/2 है, इसे निम्नलिखित जीएनयू बीसी कोड में अनुवादित किया जा सकता है:
    define phi(x) {                                                                                                                                 auto s,t,b,q,i,const
    s=x; t=0; b=x; q=x*x; i=1
    while(s!=t)
        s=(t=s)+(b*=q/(i+=2))
    const=0.5*l(8*a(1))  # 0.91893...
    return .5+s*e(-.5*q-const)
  }
  }
== शेल स्क्रिप्ट्स में बीसी का उपयोग ==
एक पाइप (यूनिक्स) के माध्यम से इनपुट के साथ, बीसी का उपयोग गैर-संवादात्मक रूप से किया जा सकता है। यह शेल स्क्रिप्ट के अंदर उपयोगी है। उदाहरण के लिए


/* इस तथ्य का प्रयोग करें कि x^y == e^(y*log(x)) */
$ result=$(echo "scale=2; 5 * 7 /3;" | bc)
परिभाषित पी (एक्स, वाई) {
 
    अगर (वाई == मैं (वाई)) {
$ echo $result
      वापसी (एक्स ^ वाई)
 
    }
11.66
    वापसी (ई (वाई * एल (एक्स)))
 
}
इसके विपरीत, ध्यान दें कि बैश शेल केवल पूर्णांक अंकगणित करता है, जैसे:
</वाक्यविन्यास हाइलाइट>


===10000 अंकों तक π की गणना ===
$ result=$((5 * 7 /3))
अंतर्निहित व्युत्क्रम त्रिकोणमितीय फ़ंक्शन फ़ंक्शन का उपयोग करके पाई की गणना करें, {{mono|a()}}:
<वाक्यविन्यास लैंग = कंसोल हाइलाइट = 3>
$ बीसी-एलक्यू
पैमाना = 10000
4*a(1) # 1 का अतान 45 डिग्री है, जो रेडियन में pi/4 है।
      # इसकी गणना करने में कई मिनट लग सकते हैं।
</वाक्यविन्यास हाइलाइट>


=== एक अनुवादित सी फ़ंक्शन ===
$ echo $result
चूंकि बीसी का सिंटैक्स सी (प्रोग्रामिंग भाषा) के समान है, सी में लिखे गए प्रकाशित संख्यात्मक कार्यों को अक्सर आसानी से बीसी में अनुवादित किया जा सकता है, जो तुरंत बीसी की मनमानी सटीकता प्रदान करता है। उदाहरण के लिए, जर्नल ऑफ स्टैटिस्टिकल सॉफ्टवेयर (जुलाई 2004, वॉल्यूम 11, अंक 5) में, जॉर्ज मार्सग्लिया ने सामान्य वितरण के लिए निम्नलिखित सी कोड प्रकाशित किया:


<वाक्यविन्यास प्रकाश लैंग = सी>
11
डबल फी (डबल एक्स)
{
    लंबा डबल s=x,t=0,b=x,q=x*x,i=1;
    जबकि (एस! = टी)
        s=(t=s)+(b*=q/(i+=2));
    रिटर्न .5+s*exp(-.5*q-.91893853320467274178L);
}
</वाक्यविन्यास हाइलाइट>


बीसी के विभिन्न सिंटैक्स को समायोजित करने के लिए कुछ आवश्यक परिवर्तनों के साथ, और यह महसूस करते हुए कि निरंतर 0.9189... वास्तव में लॉग (2 * पीआई)/2 है, इसे निम्नलिखित जीएनयू बीसी कोड में अनुवादित किया जा सकता है:
कोई यहाँ-स्ट्रिंग मुहावरे (बैश, केएसएच, सीएसएच में) का भी उपयोग कर सकता है:


<वाक्यविन्यास लैंग = बीसी>
$ bc -l <<< "5*7/3"
परिभाषित फाई (एक्स) {
    ऑटो एस, टी, बी, क्यू, आई, कास्ट
    एस = एक्स; टी = 0; बी = एक्स; क्यू = एक्स * एक्स; मैं = 1
    जबकि (एस! = टी)
        s=(t=s)+(b*=q/(i+=2))
    const=0.5*l(8*a(1)) # 0.91893...
    रिटर्न .5+s*e(-.5*q-const)
}
</वाक्यविन्यास हाइलाइट>


== शेल स्क्रिप्ट्स में बीसी का उपयोग ==
11.66666666666666666666
एक पाइपलाइन (यूनिक्स) के माध्यम से इनपुट के साथ, बीसी का उपयोग गैर-संवादात्मक रूप से किया जा सकता है। यह शेल स्क्रिप्ट के अंदर उपयोगी है। उदाहरण के लिए:
<वाक्यविन्यास लैंग = कंसोल>
$ परिणाम = $ (इको स्केल = 2; 5 * 7 /3; | बीसी)
$ प्रतिध्वनि $ परिणाम
11.66
</वाक्यविन्यास हाइलाइट>
इसके विपरीत, ध्यान दें कि बैश (यूनिक्स शेल) केवल पूर्णांक अंकगणित करता है, जैसे:
<वाक्यविन्यास लैंग = कंसोल>
$ परिणाम = $ ((5 * 7/3))
$ प्रतिध्वनि $ परिणाम
1 1
</वाक्यविन्यास हाइलाइट>
कोई भी यहाँ दस्तावेज़ का उपयोग कर सकता है | यहाँ-स्ट्रिंग मुहावरा (बैश, ksh, csh में):
<वाक्यविन्यास लैंग = कंसोल>
$ बीसी -एल <<< 5*7/3
11.666666666666666666666
</वाक्यविन्यास हाइलाइट>


== यह भी देखें ==
== यह भी देखें ==
Line 250: Line 246:


==बाहरी संबंध==
==बाहरी संबंध==
{{Wikibooks|Guide to Unix|Commands}}
* [https://doi.acm.org/10.1145/152923.152925 Dittmer, I. 1993. Error in Unix commands dc and bc for multiple-precision-arithmetic. SIGNUM Newsl. 28, 2 (Apr. 1993), 8&ndash;11.]
* [https://doi.acm.org/10.1145/152923.152925 Dittmer, I. 1993. Error in Unix commands dc and bc for multiple-precision-arithmetic. SIGNUM Newsl. 28, 2 (Apr. 1993), 8&ndash;11.]
* [http://www.phodd.net/gnu-bc/ Collection of useful GNU bc functions]
* [http://www.phodd.net/gnu-bc/ Collection of useful GNU bc functions]
Line 259: Line 254:
** [https://web.archive.org/web/20160304092132/http://x-bc.sourceforge.net/extensions_bc.html extensions.bc] - contains functions of trigonometry, exponential functions, functions of number theory and some mathematical constants
** [https://web.archive.org/web/20160304092132/http://x-bc.sourceforge.net/extensions_bc.html extensions.bc] - contains functions of trigonometry, exponential functions, functions of number theory and some mathematical constants
** [https://web.archive.org/web/20160304081309/http://x-bc.sourceforge.net/scientific_constants_bc.html scientific_constants.bc] - contains particle masses, basic constants, such as speed of light in the vacuum and the gravitational constant
** [https://web.archive.org/web/20160304081309/http://x-bc.sourceforge.net/scientific_constants_bc.html scientific_constants.bc] - contains particle masses, basic constants, such as speed of light in the vacuum and the gravitational constant
{{Plan 9 commands}}


{{Unix commands}}
[[Category:Collapse templates]]
{{Plan 9 commands}}
[[Category:Created On 30/11/2022]]
[[Category: सॉफ्टवेयर कैलकुलेटर]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:क्रॉस-प्लेटफ़ॉर्म मुफ़्त सॉफ़्टवेयर]]
[[Category:क्रॉस-प्लेटफ़ॉर्म मुफ़्त सॉफ़्टवेयर]]
[[Category:मानक यूनिक्स कार्यक्रम]]
[[Category:मुफ्त गणित सॉफ्टवेयर]]
[[Category:मुफ्त गणित सॉफ्टवेयर]]
[[Category: संख्यात्मक प्रोग्रामिंग भाषाएं]]
[[Category:यूनिक्स SUS2008 उपयोगिताओं]]
[[Category:मानक यूनिक्स कार्यक्रम]]
[[Category: यूनिक्स SUS2008 उपयोगिताओं]]
[[Category:योजना 9 आदेश]]
[[Category:योजना 9 आदेश]]
 
[[Category:संख्यात्मक प्रोग्रामिंग भाषाएं]]
 
[[Category:सॉफ्टवेयर कैलकुलेटर]]
[[Category: Machine Translated Page]]
[[Category:Created On 30/11/2022]]

Latest revision as of 15:37, 31 August 2023

bc
Developer(s)बेल लैब्स के रॉबर्ट मॉरिस और लोरिंडा चेरी
Initial releaseTemplate:1975, 47-48 साल पहले
Operating systemयूनिक्स, यूनिक्स कि tarah, प्लान 9, फ्री DOS
Platformक्रॉस -प्लेटफार्म
Typeआज्ञा

बीसी, बेसिक कैलकुलेटर (सामान्य परिगणक) (प्रायः बेंच परिगणक के रूप में जाना जाता है) के लिए, सी (प्रोग्रामिंग भाषा) के समान शब्द योजना के साथ एक यादृच्छिक-परिशुद्धता परिगणक भाषा है। बीसी सामान्यतः गणितीय अंकन भाषा या एक अन्योन्यक्रिया गणितीय कोश के रूप में प्रयोग किया जाता है।

अवलोकन

यूनिक्स कमांड प्रॉम्प्ट पर कमांड बीसी लिखना और एक गणितीय अभिव्यक्ति दर्ज करना एक सामान्य पारस्परिक उपयोग है, जैसे (1 + 3) * 2, जिसके बाद 8 निर्गम होगा। जबकि बीसी अपने तरीके से सटीकता के साथ काम कर सकता है, यह वास्तव में दशमलव बिंदु के बाद शून्य अंकों के लिए चूक करता है, इसलिए अभिव्यक्ति 2/3 परिणाम 0 (परिणामों को छोटा कर दिया जाता है, गोल नहीं)। यह इस तथ्य से अनजान नए बीसी उपयोगकर्ताओं को आश्चर्यचकित कर सकता है। बीसी के लिए -l विकल्प व्यतिक्रम पैमाने पर (दशमलव बिंदु के बाद अंक) को 20 पर सेट करता है और भाषा में कई अतिरिक्त गणितीय कार्यों को जोड़ता है।

इतिहास

बीसी पहली बार 1975 में यूनिक्स के संस्करण 6 में दिखाई दिया। यह बेल लैब्स के लोरिंडा चेरी द्वारा डीसी (कंप्यूटर प्रोग्राम) के फ्रंट एंड के रूप में लिखा गया था, जो रॉबर्ट मॉरिस (क्रिप्टोग्राफर) और चेरी द्वारा लिखित एक यादृच्छिक-परिशुद्धता परिगणक है। डीसी ने रिवर्स पोलिश नोटेशन में निर्दिष्ट यादृच्छिक-परिशुद्ध संगणनाएँ कीं। बीसी ने एक साधारण संकलक (कोड की कुछ सौ पंक्तियों वाली एक एकल याक्क स्रोत फ़ाइल) के माध्यम से समान क्षमता के लिए एक पारंपरिक प्रोग्रामिंग-भाषा अंतरापृष्ठ प्रदान किया, जिसने सी (प्रोग्रामिंग भाषा)-जैसे वाक्य - विन्यास को डीसी संकेतन में परिवर्तित कर दिया और डीसी के माध्यम से परिणामों को पाइपड (यूनिक्स) कर दिया।

1991 में, पॉज़िक्स ने बीसी को सख्ती से परिभाषित और मानकीकृत किया। इस मानक के तीन कार्यान्वयन आज भी मौजूद हैं, पहला पारंपरिक यूनिक्स कार्यान्वयन है, जो डीसी के लिए एक फ्रंट-एंड है, जो यूनिक्स और प्लान 9 तंत्र में मौजूद है। दूसरा मुफ्त सॉफ्टवेयर जीएनयू बीसी है, जिसे पहली बार 1991 में फिलिप ए. नेल्सन द्वारा जारी किया गया था। जीएनयू कार्यान्वयन में पॉज़िक्स के मानक के अलावा कई एक्सटेंशन हैं और यह अब डीसी का फ्रंट-एंड नहीं है (यह एक बायटेकोड दुभाषिया है)। तीसरा 2003 में ओपनबीएसडी द्वारा पुन: कार्यान्वयन है।

कार्यान्वयन

पॉज़िक्स बीसी

पॉज़िक्स मानकीकृत बीसी भाषा पारंपरिक रूप से डीसी (कंप्यूटर प्रोग्राम) प्रोग्रामिंग भाषा में एक प्रोग्राम के रूप में लिखी जाती है, जो डीसी भाषा की सुविधाओं के लिए डीसी के संक्षिप्त वाक्यविन्यास की जटिलताओं के बिना उच्च स्तर की पहुंच प्रदान करती है।

इस रूप में, बीसी भाषा में एकल-अक्षर चर (प्रोग्रामिंग), सरणी डेटा संरचना और फलन (प्रोग्रामिंग) नाम और अधिकांश मानक अंकगणितीय संचालक होते हैं, साथ ही परिचित नियंत्रण-प्रवाह निर्माण (if(cond)..., while(cond)... तथा for(init;cond;inc)...) सी से। सी के विपरीत, एक ifउपवाक्य का पालन एक else द्वारा नहीं किया जा सकता है।

कार्यों को एक defineसंकेतशब्द का उपयोग करके परिभाषित किया गया है, और कोष्ठकों में वापसी मूल्य के बादreturn का उपयोग करके उनसे मूल्य वापस किए जाते हैं। autoसंकेतशब्द (C में वैकल्पिक) का उपयोग किसी चर को किसी फलन के लिए स्थानीय घोषित करने के लिए किया जाता है।

सभी संख्याएँ और चर सामग्री यादृच्छिक-परिशुद्ध संख्याएँ हैं जिनकी सटीकता (दशमलव स्थानों में) वैश्विक scale द्वारा निर्धारित की जाती है।

आरक्षित ibase(निवेश बेस) औरobase(निर्गम बेस) चर को व्यवस्थित करके निवेश का संख्यात्मक आधार (अन्योन्यक्रिया अवस्था में), निर्गम और प्रोग्राम स्थिरांक निर्दिष्ट किए जा सकते हैं।

गणना के परिणाम को जानबूझकर एक चर के लिए निर्दिष्ट नहीं करके निर्गम उत्पन्न किया जाता है।

टिप्पणियों को बीसी कोड में सी /*तथा*/(शुरुआत और अंत टिप्पणी) प्रतीकों का उपयोग करके जोड़ा जा सकता है।

गणितीय संचालक

बिल्कुल C के रूप में

निम्नलिखित पॉज़िक्स बीसी ऑपरेटर (प्रोग्रामिंग) बिल्कुल उनके सी समकक्षों की तरह व्यवहार करते हैं-

+ - * /
+= -= *= /=
++ -- < >
== != <= >=
( ) [] { }

C के समान

मॉड्यूलस ऑपरेटर , % तथा %= बिल्कुल अपने C समकक्षों की तरह ही व्यवहार करते हैं जब वैश्विकscale चर को 0 पर व्यवस्थित किया जाता है, यानी सभी गणनाएँ केवल-पूर्णांक हैं। अन्यथा गणना उचित पैमाने के साथ की जाती है। a%b को a-(a/b)*b के रूप में परिभाषित किया गया है। उदाहरण:

$ bc

bc 1.06

Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty'. scale=0; 5%3

2

scale=1; 5%3

.2

scale=20; 5%3

.00000000000000000002

C के साथ संघर्ष

संचालक

^ ^ =

सतही रूप से C बिटवाइज़ एक्सक्लूसिव-या संचालक से मिलते जुलते हैं, लेकिन वास्तव में बीसी पूर्णांक घातांक संचालक हैं।

विशेष रूप से ध्यान दें, ऋणात्मक संख्या वाले ^ संचालक का उपयोग सी संचालक प्राथमिकता का पालन नहीं करता है।-2^2 -4 के बजाय बीसी के अंतर्गत 4 का उत्तर देता है।

सी के सापेक्ष अनुपस्थित संचालक

बिटवाइज़ संचालन, बूलियन लॉजिक और सशर्त (प्रोग्रामिंग) संचालक:

&     |     ^     &&    ||                                                                                                                     &=    |=    ^=    &&=   ||=
<<    >>
<<=   >>=
?:

पॉज़िक्स बीसी में उपलब्ध नहीं हैं।

बिल्ट-इन फंक्शन्स (अंतर्निहित फलन)

sqrt() वर्गमूल की गणना के लिए , पॉज़िक्स बीसी का एकमात्र अंतर्निहित गणितीय कार्य है। अन्य कार्य बाहरी मानक पुस्तकालय में उपलब्ध हैं।

scale()सटीकता निर्धारित करने के लिए (जैसा किscaleचर) इसके तर्क औरlength()इसके तर्क में महत्वपूर्ण दशमलव अंकों की संख्या निर्धारित करने के लिए कार्य भी अंतर्निहित हैं।

मानक पुस्तकालय कार्य

बीसी की मानक गणित लाइब्रेरी (-एल विकल्प के साथ परिभाषित) में ज्या, कोज्या, स्पर्शरेखा, प्राकृतिक लघुगणक, घातीय कार्य और दो पैरामीटर बेसेल फलन 'जे' की गणना के लिए फलन शामिल हैं। इनका उपयोग करके अधिकांश मानक गणितीय कार्यों (अन्य व्युत्क्रम त्रिकोणमितीय कार्यों सहित) का निर्माण किया जा सकता है। कई अन्य कार्यों के कार्यान्वयन के लिए बाहरी लिंक देखें।

बीसी मानक पुस्तकालय[1]
बीसी कमांड फंक्शन विवरण
s(x) साइन टेक्स  x, ऍन   एंगल  इन  रेडियंस
c(x) कोसाइन टेक्स  x, ऍन   एंगल  इन  रेडियंस
a(x) आर्कटैंजेंट रिटर्न्स  रेडियंस
l(x) नेचुरल लोगरिथ्म
e(x) एक्सपोनेंशियल  फंक्शन
j(n,x) बेसेल फंक्शन रिटर्न्स  द आर्डर -n बेसेल  फंक्शन  ऑफ़  x.

-l विकल्प स्केल को 20 में बदल देता है,[1]इसलिए मोडुलो जैसी चीजें अप्रत्याशित रूप से काम कर सकती हैं। उदाहरण के लिए, लेखन bc -l और फिर आदेश print 3%2 निर्गम 0। लेकिन लेखन scale=0 बाद में bc -l और फिर आदेश print 3%2 निर्गम 1 होगा।

योजना 9 ई.पू.

बीसी से योजना 9 पॉज़िक्स बीसी के समान है लेकिन एक अतिरिक्त printकथन के लिए।

जीएनयू बीसी

जीएनयू बीसी पॉज़िक्स मानक से निकला है और इसमें कई संवर्द्धन शामिल हैं। यह पॉज़िक्स मानक के डीसी -आधारित कार्यान्वयन से पूरी तरह से अलग है और इसके बजाय C में लिखा गया है। फिर भी, यह पूरी तरह से पीछे की ओर संगत है क्योंकि सभी पॉज़िक्स बीसी प्रोग्राम जीएनयू बीसी प्रोग्राम के रूप में अपरिवर्तित चलेंगे।

जीएनयू बीसी चर, सरणी और फलन के नामों में एक से अधिक वर्ण हो सकते हैं, कुछ और संचालकों को सी से शामिल किया गया है, और विशेष रूप से, एकifक्लॉज़ का elseके द्वारा अनुगमन किया जा सकता है।

निर्गम या तो विचारपूर्वक एक चर (पॉज़िक्स तरीका) की गणना के परिणाम को निर्दिष्ट नहीं करके या जोड़े गए printकथन का उपयोग करके प्राप्त किया जाता है।

इसके अलावा, एक readकथन किसी संख्या के पारस्परिक निवेश को संचालन गणना में अनुमति देता है।

सी-शैली टिप्पणियों के अलावा, एक #चरित्र इसके बाद सब कुछ का कारण बनेगा जब तक कि अगली नई-पंक्ति को अनदेखा नहीं किया जाएगा।

अंतिम गणना का मान हमेशा lastचर के अतिरिक्त अंतः संग्रहीत होता है।

अतिरिक्त संचालक

पॉज़िक्स बीसी में निम्नलिखित लॉजिकल संचालक अतिरिक्त हैं-

&& || !

वे सशर्त कथनो में उपयोग के लिए उपलब्ध हैं (जैसे कि एक के भीतरifबयान)। हालाँकि, ध्यान दें कि अभी भी कोई समतुल्य बिटवाइज़ या असाइनमेंट संचालन नहीं हैं।

कार्य

जीएनयू बीसी में उपलब्ध सभी कार्य पॉज़िक्स से पूर्व पीढ़ियों में मिले हैं। जीएनयू वितरण के साथ मानक के रूप में आगे कोई कार्य प्रदान नहीं किया गया है।

उदाहरण कोड

चूंकि बीसी ^ संचालक केवल एक पूर्णांक घात को उसके दाईं ओर अनुमति देता है, एक बीसी उपयोगकर्ता द्वारा लिखे जाने वाले पहले कार्यों में से एक फ्लोटिंग-पॉइंट एक्सपोनेंट वाला एक घातांक वाला फलन है। नीचे दिए गए दोनों मानते हैं कि मानक पुस्तकालय को शामिल किया गया है:

पॉज़िक्स बीसी में एक घातांक फलन

 /* A function to return the integer part of x */                                                                                                         define i(x) {
    auto s
    s = scale
    scale = 0
    x /= 1   /* round x down */
    scale = s
    return (x)
 }

 /* Use the fact that x^y == e^(y*log(x)) */
 define p(x,y) {
    if (y == i(y)) {
       return (x ^ y)
    }
    return ( e( y * l(x) ) )
 }

10000 अंकों तक π की गणना

अंतर्निहित व्युत्क्रम त्रिकोणमितीय फलन का उपयोग करके पाई की गणना करें,

 $ bc -lq
scale=10000
4*a(1) # The atan of 1 is 45 degrees, which is pi/4 in radians.
       # This may take several minutes to calculate.

एक अनुवादित सी फलन

चूंकि बीसी का वाक्य विन्यास सी (प्रोग्रामिंग भाषा) के समान है, सी में लिखे गए प्रकाशित संख्यात्मक कार्यों को अक्सर आसानी से बीसी में अनुवादित किया जा सकता है, जो तुरंत बीसी की मनमानी सटीकता प्रदान करता है। उदाहरण के लिए, जर्नल ऑफ स्टैटिस्टिकल सॉफ्टवेयर (जुलाई 2004, वॉल्यूम 11, अंक 5) में, जॉर्ज मार्सग्लिया ने सामान्य वितरण के लिए निम्नलिखित सी कोड प्रकाशित किया:

बीसी के विभिन्न वाक्य विन्यास को समायोजित करने के लिए कुछ आवश्यक परिवर्तनों के साथ, और यह महसूस करते हुए कि निरंतर 0.9189... वास्तव में लॉग (2 * पीआई)/2 है, इसे निम्नलिखित जीएनयू बीसी कोड में अनुवादित किया जा सकता है:

   define phi(x) {                                                                                                                                 auto s,t,b,q,i,const
    s=x; t=0; b=x; q=x*x; i=1
    while(s!=t)
        s=(t=s)+(b*=q/(i+=2))
    const=0.5*l(8*a(1))   # 0.91893...
    return .5+s*e(-.5*q-const)
}

शेल स्क्रिप्ट्स में बीसी का उपयोग

एक पाइप (यूनिक्स) के माध्यम से इनपुट के साथ, बीसी का उपयोग गैर-संवादात्मक रूप से किया जा सकता है। यह शेल स्क्रिप्ट के अंदर उपयोगी है। उदाहरण के लिए

$ result=$(echo "scale=2; 5 * 7 /3;" | bc)

$ echo $result

11.66

इसके विपरीत, ध्यान दें कि बैश शेल केवल पूर्णांक अंकगणित करता है, जैसे:

$ result=$((5 * 7 /3))

$ echo $result

11

कोई यहाँ-स्ट्रिंग मुहावरे (बैश, केएसएच, सीएसएच में) का भी उपयोग कर सकता है:

$ bc -l <<< "5*7/3"

11.66666666666666666666

यह भी देखें

  • डीसी (कंप्यूटर प्रोग्राम)
  • सी (प्रोग्रामिंग भाषा)
  • हॉक (प्रोग्रामिंग भाषा)

संदर्भ

बाहरी संबंध

  1. 1.0 1.1 bc: arbitrary-precision arithmetic language – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group