आरपीएनट्यूटोरियल - क्लाउड में ऑनलाइन

यह कमांड आरपीएनट्यूटोरियल है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


आरपीएनट्यूटोरियल - स्टीव रेडर द्वारा आरआरडीटूल आरपीएन एक्सप्रेशंस पढ़ना

वर्णन


यह ट्यूटोरियल आपको सीडीईएफ में देखे गए आरआरडीटूल आरपीएन अभिव्यक्तियों को समझने में मदद करेगा
RRDtool ग्राफ़ के तर्क।

पढ़ना तुलना ऑपरेटरों


एलटी, एलई, जीटी, जीई और ईक्यू आरपीएन लॉजिक ऑपरेटर उतने पेचीदा नहीं हैं जितने दिखते हैं। इन
ऑपरेटर अपने से पहले वाले स्टैक पर (बाईं ओर) दो मानों पर कार्य करते हैं। इन दोनों को पढ़ें
मध्य में ऑपरेटर को सम्मिलित करते हुए स्टैक पर बाएँ से दाएँ मान डालें। यदि
परिणामी कथन सत्य है, तो स्टैक से तीन मानों को "1" से बदलें। अगर
यदि कथन गलत है, तो तीन मानों को "0" से बदलें।

उदाहरण के लिए, "2,1,GT" के बारे में सोचें। इस आरपीएन अभिव्यक्ति को "दो बड़े हैं" के रूप में पढ़ा जा सकता है
एक से?" उस प्रश्न का उत्तर "सत्य" है। इसलिए तीन मानों को प्रतिस्थापित किया जाना चाहिए
"1" के साथ. इस प्रकार RPN अभिव्यक्ति 2,1,GT का मूल्यांकन 1 होता है।

अब "2,1,LE" पर विचार करें। इस आरपीएन अभिव्यक्ति को "इससे दो कम या इसके बराबर है" के रूप में पढ़ा जा सकता है
एक?"। स्वाभाविक प्रतिक्रिया "नहीं" है और इस प्रकार आरपीएन अभिव्यक्ति 2,1,एलई का मूल्यांकन 0 है।

पढ़ना la IF ऑपरेटर


IF RPN लॉजिक ऑपरेटर सीधा भी हो सकता है। IF ऑपरेटरों को पढ़ने की कुंजी है
यह समझने के लिए कि पारंपरिक "यदि X की तुलना में Y अन्यथा Z" संकेतन का शर्त भाग है
*पहले ही* मूल्यांकन किया जा चुका है। इसलिए IF ऑपरेटर स्टैक पर केवल एक मान पर कार्य करता है: द
IF मान के बाईं ओर तीसरा मान। IF के बाईं ओर दूसरा मान
सत्य ("Y") शाखा से मेल खाता है। और IF के बाईं ओर पहला मान
झूठी ("Z") शाखा से मेल खाता है। आरपीएन अभिव्यक्ति "X,Y,Z,IF" को बाएं से पढ़ें
ठीक इसी प्रकार: "यदि X है तो Y अन्यथा Z"।

उदाहरण के लिए, "1,10,100,IF" पर विचार करें। यह मुझे अजीब लग रहा है. लेकिन जब मैंने पढ़ा "यदि 1 तो
10 अन्यथा 100" यह बिल्कुल स्पष्ट है: 1 सत्य है इसलिए उत्तर 10 है। ध्यान दें कि केवल शून्य है
असत्य; अन्य सभी मूल्य सत्य हैं। "2,20,200,IF" ("यदि 2 तो 20 अन्यथा 200") का मूल्यांकन किया जाता है
20. और "0,1,2,IF" ("यदि 0 है तो 1 अन्यथा 2) का मूल्यांकन 2 है।

ध्यान दें कि उपरोक्त उदाहरणों में से कोई भी वास्तव में संपूर्ण "यदि X है तो Y अन्यथा Z" का अनुकरण नहीं करता है।
कथन। ऐसा इसलिए है क्योंकि कंप्यूटर प्रोग्रामर इस कथन को "यदि कुछ शर्त" के रूप में पढ़ते हैं
फिर Y अन्यथा Z"। इसलिए LT, LE, के साथ-साथ IF ऑपरेटरों को पढ़ने में सक्षम होना महत्वपूर्ण है।
जीटी, जीई और ईक्यू ऑपरेटर।

कुछ उदाहरण


जबकि यौगिक अभिव्यक्तियाँ अत्यधिक जटिल दिख सकती हैं, उन्हें सुरुचिपूर्ण ढंग से माना जा सकता है
सरल। आरपीएन अभिव्यक्तियों को शीघ्रता से समझने के लिए, आपको मूल्यांकन के लिए एल्गोरिदम पता होना चाहिए
आरपीएन अभिव्यक्ति: एक ऑपरेटर की तलाश में बाईं से दाईं ओर खोजों को पुनरावृत्त करें।
जब यह मिल जाए, तो ऑपरेटर और कुछ संख्या में मानों को पॉप करके उस ऑपरेटर को लागू करें
(और परिभाषा के अनुसार, ऑपरेटर नहीं) स्टैक से बाहर।

उदाहरण के लिए, स्टैक "1,2,3,+,+" का मूल्यांकन पहले चरण के दौरान "2,3,+" ("2+3" के रूप में) किया जाता है।
पुनरावृत्ति और इसे 5 से प्रतिस्थापित किया जाता है। इसका परिणाम स्टैक "1,5,+" में होता है। अंततः, "1,5,+" है
मूल्यांकन के परिणामस्वरूप उत्तर 6 आया। सुविधा के लिए, इस सेट को लिखना उपयोगी है
संचालन इस प्रकार है:

1) 1,2,3,+,+ का मान 2,3,+ = 5 है परिणाम 1,5,+ है
2) 1,5,+ eval 1,5 है,+ = 6 परिणाम 6 है
3) 6

आइए एकाधिक के साथ कुछ जटिल आरपीएन अभिव्यक्तियों को आसानी से हल करने के लिए उस नोटेशन का उपयोग करें
तर्क संचालक:

1) 20,10,GT,10,20,IF eval 20,10 है,GT = 1 परिणाम 1,10,20 है,IF

eval को पॉप के रूप में पढ़ें "20, 10 से बड़ा है" इसलिए 1 दबाएँ

2) 1,10,20, यदि मूल्यांकन 1,10,20 है, यदि = 10 परिणाम 10 है

पॉप पढ़ें "यदि 1 है तो 10 अन्यथा 20" इसलिए 10 दबाएं। केवल 10 बचा है इसलिए 10 उत्तर है।

आइए एक जटिल आरपीएन अभिव्यक्ति पढ़ें जिसमें पारंपरिक गुणन ऑपरेटर भी है:

1) 128,8,*,7000,GT,7000,128,8,*,यदि eval 128,8,* परिणाम 1024 है
2) 1024 ,7000, जीटी, 7000,128,8,*, यदि मूल्यांकन 1024,7000, जीटी परिणाम 0 है
3) 0, 7000,128,8,*,यदि मूल्यांकन 128,8,* परिणाम 1024 है
4) 0, 7000,1024, यदि परिणाम 1024 है

अब आइए एकाधिक लॉजिक ऑपरेटरों के पहले उदाहरण पर वापस जाएं, लेकिन मान को प्रतिस्थापित करें
20 चर "इनपुट" के साथ:

1) इनपुट, 10, जीटी, 10, इनपुट, यदि eval इनपुट है, 10, जीटी (आइए इसे ए कहते हैं)

eval को "यदि इनपुट > 10 है तो सत्य" के रूप में पढ़ें और "इनपुट,10,जीटी" को "ए" से बदलें:

2) ए,10,इनपुट,आईएफ का ईवल ए,10,इनपुट,आईएफ है

पढ़ें "यदि A है तो 10 अन्य इनपुट"। अब A को इसके क्रियात्मक विवरण से पुनः प्रतिस्थापित करें
और--वोइला!--आपके पास अभिव्यक्ति का आसानी से पढ़ने योग्य विवरण है:

यदि इनपुट > 10 तो 10 अन्य इनपुट

अंत में, आइए पहले सबसे जटिल उदाहरण पर वापस जाएं और मान को 128 से बदलें
"इनपुट":

1) इनपुट,8,*,7000,जीटी,7000,इनपुट,8,*,यदि इवल इनपुट,8,* परिणाम ए है

जहां A "इनपुट * 8" है

2) ए, 7000, जीटी, 7000, इनपुट, 8, *, यदि ईवल ए, 7000 है, जीटी परिणाम बी है

जहाँ B है "यदि ((इनपुट * 8) > 7000) तो सत्य है"

3) बी,7000,इनपुट,8,*,यदि ईवल इनपुट है,8,* परिणाम सी है

जहां C "इनपुट * 8" है

4) बी,7000,सी,आईएफ

अंत में हमारे पास एक चर के साथ जटिल आरपीएन अभिव्यक्ति का एक पठनीय डिकोडिंग है:

यदि ((इनपुट * 8) > 7000) तो 7000 अन्यथा (इनपुट * 8)

अभ्यास


अभ्यास 1:

हाथ से "3,2,*,1,+ और "3,2,1,+,*" की गणना करें। उन्हें पारंपरिक संकेतन में फिर से लिखें।
बताएं कि उनके पास अलग-अलग उत्तर क्यों हैं।

1 उत्तर:

3*2+1 = 7 और 3*(2+1) = 9. ये भाव हैं
प्लस और के परिवर्तन के कारण अलग-अलग उत्तर
टाइम्स ऑपरेटर्स अपने मूल्यांकन के क्रम में बदलाव करते हैं।

अभ्यास 2:

किसी को अभिव्यक्ति को छोटा करने का प्रलोभन हो सकता है

इनपुट,8,*,56000,जीटी,56000,इनपुट,*,8,आईएफ

"इनपुट,8,*" के अनावश्यक उपयोग को हटाकर:

इनपुट,56000,जीटी,56000,इनपुट,आईएफ,8,*

यह दिखाने के लिए पारंपरिक संकेतन का उपयोग करें कि ये अभिव्यक्तियाँ समान नहीं हैं। एक अभिव्यक्ति लिखें
यह पहली अभिव्यक्ति के बराबर है, लेकिन LE और DIV ऑपरेटरों का उपयोग करता है।

2 उत्तर:

यदि (इनपुट <= 56000/8 ) {इनपुट*8 } अन्यथा {56000 }
इनपुट,56000,8,डीआईवी,एलई,इनपुट,8,*,56000,आईएफ

अभ्यास 3:

संक्षेप में बताएं कि पारंपरिक गणितीय संकेतन के लिए कोष्ठक के उपयोग की आवश्यकता क्यों होती है।
बताएं कि आरपीएन नोटेशन को कोष्ठक के उपयोग की आवश्यकता क्यों नहीं है।

3 उत्तर:

पारंपरिक गणितीय अभिव्यक्तियों का मूल्यांकन किसके द्वारा किया जाता है?
पहले गुणा-भाग करना, फिर जोड़ना और
घटाव. कोष्ठक का उपयोग मूल्यांकन को बाध्य करने के लिए किया जाता है
गुणन से पहले जोड़ (आदि)। आरपीएन की आवश्यकता नहीं है
कोष्ठक क्योंकि स्टैक पर वस्तुओं का क्रम
गुणन से पहले जोड़ के मूल्यांकन को बाध्य कर सकता है।

अभ्यास 4:

बताएं कि आरआरडीटूल डेवलपर्स के लिए इसके बजाय आरपीएन नोटेशन को लागू करना वांछनीय क्यों था
पारंपरिक गणितीय संकेतन का.

4 उत्तर:

वह एल्गोरिदम जो पारंपरिक गणितीय कार्यान्वित करता है
आरपीएन के लिए उपयोग किए जाने वाले एल्गोरिदम की तुलना में नोटेशन अधिक जटिल है।
इसलिए आरपीएन को लागू करने से टोबियास ओटिकर को कम लिखने की अनुमति मिली
कोड! (कोड भी कम जटिल है और इसलिए कम है
बग होने की संभावना है।)

onworks.net सेवाओं का उपयोग करके ऑनलाइन rpntutorial का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम