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


Problem

8 /11


स्थानीय और वैश्विक चर

Theory Click to read/hide

स्थानीय और वैश्विक चर
अतिरिक्त चर का उपयोग करना अक्सर आवश्यक होता है जो केवल सबरूटीन में उपयोग किया जाएगा। इस तरह के चर को स्थानीय (या स्थानीय) कहा जाता है और केवल उस सबरूटीन के भीतर ही हेरफेर किया जा सकता है जिसमें वे बनाए गए हैं।
 
लोकल वेरिएबल स्कोप घुमावदार ब्रैकेट वाला ब्लॉक है जिसके भीतर इसे घोषित किया जाता है।
C# में मुख्य प्रोग्राम भी एक सबरूटीन है, इसलिए void Main() के अंदर घोषित सभी वेरिएबल्स स्थानीय चर हैं। अन्य सबरूटीन्स अन्य सबरूटीन्स के स्थानीय वेरिएबल्स के बारे में कुछ भी "जानते" नहीं हैं।

इस प्रकार, एक चर के दायरे (दायरे) को केवल उपनेमका तक सीमित करना संभव है जहां इसकी वास्तव में आवश्यकता है। प्रोग्रामिंग में, इस तकनीक को एनकैप्सुलेशन  - वेरिएबल को बाहर से बदलने से छुपा रहा है।

यदि एक चर घोषित करना आवश्यक है जो कार्यक्रम में कहीं भी दिखाई देगा (किसी भी उपनेमका में), तो ऐसे चर सभी उपनेमकाओं के बाहर घोषित किए जाते हैं (नीचे दी गई तालिका से कार्यक्रम 3 देखें)।
ऐसे चरों को वैश्विक कहा जाता है।

C# में, जब प्रोग्राम शुरू होता है, तो सभी वैश्विक चर स्वचालित रूप से शून्य पर सेट हो जाते हैं (बूलियन चर गलत मान लेते हैं)।

तीन कार्यक्रमों का विश्लेषण करें: <टेबल बॉर्डर = "1" सेलपैडिंग = "1" सेलस्पेसिंग = "1"> <शरीर> 1) इस प्रोग्राम में वेरिएबल i लोकल है। सबरूटीन के अंदर एक लोकल वेरिएबल घोषित किया जाता है। 2) यहां, भले ही मुख्य प्रोग्राम में वेरिएबल i हो (वैल्यू 7 के साथ), वैल्यू 5 के साथ एक नया लोकल वेरिएबल i बनाया जाएगा। 
जब इस प्रोग्राम को निष्पादित किया जाता है, तो मान 75 स्क्रीन पर दिखाई देगा। 3) इस प्रोग्राम का एक ग्लोबल वेरिएबल i है। इसका मान सबरूटीन के अंदर और मुख्य प्रोग्राम के अंदर बदला जा सकता है।
प्रक्रिया वैश्विक चर i के साथ काम करेगी और इसे 2 के बराबर एक नया मान दिया जाएगा। मान 2 प्रदर्शित होता है। <टीडी> स्थैतिक शून्य परीक्षण () {   इंट मैं = 5; कंसोल.लिखें("मैं"); } <टीडी> स्थैतिक शून्य परीक्षण () {   इंट मैं = 5;   कंसोल.लिखें("मैं"); } स्थिर शून्य मुख्य () { इंट मैं = 7;   कंसोल.लिखें("मैं");   परीक्षा(); } <टीडी> सिस्टम का उपयोग करना; वर्ग कार्यक्रम { int मैं; स्थैतिक शून्य परीक्षण () {   मैं = 2; } स्थिर शून्य मुख्य () { परीक्षा(); कंसोल.लिखें("मैं"); } }

Problem

n पैरामीटर के साथ एक ऐसी प्रक्रिया लिखें जो n की ऊंचाई वाले क्रिसमस ट्री को आउटपुट करती है। मुख्य कार्यक्रम में के मान का इनपुट होना चाहिए n चर और प्रक्रिया कॉल। < br />  
उदाहरण
<टेबल क्लास = "टेबल-एसएम टेबल-बॉर्डर टेबल-स्ट्राइप्ड टेबल-लिस्ट-टेस्ट"> <सिर> <थ वर्ग = "अंक"> # <वें>इनपुट <वें>आउटपुट <शरीर> 1 5 <टीडी> <पूर्व>     हे    ओह   ओह  ओह ऊऊउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउउ,,,,,, की