सारांश
प्रोग्राम इनपुट को आउटपुट में बदलता है, और यह पाठ इस रूपांतरण के दोनों सिरों का और उनके बीच जो कुछ विफल हो सकता है उसका अध्ययन करता है। यह सिखाता है कि std::print और std::println से कैसे लिखा जाता है, प्लेसहोल्डरों और फ़ॉर्मैट विनिर्देशों के साथ, जो चौड़ाई, संरेखण और दशमलव स्थान तय करते हैं; std::cin से संख्याएँ कैसे पढ़ी जाती हैं; जब उपयोगकर्ता माँगी गई चीज़ से भिन्न कुछ लिखता है तब क्या होता है, इसका पूर्वानुमान कैसे किया जाए, जो C++ जैसी इनपुट व्यवस्था में कोई चेतावनी नहीं देता, बल्कि त्रुटि अवस्था में पड़ी एक स्ट्रीम और शून्य वाला एक चर देता है; और प्रोग्राम की त्रुटियों को, उनके प्रकट होने के क्षण के अनुसार, चार तरह की त्रुटियों में कैसे बाँटा जाए: कंपाइल त्रुटि, लिंक त्रुटि, रनटाइम त्रुटि और तार्किक त्रुटि। अंत में यह कंपाइलर के संदेशों को व्यवस्थित ढंग से पढ़ना सिखाता है।
अधिगम उद्देश्य
- ऐसे प्रोग्राम लिखना जो
std::cinसे डेटा पढ़ें औरstd::printlnसे परिणाम लिखें, और चौड़ाई तथा दशमलव स्थानों के लिए फ़ॉर्मैट विनिर्देशों का उपयोग करें। std::printऔरstd::printlnको कई बार कॉल करने वाले प्रोग्राम के सटीक आउटपुट का, पंक्ति-विरामों सहित, पूर्वानुमान करना।- यह बताना कि जब इनपुट अपेक्षित रूप में नहीं होता (संख्या के स्थान पर अक्षर) तब क्या होता है, और पठन की अवस्था की जाँच करना।
- किसी त्रुटि को कंपाइल त्रुटि, लिंक त्रुटि, रनटाइम त्रुटि या तार्किक त्रुटि में वर्गीकृत करना, और उसके प्रकट होने के ढंग से उसका स्थान खोजना।
प्रोग्राम और उसकी सीमा
पाठ समस्या से एल्गोरिदम तक में हर समस्या को इससे निर्दिष्ट किया गया था कि क्या भीतर आता है और क्या बाहर जाता है। प्रोग्राम उस विनिर्देश को साकार करता है: डेटा लेता है, उसे बदलता है और परिणाम देता है। लेकिन डेटा प्रोग्राम के भीतर पैदा नहीं होता, बल्कि उसके बाहर, उसे चलाने वाले व्यक्ति के कीबोर्ड पर, किसी फ़ाइल में या किसी दूसरे प्रोग्राम में; और परिणाम भी भीतर नहीं रहते, बल्कि किसी स्क्रीन, किसी फ़ाइल या किसी दूसरे प्रोग्राम तक जाते हैं। इस बाहरी दुनिया से संपर्क दो रास्तों से होता है, जिन्हें ऑपरेटिंग सिस्टम हर प्रोग्राम को चालू करते समय उसके लिए खोलता है: मानक इनपुट, जो टर्मिनल में कीबोर्ड से लिखी गई चीज़ है, और मानक आउटपुट, जो टर्मिनल दिखाता है। C++ इन्हें स्ट्रीम के रूप में दर्शाती है: वर्णों के ऐसे अनुक्रम जो क्रम से, एक के बाद एक, उपभोग किए जाते हैं या उत्पन्न किए जाते हैं।
दोनों सिरे सममित नहीं हैं। आउटपुट प्रोग्राम तय करता है, और इसलिए उसे सटीकता से लिखा जा सकता है: स्क्रीन पर दिखने वाला हर वर्ण वही है जिसे लिखने का आदेश प्रोग्राम ने दिया। इसके विपरीत, इनपुट कोई और तय करता है: प्रोग्राम एक संख्या माँगता है, पर कीबोर्ड के सामने बैठा व्यक्ति कोई शब्द, दशमलव के लिए अल्पविराम वाली संख्या, बहुत बड़ी संख्या लिख सकता है, या कुछ भी नहीं। यदि ऐसा है, तो इनपुट एक अविश्वसनीय सीमा है, और डेटा पढ़ने वाले हर प्रोग्राम को पहले से सोच रखना चाहिए कि जो मिला वह अपेक्षित रूप में न हो तो वह क्या करेगा। यह पाठ पहले लिखना सिखाता है, फिर पढ़ना, फिर यह कि पठन विफल होने पर क्या होता है, और अंत में त्रुटियों को, प्रोग्राम की त्रुटियों को, उपयोगकर्ता की नहीं, उनके प्रकट होने के क्षण के अनुसार पहचानना।
सामग्री लोड हो रही है…