Module: (C++) सबरूटीन्स: प्रक्रियाएं और कार्य - 1


Problem

12/12

बदलते तर्क

Theory Click to read/hide

कार्य
एक ऐसी प्रक्रिया लिखें जो दो वेरिएबल्स के मानों की अदला-बदली करे।

इस कार्य की ख़ासियत यह है कि हमें कॉलिंग प्रोग्राम के बारे में जानने के लिए प्रक्रिया में किए गए परिवर्तनों की आवश्यकता है।

आइए प्रक्रिया को इस तरह लिखने का प्रयास करें: शून्य स्वैप (इंट ए, इंट बी) // प्रक्रिया मापदंडों के इस तरह के विवरण के साथ, { // तर्कों के मान (x और y) कॉपी किए जाएंगे, इंट सी; // चर ए और बी स्वतंत्र चर हैं जो एक्स और वाई से संबंधित नहीं हैं सी = ए; ए = बी; बी = सी; } मुख्य() { int x=1, y=2; स्वैप (एक्स, वाई); // चर x और y (तर्क) के मान पैरामीटर a और b में कॉपी किए गए हैं cout << "एक्स=" << एक्स&एलटी;&एलटी; ", य=" << वाई; // एक्स = 1, वाई = 2 } यदि आप इस प्रोग्राम को चलाते हैं, तो आप देख सकते हैं कि वेरिएबल्स x और y के मान नहीं बदले हैं। मापदंडों के लिए तर्कों के मूल्यों को बदलने के लिए, आपको संदर्भ द्वारा डेटा पास करना चाहिए। ऐसा करने के लिए, डेटा प्रकार के नाम के बाद उपनेमका के शीर्षक में, आपको & ("ampersand") चिन्ह लगाना होगा। शून्य स्वैप ( int & a, int & b) // अब वेरिएबल्स a और b को मेमोरी में वेरिएबल्स x और y के एड्रेस मिलते हैं { इंट सी; सी = ए; ए = बी; बी = सी; } उपयोग: यदि आप संदर्भ द्वारा तर्क पारित करते हैं, तो प्रक्रिया को कॉल करते समय केवल चर नाम (संख्या नहीं और अंकगणितीय अभिव्यक्ति नहीं) इस स्थान पर हो सकता है!< बीआर />
इस तरह की प्रक्रिया को कॉल न करें: स्वैप (x, 4); स्वैप (5+x, y);

Problem

एक ऐसी प्रक्रिया लिखिए जो दो चरों के मानों की अदला-बदली करती है। अतिरिक्त चर का उपयोग किए बिना इसे लिखने का प्रयास करें। अगर कोई गलती हो तो सुधार लें।