लूप ऑपरेटर के लिए: कीबोर्ड इनपुट के बीच न्यूनतम संख्या खोजें


दी गई संख्याओं में अधिकतम संख्या

सशर्त ऑपरेटर का अध्ययन करते समय, हमने कई दर्ज संख्याओं से अधिकतम संख्या ज्ञात करने के विषय को छुआ। समस्या में "अधिकतम चार संख्याएँ" हमने निम्नलिखित एल्गोरिद्म का उपयोग किया:
1. वेरिएबल M को चार वेरिएबल्स में से पहले को वैल्यू असाइन करें;
2. यदि दूसरे वेरिएबल का मान वेरिएबल M के मान से अधिक है, तो वेरिएबल के मान को दूसरे वेरिएबल के मान से बदलें;
3. यदि तीसरे वेरिएबल का मान वेरिएबल M के मान से अधिक है, तो वेरिएबल M के मान को तीसरे वेरिएबल के मान से बदल दें;< बीआर /> 4. यदि चौथे चर का मान M चर के मान से अधिक है, तो चर के मान को चौथे चर के मान से बदल दें।

यह देखा जा सकता है कि प्रत्येक  संख्या (चलो इसे X से निरूपित करते हैं) हमने चर M के साथ तुलना इस प्रकार की:
 
स्यूडोकोड
<पूर्व> इनपुट एक्स अगर (एम <एक्स) तो   एम = एक्स
इस कोड में मुख्य बात यह निर्धारित करना है कि वेरिएबल M का प्रारंभिक मान क्या होगा।
आमतौर पर, अधिकतम या न्यूनतम खोजने की समस्या को हल करते समय, वेरिएबल M का प्रारंभिक मान पहली संख्या के बराबर असाइन किया जाता है।
इस प्रकार, उपरोक्त कोड को संख्याओं की संख्या से 1 गुना कम निष्पादित किया जाना चाहिए (क्योंकि पहली संख्या दर्ज की जानी चाहिए और वेरिएबल M के प्रारंभिक मान के रूप में संग्रहीत की जानी चाहिए)।
यदि हमारे पास कीबोर्ड से सेट की गई संख्याओं की संख्या है (उदाहरण के लिए, वेरिएबल n में), तो हम एक चक्र (2 से n) का उपयोग करके व्यवस्थित कर सकते हैं नंबर वेरिएबल को स्टोर करने के लिए एक ही नंबर।

कार्यक्रम को स्वयं लिखने का प्रयास करें।

अधिकतम सभी में नहीं

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

उदाहरण के लिए, यदि हम अधिकतम नकारात्मक संख्या की तलाश कर रहे हैं, तो डेटा सेट होना: \(\{5, -2, 4, 2, -1, -3\}\ ) हमें अधिकतम के प्रारंभिक मान में संख्या 5 मिलेगी, और यह धनात्मक है और किसी भी ऋणात्मक से अधिक है। और इसलिए हालत X > M हमेशा असत्य होगा।

इसलिए, पिछली समस्या से एल्गोरिदम में ऋणात्मक संख्या के लिए केवल एक चेक जोड़ना पर्याप्त नहीं है, इस तथ्य को भी ध्यान में रखना आवश्यक है कि पहली संख्या आवश्यक शर्त को पूरा नहीं कर सकती है (इस मामले में, नकारात्मक हो ).

आप लूप के अंदर निम्न शर्त जोड़कर इसे ठीक कर सकते हैं:

स्यूडोकोड
<पूर्व> यदि एक्स नकारात्मक है, तो यदि M >= 0 या M < एक्स, फिर एम = एक्स
निर्दिष्ट कोड में,  M >= 0 स्थिति आपको  M = X क्रिया करने की अनुमति देती है, भले ही चर में शुरू में एक मान होता है जो स्पष्ट रूप से बाकी की तुलना में अधिक होता है (हमारे उदाहरण में, मान 5 के बराबर है)।

हम यह भी ध्यान देते हैं कि यदि संख्याओं की श्रेणी ज्ञात है, तो निर्दिष्ट सीमा से न्यूनतम (अधिकतम) संख्या को अधिकतम (न्यूनतम) के प्रारंभिक मान के रूप में लिया जा सकता है।