एल्गोरिदम क्या है और इसका क्या मतलब है? एल्गोरिदम

आज कंप्यूटर तकनीक हमारे जीवन का अभिन्न अंग बन गई है। उन्होंने औसत व्यक्ति की शब्दावली में कई शब्द शामिल किए, जिनके अर्थ उसे हमेशा स्पष्ट नहीं होते। लेकिन इनका इस्तेमाल हर कोई करता है. उदाहरण के लिए, एल्गोरिदम क्या है? एक सामान्य उपयोगकर्ता आपको स्पष्ट उत्तर नहीं दे पाएगा, लेकिन यह जानना आवश्यक है, क्योंकि हम हर दिन इसका सामना करते हैं।

शब्द की उत्पत्ति का इतिहास

एल्गोरिदम की अवधारणा सबसे पहले मुहम्मद अल-ख्वारिज्मी नामक गणितज्ञ द्वारा विकसित की गई थी। वह 8वीं और 9वीं शताब्दी में पूर्व में रहे और दो महान रचनाएँ लिखीं। उनमें से पहले ने "बीजगणित" शब्द को जन्म दिया, और दूसरे ने - "एल्गोरिदम" की अवधारणा को। यह उन अंकगणितीय संक्रियाओं के लिए है जिन्हें हम जोड़, घटाव, गुणा और भाग के रूप में जानते हैं। 1957 में, अंग्रेजी शब्दकोश के एक संस्करण में, लेखकों ने माना कि एल्गोरिदम एक पुरानी अवधारणा है। फिर से यह कंप्यूटर के आगमन के साथ ही सक्रिय रूप से उपयोग में आया। उन्होंने उन कार्यों को दर्शाया जो एक निश्चित प्रक्रिया का हिस्सा थे। लेकिन इसका केवल गणितीय होना जरूरी नहीं है। इसका तात्पर्य किसी भी प्रकृति के कार्यों के लिए एक एल्गोरिदम से है, उदाहरण के लिए, एक व्यंजन तैयार करना। उस समय से यह अवधारणा लगभग सभी लोगों की जुबान पर है।

शब्द को परिभाषित करने का प्रयास

लंबे समय तक, इस शब्द को विशेष रूप से संख्याओं और उनके साथ संचालन के लिए एक एल्गोरिदम के रूप में माना जाता था। आख़िरकार, गणित अपने आप में अधिकांशतः एक व्यावहारिक विज्ञान था। गणना के लिए जिन सूत्रों का उपयोग किया जाता है उन्हें उस समय एल्गोरिदम माना जाता था। हल करने में अपनाए गए चरण प्राथमिक थे, लेकिन गणनाएँ स्वयं बहुत बोझिल थीं और इसमें बहुत समय और प्रयास लगा। गणितज्ञों ने इस अवधारणा को परिभाषित करने के बारे में सोचा भी नहीं था। लेकिन समय के साथ, विज्ञान अधिक से अधिक विकसित हुआ और ऐसी वस्तुएं सामने आईं जिनका पहले सामना नहीं किया गया था (मैट्रिसेस, वैक्टर, सेट, आदि)। इन सभी का ऑपरेशन करना जरूरी था. इससे इस समझ को बढ़ावा मिला कि एल्गोरिदम एक जटिल अवधारणा है, और इसे आगे के उपयोग के लिए सटीक रूप से परिभाषित करने की आवश्यकता है। इस मुद्दे पर वैज्ञानिक बंटे हुए हैं. कुछ का मानना ​​था कि एल्गोरिदम को हर चीज़ पर लागू किया जा सकता है, जबकि अन्य को संदेह था कि इसकी मदद से हर समस्या का समाधान किया जा सकता है। अंतिम दृष्टिकोण सही निकला, लेकिन इसे केवल "एल्गोरिदम" की अवधारणा की सटीक परिभाषा देकर ही प्रमाणित किया जा सकता है।

"एल्गोरिदम" शब्द का क्या अर्थ है?

हर दिन एक व्यक्ति को अलग-अलग जटिलता वाली समस्याओं का समाधान करना पड़ता है। हम सरल समस्याओं के इतने आदी हो गए हैं कि हम उन्हें स्वचालित रूप से हल करने के लिए कार्रवाई करते हैं। जटिल लोगों के लिए बहुत अधिक विचार की आवश्यकता होती है। जब कोई समस्या आती है तो हम उसे चरण दर चरण हल करते हैं। इसलिए गणित में, उदाहरण के लिए, किसी समीकरण में अज्ञात को खोजने के लिए, आपको चरण दर चरण कार्य करने की आवश्यकता है। ये ऑपरेशन, जो धीरे-धीरे समस्या के समाधान की ओर ले जाते हैं, एल्गोरिदम कहलाते हैं। एक एल्गोरिथ्म क्रियाओं का एक क्रम है, जो व्यक्तिगत रूप से इसके चरण हैं। उनका एक विशिष्ट स्थान है और उन्हें एक-दूसरे का सख्ती से पालन करना चाहिए। एल्गोरिदम के वर्ग होते हैं, उन्हें जटिलता वर्ग कहा जाता है। उनमें से प्रत्येक में समस्याओं का एक निश्चित समूह शामिल है जिनके समाधान की जटिलता लगभग समान है।

सभी एल्गोरिदम के लिए सामान्य गुण

हमारी दुनिया में एल्गोरिदम के अलावा और भी कई निर्देश हैं। लेकिन कुछ गुणों की बदौलत हम इसे बाकियों से अलग कर सकते हैं। इसमे शामिल है:

  • विसंगति - एल्गोरिदम योजना सख्त क्रम में की जाने वाली अनुक्रमिक क्रियाओं के माध्यम से कार्य का समाधान प्रदान करती है।
  • निश्चितता - निर्धारित सभी शर्तें स्पष्ट हैं और उनमें कोई अस्पष्टता नहीं है। इसलिए, क्रियाओं का एल्गोरिदम किसी भी सुधार के लिए जगह प्रदान नहीं करता है। यह आपको अतिरिक्त संकेतों की आवश्यकता के बिना सब कुछ यांत्रिक रूप से करने की अनुमति देता है।
  • दक्षता - चरणों की एक निश्चित संख्या के भीतर, एल्गोरिदम हमेशा समस्या का सही समाधान देता है।
  • व्यापकता - एक एल्गोरिथ्म एक समस्या का समाधान है जिसका एक सामान्य रूप होता है। अर्थात्, स्रोत डेटा की परवाह किए बिना, यह एक निश्चित वर्ग की सभी समस्याओं पर लागू होता है। उन्हें एक निश्चित क्षेत्र से चुना जाता है जिसे "एल्गोरिदम की प्रयोज्यता का दायरा" कहा जाता है।

एल्गोरिदम के प्रकार

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

  • यांत्रिक - आवश्यक परिणाम प्राप्त करने के लिए एक कठोर, एकमात्र सही क्रम (इंजन संचालन सुनिश्चित करना, आदि)।
  • लचीला: 1) संभाव्य - सही निर्णय प्राप्त करने के कई तरीके हैं; 2) अनुमानी - एक एल्गोरिथम योजना जिसमें कार्रवाई का एक स्पष्ट कार्यक्रम (नुस्खे, आदि) नहीं है, क्योंकि यह किसी व्यक्ति के व्यक्तिगत गुणों और अनुभव पर आधारित है।
  • सहायक - पहले से विकसित और किसी विशिष्ट समस्या को हल करने के लिए पूरी तरह से इरादा।

कंप्यूटर विज्ञान में एल्गोरिदम

कंप्यूटर विज्ञान के लिए एल्गोरिदम का विशेष महत्व है। इस विज्ञान में इन्हें निम्नलिखित प्रकारों में विभाजित किया गया है:

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

एल्गोरिथम संरचना

एल्गोरिदम की अपनी संरचना होती है, जिसे आमतौर पर आरेख में प्रदर्शित किया जाता है। एक एल्गोरिथम आरेख परस्पर जुड़े ब्लॉकों के रूप में इसका एक ग्राफिकल प्रतिनिधित्व है। उनमें से प्रत्येक एल्गोरिथम के चरणों में से एक को प्रदर्शित करता है। प्रत्येक ब्लॉक में एक विशिष्ट क्रिया का विवरण निहित होता है। ऐसे आरेख आमतौर पर प्रोग्रामिंग को सुविधाजनक बनाने के लिए तैयार किए जाते हैं, क्योंकि वे दृश्य होते हैं और किए जाने वाले कार्य की मात्रा को दृश्य रूप से समझना संभव बनाते हैं। एक व्यक्ति प्रक्रिया को समझ सकता है और त्रुटियाँ होने से पहले ही उसे ठीक कर सकता है।

एल्गोरिदम संकलित करने के नियम

  • पहला नियम यह है कि आपको बड़ी संख्या में वस्तुओं की पहचान करने की आवश्यकता है जो निर्मित एल्गोरिदम के लिए उत्तरदायी हो सकते हैं। प्रोग्रामर उन्हें डेटा में परिवर्तित करने के लिए एन्कोडिंग का उपयोग करता है। वे अंदर और बाहर आते हैं। पहला काम शुरू करने का काम करता है, दूसरा उसका परिणाम बनता है। इसे डेटा ट्रांसफ़ॉर्मेशन कहा जाता है.
  • दूसरा नियम कहता है कि एल्गोरिदम के साथ काम करने के लिए मुफ्त मेमोरी की आवश्यकता होती है। आख़िरकार, इसके बिना इनपुट डेटा रखने, उनके साथ काम करने और आउटपुट प्राप्त करने का कोई तरीका नहीं होगा। मेमोरी कोशिकाओं से बनी होती है। यदि आप उनमें से किसी एक को एक नाम देते हैं, तो यह एक चर बन जाता है।
  • तीसरे नियम को पहले से ही एल्गोरिदम की विशेषताओं में से एक के रूप में वर्णित किया गया है, अर्थात् विसंगति। अर्थात्, एल्गोरिथम में व्यक्तिगत संचालन या चरण शामिल होते हैं।
  • चौथा नियम हमें एल्गोरिथम के नियतत्ववाद की याद दिलाता है। अर्थात्, प्रत्येक क्रिया के बाद आपको यह बताना होगा कि आगे क्या होगा, या प्रक्रिया को रोक देना होगा।
  • अंतिम नियम कहता है कि एक निश्चित संख्या में चरणों के बाद एल्गोरिदम अपना काम पूरा करता है, जिसमें कोई न कोई परिणाम होता है। और कौन सा, प्रोग्रामर स्वयं इंगित करता है।

इस प्रकार, एल्गोरिदम एक जटिल अवधारणा है, जिसका उपयोग कंप्यूटर के आगमन से पहले केवल गणित में किया जाता था और इसे अप्रचलित माना जाता था। आज इसका उपयोग जीवन के सभी क्षेत्रों में किया जाता है, जिनमें से सबसे महत्वपूर्ण है कंप्यूटर विज्ञान।

प्रत्येक एल्गोरिदम डेटा - इनपुट, इंटरमीडिएट और आउटपुट से संबंधित है।

अंग.इसे दो तरीकों से समझा जाता है: सबसे पहले, एल्गोरिदम में अलग-अलग प्राथमिक चरण या क्रियाएं शामिल होती हैं, और निश्चित रूप से कई अलग-अलग चरण होते हैं जो एल्गोरिदम बनाते हैं। दूसरे, एल्गोरिदम को चरणों की एक सीमित संख्या में समाप्त होना चाहिए। यदि एक अनंत प्रक्रिया का निर्माण किया जाता है जो वांछित समाधान में परिवर्तित हो जाती है, तो यह एक निश्चित चरण पर टूट जाती है और परिणामी मूल्य को विचाराधीन समस्या के अनुमानित समाधान के रूप में लिया जाता है। सन्निकटन की सटीकता चरणों की संख्या पर निर्भर करती है।

प्राथमिकता (समझदारी)।एल्गोरिदम का प्रत्येक चरण सरल होना चाहिए ताकि संचालन करने वाला उपकरण इसे एक चरण में पूरा कर सके।

विसंगति.किसी समस्या को हल करने की प्रक्रिया को अलग-अलग चरणों के एक सीमित अनुक्रम के रूप में दर्शाया जाता है, और एल्गोरिदम का प्रत्येक चरण एक सीमित (जरूरी नहीं कि इकाई) समय में किया जाता है।

नियतिवाद (निश्चितता)।एल्गोरिदम के प्रत्येक चरण को विशिष्ट और स्पष्ट रूप से परिभाषित किया जाना चाहिए और मनमानी व्याख्या की अनुमति नहीं देनी चाहिए। प्रत्येक चरण के बाद, या तो यह बताया जाता है कि अगला कदम कौन सा उठाना है, या एक स्टॉप कमांड दिया जाता है, जिसके बाद एल्गोरिदम का काम पूरा माना जाता है।

उत्पादकता.एल्गोरिथम में इनपुट मात्राओं की एक निश्चित संख्या होती है - तर्क। एल्गोरिदम को निष्पादित करने का उद्देश्य एक विशिष्ट परिणाम प्राप्त करना है जिसका मूल डेटा से बहुत विशिष्ट संबंध है। डेटा के आधार पर, परिणाम के रूप में क्या विचार किया जाए, इसके संकेत के साथ, एल्गोरिदम को चरणों की एक सीमित संख्या के बाद रुकना चाहिए। यदि कोई समाधान नहीं पाया जा सकता है, तो यह अवश्य बताया जाना चाहिए कि इस मामले में परिणाम क्या माना जाएगा।

जन चरित्र.समस्या को हल करने के लिए एल्गोरिदम सामान्य रूप में विकसित किया गया है, अर्थात। यह उन समस्याओं के एक निश्चित वर्ग के लिए लागू होना चाहिए जो केवल प्रारंभिक डेटा में भिन्न हैं। इस मामले में, प्रारंभिक डेटा को एक निश्चित क्षेत्र से चुना जा सकता है जिसे कहा जाता है एल्गोरिथम की प्रयोज्यता का क्षेत्र.

क्षमता।एक ही समस्या को अलग-अलग तरीकों से और तदनुसार, अलग-अलग समय में और अलग-अलग मेमोरी लागत के साथ हल किया जा सकता है। यह वांछनीय है कि एल्गोरिदम में न्यूनतम संख्या में चरण हों और समाधान सटीकता की स्थिति को पूरा करता हो और अन्य संसाधनों के न्यूनतम व्यय की आवश्यकता हो।

एल्गोरिदम की सटीक गणितीय परिभाषा इस तथ्य से जटिल है कि निर्धारित निर्देशों की व्याख्या उन्हें निष्पादित करने वाले विषय पर निर्भर नहीं होनी चाहिए। अपने बौद्धिक स्तर के आधार पर, वह या तो निर्देशों में क्या मतलब है यह बिल्कुल नहीं समझ सकता है, या, इसके विपरीत, अनपेक्षित तरीके से इसकी व्याख्या कर सकता है।

नियमों की व्याख्या करने की समस्या से बचा जा सकता है यदि नियमों के शब्दों के साथ-साथ व्याख्या करने वाले उपकरण के डिजाइन और संचालन सिद्धांत का भी वर्णन किया जाए। यह समान निर्देशों को समझने में अनिश्चितता और अस्पष्टता से बचाता है। ऐसा करने के लिए, एक ऐसी भाषा को निर्दिष्ट करना आवश्यक है जिसमें व्यवहार के कई नियम या कार्यों के अनुक्रम का वर्णन किया गया हो, साथ ही उपकरण भी, जो इस भाषा में बने वाक्यों की व्याख्या कर सके और प्रत्येक सटीक परिभाषित प्रक्रिया को चरण दर चरण पूरा कर सके। . यह पता चला है कि इस तरह के उपकरण (मशीन) को ऐसे रूप में लागू किया जा सकता है जो प्रश्न में प्रक्रिया की जटिलता की परवाह किए बिना स्थिर रहता है।

वर्तमान में, तीन मुख्य प्रकार के सार्वभौमिक एल्गोरिथम मॉडल को प्रतिष्ठित किया जा सकता है। एल्गोरिथम की अवधारणा की परिभाषा के संबंध में उनकी प्रारंभिक धारणाएं भिन्न हैं।

प्रथम प्रकारएल्गोरिदम की अवधारणा को गणित की सबसे पारंपरिक अवधारणाओं - गणना और संख्यात्मक कार्यों से जोड़ता है। दूसरा प्रकारएक एल्गोरिथ्म के विचार पर एक निश्चित नियतात्मक उपकरण के रूप में आधारित है जो किसी भी समय केवल बहुत ही आदिम संचालन करने में सक्षम है। यह प्रतिनिधित्व एल्गोरिथम की विशिष्टता और उसके चरणों की प्राथमिक प्रकृति को सुनिश्चित करता है। इसके अलावा, यह विचार कंप्यूटर निर्माण की विचारधारा से मेल खाता है। इस प्रकार का मुख्य सैद्धांतिक मॉडल 1930 के दशक में बनाया गया था। अंग्रेजी गणितज्ञ एलन ट्यूरिंग, एक ट्यूरिंग मशीन हैं।

तीसरा प्रकार- ये मनमाने वर्णमाला में शब्दों के परिवर्तन हैं, जिसमें प्राथमिक संचालन प्रतिस्थापन हैं, यानी। किसी शब्द के भाग (एक शब्द वर्णमाला वर्णों का एक क्रम है) को दूसरे शब्द से बदलना। इस प्रकार के मॉडल के फायदे इसकी अधिकतम अमूर्तता और मनमानी (जरूरी नहीं कि संख्यात्मक) प्रकृति की वस्तुओं पर एल्गोरिदम की अवधारणा को लागू करने की क्षमता है। तीसरे प्रकार के मॉडल के उदाहरण अमेरिकी गणितज्ञ एमिल एल. पोस्ट की विहित प्रणालियाँ और सोवियत गणितज्ञ ए. ए. मार्कोव द्वारा प्रस्तुत सामान्य एल्गोरिदम हैं।

दूसरे और तीसरे प्रकार के मॉडल काफी करीब हैं और मुख्य रूप से अनुमानी लहजे में भिन्न हैं, इसलिए यह कोई संयोग नहीं है कि वे पोस्ट की मशीन के बारे में बात करते हैं, हालांकि पोस्ट ने खुद इसके बारे में बात नहीं की।

किसी भाषा में एल्गोरिदम की रिकॉर्डिंग एक प्रोग्राम है। यदि कोई प्रोग्राम किसी विशेष एल्गोरिथम भाषा (उदाहरण के लिए, पास्कल, बेसिक या कोई अन्य) में लिखा गया है, तो हम बात करते हैं मूल कार्यक्रम. किसी ऐसी भाषा में लिखा गया प्रोग्राम जिसे कंप्यूटर सीधे समझ सकता है (आमतौर पर बाइनरी कोड) कहलाता है मशीन,या बाइनरी.

एल्गोरिदम लिखने के किसी भी तरीके का तात्पर्य यह है कि इसकी मदद से वर्णित प्रत्येक वस्तु को वस्तुओं के अक्सर अनंत वर्ग के एक विशिष्ट प्रतिनिधि के रूप में निर्दिष्ट किया जाता है जिसे इस तरह से वर्णित किया जा सकता है।

एल्गोरिदम लिखने के लिए उपयोग किए जाने वाले साधन काफी हद तक इस बात से निर्धारित होते हैं कि निष्पादक कौन होगा।

यदि कलाकार एक व्यक्ति है, तो रिकॉर्डिंग पूरी तरह से औपचारिक नहीं हो सकती है; स्पष्टता और दृश्यता पहले आती है। इस मामले में, रिकॉर्डिंग के लिए एल्गोरिदम आरेख या मौखिक नोटेशन का उपयोग किया जा सकता है।

ऑटोमेटा कलाकारों के लिए इच्छित एल्गोरिदम लिखने के लिए, औपचारिकता आवश्यक है, इसलिए, ऐसे मामलों में, औपचारिक विशेष भाषाओं का उपयोग किया जाता है। अंकन के औपचारिक तरीके का लाभ यह है कि यह गणितीय वस्तुओं के रूप में एल्गोरिदम का अध्ययन करना संभव बनाता है; इस मामले में, एल्गोरिथम का औपचारिक विवरण इस एल्गोरिथम को बौद्धिक रूप से समझने के आधार के रूप में कार्य करता है।

एल्गोरिदम लिखने के लिए विभिन्न प्रकार के साधनों का उपयोग किया जाता है। टूल का चुनाव निष्पादित किए जा रहे एल्गोरिदम के प्रकार से निर्धारित होता है। निम्नलिखित प्रतिष्ठित हैं: एल्गोरिदम लिखने के मुख्य तरीके:

मौखिक- एल्गोरिदम मानव भाषा में वर्णित है;

प्रतीकात्मक- एल्गोरिदम को प्रतीकों के एक सेट का उपयोग करके वर्णित किया गया है;

ग्राफ़िक- एल्गोरिदम को ग्राफिक छवियों के एक सेट का उपयोग करके वर्णित किया गया है।

एल्गोरिदम लिखने के आम तौर पर स्वीकृत तरीके हैं ग्राफ़िक रिकॉर्डिंगएल्गोरिदम आरेख (फ़्लोचार्ट) का उपयोग करना और के साथ प्रतीकात्मक संकेतनकुछ एल्गोरिथम भाषा का उपयोग करना।

किसी एल्गोरिदम का वर्णन करने के लिए, ज्यामितीय आकृतियों के जुड़े अनुक्रम को चित्रित करने के लिए आरेखों का उपयोग किया जाता है, जिनमें से प्रत्येक एल्गोरिदम की एक विशिष्ट क्रिया के निष्पादन को दर्शाता है। क्रियाओं का क्रम तीरों द्वारा दर्शाया गया है।

एल्गोरिथम आरेखों में निम्नलिखित प्रकार के ग्राफिक प्रतीकों का उपयोग किया जाता है।

शुरूऔर अंतएल्गोरिथम को उन्हीं प्रतीकों का उपयोग करके निर्दिष्ट किया गया है (चित्र 21.1)।

चावल। 21.1.

एक निश्चित चर के लिए एक नया मान निर्दिष्ट करने, एक निश्चित मान को अन्य मान प्राप्त करने के लिए परिवर्तित करने से जुड़ा एक एल्गोरिदम चरण, प्रतीक द्वारा दर्शाया गया है "प्रक्रिया"(चित्र 21.2)।

चावल। 21.2.

कुछ परिवर्तनीय स्थितियों के आधार पर एल्गोरिदम को निष्पादित करने के लिए दिशा का चुनाव प्रतीक द्वारा दर्शाया गया है " समाधान"(चित्र 21.3)।

चावल। 21.3.

यहाँ आरका अर्थ है विधेय (सशर्त अभिव्यक्ति, स्थिति)। यदि शर्त पूरी हो जाती है (विधेय TRUE मान लेता है), तो एल्गोरिथ्म के एक चरण में संक्रमण किया जाता है, और यदि पूरा नहीं होता है, तो दूसरे चरण में।

डेटा इनपुट और आउटपुट संचालन के साथ-साथ अन्य ग्राफिकल प्रतीकों के लिए आदिम हैं। वर्तमान में, उन्हें GOST 19.701-90 (आईएसओ 5807-85) मानक "एल्गोरिदम, डेटा प्रोग्राम और सिस्टम की एकीकृत प्रणाली और निष्पादन नियम" द्वारा परिभाषित किया गया है। कुल मिलाकर, ईएसपीडी संग्रह में 28 दस्तावेज़ हैं।

एल्गोरिथम आरेख का उपयोग करके, एल्गोरिथम भाषा में प्रारंभिक प्रोग्राम बनाना आसान है।

एल्गोरिथ्म में क्रियाओं के अनुक्रम के आधार पर, रैखिक, शाखित और चक्रीय संरचना के एल्गोरिदम को प्रतिष्ठित किया जाता है।

एल्गोरिदम में रैखिक संरचनाक्रियाएँ एक के बाद एक क्रमिक रूप से की जाती हैं।

एल्गोरिदम में शाखित संरचनाकिसी भी शर्त के पूरा होने या न होने के आधार पर क्रियाओं का अलग-अलग क्रम किया जाता है। क्रियाओं के ऐसे प्रत्येक क्रम को कहा जाता है एल्गोरिथम की शाखा.

एल्गोरिदम में चक्रीय संरचनाकिसी भी शर्त के पूरा होने या न होने के आधार पर क्रियाओं का दोहराव वाला क्रम किया जाता है, जिसे कहा जाता है चक्र का शरीर.नेस्टेड लूप वह होता है जो दूसरे लूप की बॉडी के अंदर होता है। पुनरावृत्तीय चक्र एक ऐसा चक्र है जिसकी पुनरावृत्ति की संख्या निर्दिष्ट नहीं है, लेकिन चक्र के निष्पादन के दौरान निर्धारित की जाती है।

इस मामले में, चक्र की एक पुनरावृत्ति कहा जाता है पुनरावृत्ति.

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

अधिकांश समस्याओं को हल करने के लिए, कलाकार को एक आदेश देना पर्याप्त नहीं है; आपको उसके लिए एक एल्गोरिदम बनाने की आवश्यकता है - एक कार्य योजना, जिसमें ऐसे आदेश शामिल हैं जिन्हें वह समझता है (उसके एसकेआई में शामिल)।
कलन विधि- किसी समस्या को हल करने के उद्देश्य से कलाकार के लिए एक सटीक परिभाषित कार्य योजना। एल्गोरिदम में केवल वे कमांड शामिल हो सकते हैं जो SKI में हैं।

एल्गोरिदम क्या हैं?

रैखिक एल्गोरिथ्म
एक रैखिक एल्गोरिथ्म में, कमांड को एक के बाद एक क्रमिक रूप से निष्पादित किया जाता है। रैखिक एल्गोरिथम का एक उदाहरण चाय बनाने वाला एल्गोरिथम है।

शाखाकरण एल्गोरिथ्म

ब्रांचिंग एल्गोरिदम में, पर्यावरण के आधार पर कमांड का क्रम भिन्न हो सकता है। ब्रांचिंग एल्गोरिदम का एक उदाहरण स्ट्रीट क्रॉसिंग एल्गोरिदम है।

राउंड रॉबिन एल्गोरिदम
चक्रीय एल्गोरिदम में, कुछ क्रियाएं कई बार दोहराई जाती हैं (कंप्यूटर विज्ञान में वे कहते हैं कि एक लूप निष्पादित होता है)। चक्रीय एल्गोरिदम दो प्रकार के होते हैं। उनमें से एक में हमें पहले से पता होता है कि हमें इन कार्यों को कितनी बार करने की आवश्यकता है, दूसरे में हमें केवल तभी रुकना चाहिए जब हम कार्य पूरा कर लें, अर्थात हमारे कार्य तभी रुकते हैं जब कोई शर्त पूरी हो जाती है।
पहले प्रकार के चक्र का एक उदाहरण सप्ताह के दिनों में (सोमवार से शनिवार तक) हमारा जीवन है - हम लगभग एक ही कार्य 6 बार करते हैं।
दूसरे प्रकार के चक्र का एक उदाहरण लॉग को काटने के लिए एल्गोरिदम है: हम पहले से नहीं कह सकते हैं कि हमें कितनी बार आरी को अपने से दूर और अपनी ओर ले जाने की आवश्यकता है - यह पेड़ के घनत्व, गुणवत्ता पर निर्भर करता है आरा और हमारे प्रयास। हालाँकि, हम निश्चित रूप से जानते हैं कि जब अगला लकड़ी का लट्ठा जमीन पर गिरेगा तो हमें काम खत्म करना होगा।

एल्गोरिदम लिखने के तरीके

व्यवहार में एल्गोरिदम लिखने की तीन सबसे सामान्य विधियाँ हैं:

  • मौखिक(प्राकृतिक भाषा में रिकॉर्डिंग);
  • ग्राफ़िक(ग्राफिक प्रतीकों का उपयोग करके रिकॉर्डिंग);
  • कार्यक्रम(प्रोग्रामिंग भाषाओं में पाठ)।

एल्गोरिदम लिखने का मौखिक तरीका

मौखिक विधि - प्राकृतिक भाषा में एल्गोरिदम लिखने का एक तरीका. यदि आपको एल्गोरिथम के सार का मोटे तौर पर वर्णन करने की आवश्यकता है तो यह विधि बहुत सुविधाजनक है। हालाँकि, मौखिक विवरण के साथ कार्यों के तर्क को स्पष्ट और सटीक रूप से व्यक्त करना हमेशा संभव नहीं होता है।

एल्गोरिथम लिखने के मौखिक तरीके के उदाहरण के रूप में, एक आयत का क्षेत्रफल ज्ञात करने के लिए एक एल्गोरिथम पर विचार करें

जहाँ S आयत का क्षेत्रफल है; ए, बी - इसकी भुजाओं की लंबाई।

जाहिर है, ए, बी को पहले से निर्दिष्ट किया जाना चाहिए, अन्यथा समस्या का समाधान नहीं किया जा सकता है।

एल्गोरिथम लिखने का मौखिक तरीका इस तरह दिखता है:

  • एल्गोरिथम की शुरुआत.
  • भुजा a का संख्यात्मक मान निर्धारित करें।
  • भुजा b का संख्यात्मक मान निर्धारित करें।
  • सूत्र S=a*b का उपयोग करके आयत के क्षेत्रफल S की गणना करें।
  • गणना का परिणाम आउटपुट करें.
  • एल्गोरिथम का अंत.

एल्गोरिदम का वर्णन करने का ग्राफिकल तरीका

एल्गोरिदम के अधिक दृश्य प्रतिनिधित्व के लिए, एक ग्राफिकल विधि का उपयोग किया जाता है। ग्राफ़िक रूप से एल्गोरिदम का वर्णन करने के कई तरीके हैं। व्यवहार में एल्गोरिदम का सबसे व्यापक रूप से उपयोग किया जाने वाला ग्राफिकल विवरण फ़्लोचार्ट का उपयोग है। ब्लॉक आरेखों का निस्संदेह लाभ एल्गोरिदम लिखने की स्पष्टता और सरलता है।

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

चूंकि रैखिक एल्गोरिदम में कमांड क्रमिक रूप से निष्पादित होते हैं, ब्लॉक आरेख इस तरह दिखेगा:

चूंकि ब्रांचिंग एल्गोरिदम में कमांड का क्रम पर्यावरण के आधार पर भिन्न हो सकता है, फ़्लोचार्ट इस प्रकार का होगा:

चक्रीय एल्गोरिदम में, कुछ क्रियाएं कई बार दोहराई जाती हैं और इसके लिए फ़्लोचार्ट इस प्रकार का होगा:

एल्गोरिदम लिखने की सॉफ्टवेयर विधि

किसी एल्गोरिदम को रोबोट, कंप्यूटर या अन्य मशीन के लिए समझने योग्य बनाने के लिए, केवल कमांड लिखना ही पर्याप्त नहीं है; एल्गोरिदम को उस रूप में औपचारिक बनाना भी आवश्यक है जिसमें मशीन इसे समझती है (प्रोग्राम लिखें), यानी। फ़ॉर्मेटिंग नियमों का पालन करते हुए, SKI के आदेशों का उपयोग करके इसे लिखें।

प्रोग्राम डिज़ाइन नियम:

  1. किसी भी एल्गोरिदम का एक नाम होता है;
  2. एल्गोरिथ्म एक उद्घाटन घुंघराले ब्रेस के साथ शुरू होता है "(" और एक समापन घुंघराले ब्रेस के साथ समाप्त होता है ")"; इन कोष्ठकों के बीच स्थित आदेशों को एल्गोरिथम का मुख्य भाग कहा जाता है;
  3. एल्गोरिदम में केवल वे आदेश शामिल हो सकते हैं जो निष्पादक के SKI में हैं;
  4. प्रत्येक कमांड ";" चिह्न के साथ समाप्त होता है, जो कमांड के अंत को इंगित करता है;
  5. कार्यक्रमों को समझना हमारे लिए आसान बनाने के लिए, हम टिप्पणियों का उपयोग करते हैं - पाठ स्पष्टीकरण जो "/*" संकेतों से शुरू होते हैं और "*/" संकेतों के साथ समाप्त होते हैं; कलाकार एल्गोरिथम में टिप्पणियों पर ध्यान नहीं देता है।

व्यावहारिक कार्य:

  1. किसी वर्ग का परिमाप ज्ञात करने के लिए एक फ़्लोचार्ट बनाएँ।
  2. चाय बनाने के लिए एक ब्लॉक आरेख बनाएं।
  3. ट्रैफिक लाइट वाले चौराहे को पार करने के लिए एक ब्लॉक आरेख बनाएं।

पुस्तकों से प्रयुक्त सामग्री:

  1. "आधुनिक सूचना प्रौद्योगिकी", लेखक: "टर्बो" केंद्र के शिक्षक
  2. "एल्गोरिदम और निष्पादक", लेखक पॉलाकोव के.

इससे पहले कि हम सुपर प्रोग्राम लिखना शुरू करें, आइए जानें कि प्रोग्राम क्या है? प्रोग्राम एक विशिष्ट एल्गोरिदम है जिसे आपके कंप्यूटर को निष्पादित करना होगा।

खैर, अब मुख्य प्रश्न: एल्गोरिदम क्या है?

एल्गोरिदम के गुण

मैं पहिये का पुनः आविष्कार नहीं करूँगा, बल्कि केवल एल्गोरिदम के उन गुणों को सूचीबद्ध करूँगा जो कई वर्षों से ज्ञात हैं।

  1. चरमता (प्रभावशीलता)एल्गोरिदम का अर्थ है कि परिणाम चरणों की एक सीमित संख्या में प्राप्त किया जाना चाहिए;
  2. पृथक्ताएल्गोरिदम का अर्थ है कि एल्गोरिदम को चरणों के अनुक्रम में विभाजित किया जाना चाहिए;
  3. understandabilityएल्गोरिदम का अर्थ है कि एल्गोरिदम में केवल वे कमांड शामिल होने चाहिए जो कमांड के सेट में शामिल हैं जिन्हें एक विशिष्ट निष्पादक निष्पादित कर सकता है;
  4. शुद्धताएल्गोरिदम का अर्थ है कि प्रत्येक कमांड को स्पष्ट रूप से समझा जाना चाहिए;
  5. जन चरित्रएल्गोरिदम का मतलब है कि, एक बार संकलित होने के बाद, एल्गोरिदम अलग-अलग प्रारंभिक डेटा के साथ समान समस्याओं को हल करने के लिए उपयुक्त होना चाहिए।
  6. नियतिवाद (निश्चितता). एक एल्गोरिथ्म में नियतिवाद का गुण होता है यदि प्रारंभिक डेटा के समान सेट के लिए यह समान परिणाम उत्पन्न करता है, अर्थात। परिणाम प्रारंभिक डेटा द्वारा विशिष्ट रूप से निर्धारित होता है।

इस प्रकार, कलन विधि- यह प्रारंभिक डेटा से वांछित परिणाम तक ले जाने वाले चरणों का अंतिम अनुक्रम निष्पादित करने के लिए कलाकार को एक स्पष्ट और सटीक निर्देश है।

कल्पना कीजिए कि मुझे एक संतरे को चाकू से काटना है। इस क्रिया को करने के लिए मुझे एक एल्गोरिदम की आवश्यकता है।


मैं एक संतरा काटना चाहता हूँ. इसे कैसे करना है?

एल्गोरिदम के प्रकार

    • रैखिक (आदेश दोहराव या बदलाव के बिना अनुक्रमिक होते हैं);

एल्गोरिथम उदाहरण:

शुरू
चाकू निकालो
एक संतरा काटें (यह संतरा है, कोई अन्य फल नहीं। इसके लिए सटीकता जिम्मेदार है)
एक संतरा खाओ
अंत

    • चक्रीय (कार्यों का एक समूह है जो किसी स्थिति के अनुसार दोहराया जाता है);

एल्गोरिथम उदाहरण:

शुरू
चाकू निकालो
जब तक संतरे खत्म न हो जाएं
एक संतरा काटें
सारे संतरे खाओ
अंत

    • ब्रांचिंग (कमांड निष्पादन एक शर्त पर निर्भर करता है)।

एल्गोरिथम उदाहरण:

शुरू
चाकू निकालो
यदि चाकू कुंद है तो उसे तेज कर लें
एक संतरा काटें
एक संतरा खाओ
अंत

बस इतना ही। अगले पाठ में हम पास्कल में एक प्रोग्राम की संरचना को देखेंगे।

एल्गोरिथम अवधारणा

एल्गोरिदम की अवधारणा कंप्यूटर विज्ञान में एक केंद्रीय अवधारणा है। शब्द "एल्गोरिदम" उज़्बेक गणितज्ञ अल-खोरज़मी के नाम से आया है, जिन्होंने 9वीं शताब्दी में अंकगणितीय संचालन करने के लिए नियम तैयार किए थे। आधुनिक गणित और कंप्यूटर विज्ञान में, एल्गोरिदम शब्द की निम्नलिखित परिभाषाएँ हैं:

  • - कड़ाई से परिभाषित निष्पादन नियमों के साथ कार्यों का एक क्रम;
  • - एक नुस्खा जो संचालन की सामग्री और अनुक्रम को निर्धारित करता है जो प्रारंभिक डेटा को वांछित परिणाम में बदल देता है;
  • - एक निश्चित कम्प्यूटेशनल प्रक्रिया या कार्यों के किसी अन्य अनुक्रम का सटीक विवरण;
  • - किसी दिए गए प्रकार की किसी भी समस्या को हल करने के लिए आवश्यक कार्यों की एक सीमित संख्या के निष्पादन के अनुक्रम का सटीक और पूर्ण नुस्खा।

एल्गोरिदम को किसी व्यक्ति या एक स्वचालित उपकरण - एक औपचारिक निष्पादक - द्वारा निष्पादित करने के लिए डिज़ाइन किया जा सकता है। कलाकार का कार्य मौजूदा एल्गोरिदम को सटीक रूप से लागू करना है। औपचारिक निष्पादक एल्गोरिथम के सार में गहराई से जाने के लिए बाध्य नहीं है, और इसे समझने में भी असमर्थ हो सकता है।

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

प्रत्येक निष्पादक केवल एक निश्चित कड़ाई से परिभाषित सूची से आदेशों को निष्पादित कर सकता है - निष्पादक आदेशों की प्रणाली। प्रत्येक कमांड के लिए, प्रयोज्यता की शर्तों को निर्दिष्ट किया जाना चाहिए (कमांड को किन पर्यावरणीय स्थितियों में निष्पादित किया जा सकता है) और कमांड को निष्पादित करने के परिणामों का वर्णन किया जाना चाहिए। कमांड को कॉल करने के बाद, कलाकार संबंधित प्रारंभिक कार्रवाई करता है।

कंप्यूटर विज्ञान में, एल्गोरिदम का सार्वभौमिक निष्पादक कंप्यूटर है।


एल्गोरिदम के प्रकार

कंप्यूटर के संबंध में एक एल्गोरिदम एक सटीक नुस्खा है, यानी, उनके विकल्प के लिए संचालन और नियमों का एक सेट, जिसकी मदद से, कुछ प्रारंभिक डेटा से शुरू करके, एक निश्चित प्रकार की किसी भी समस्या को हल करना संभव है।

लक्ष्य, समस्या की प्रारंभिक स्थितियों, इसे हल करने के तरीकों और कलाकार के कार्यों को निर्धारित करने के आधार पर एल्गोरिदम को निम्नानुसार विभाजित किया गया है:

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

एल्गोरिदम को कई तरीकों से निर्दिष्ट किया जा सकता है:

  • - मौखिक, अर्थात्, प्राकृतिक भाषा में क्रियाओं के अनुक्रम को रिकॉर्ड करना;
  • - ग्राफ़िक, विशेष ग्राफिक प्रतीकों का उपयोग करना;
  • - फार्मूलाबद्ध, अर्थात्, गणितीय सूत्रों का उपयोग करना जो गणनाओं का क्रम निर्धारित करते हैं;
  • - तालिका का, और एक तालिका के रूप में जिसमें एल्गोरिदम के निष्पादन के चरण और निष्पादन के परिणाम दर्ज किए जाते हैं।

एल्गोरिथम फ़्लोचार्ट

फ़्लोचार्ट का उपयोग करके एल्गोरिदम निर्दिष्ट करना एल्गोरिदम को चित्रित करने का एक बहुत ही सुविधाजनक साधन साबित हुआ है और व्यापक हो गया है।

एल्गोरिथम फ़्लोचार्ट - परस्पर जुड़े तीरों (संक्रमण रेखाओं) के रूप में एल्गोरिथम का एक चित्रमय प्रतिनिधित्व और ब्लाकों- ग्राफिक प्रतीक, जिनमें से प्रत्येक एल्गोरिथम के एक चरण से मेल खाता है। ब्लॉक के अंदर संबंधित कार्रवाई का विवरण दिया गया है।

तालिका सबसे अधिक उपयोग किए जाने वाले प्रतीकों को दर्शाती है।

फ़्लोचार्ट प्रतीक
प्रतीक नाम पदनाम और भरने का उदाहरण स्पष्टीकरण
प्रक्रिया कम्प्यूटेशनल क्रिया या क्रियाओं का क्रम
समाधान स्थितियों की जाँच करना
परिवर्तन चक्र की शुरुआत
पूर्वनिर्धारित प्रक्रिया सबरूटीन, मानक सबरूटीन द्वारा गणना
इनपुट आउटपुट सामान्य तौर पर I/O
शुरू करें रोकें एल्गोरिथम की शुरुआत, अंत, सबरूटीन में प्रवेश और निकास
दस्तावेज़ परिणामों का आउटपुट

अवरोध पैदा करना " प्रक्रिया"का उपयोग किसी क्रिया या क्रियाओं के अनुक्रम को दर्शाने के लिए किया जाता है जो डेटा के अर्थ, प्रस्तुति के रूप या प्लेसमेंट को बदल देता है। आरेख की स्पष्टता में सुधार करने के लिए, कई व्यक्तिगत प्रसंस्करण ब्लॉकों को एक ब्लॉक में जोड़ा जा सकता है। व्यक्तिगत परिचालनों की प्रस्तुति काफी निःशुल्क है।

अवरोध पैदा करना " समाधान"सशर्त नियंत्रण संक्रमणों को इंगित करने के लिए उपयोग किया जाता है। प्रत्येक "समाधान" ब्लॉक को उस प्रश्न, स्थिति या तुलना की पहचान करनी चाहिए जिसे वह परिभाषित करता है।

अवरोध पैदा करना " परिवर्तन» चक्रीय संरचनाओं को व्यवस्थित करने के लिए उपयोग किया जाता है। (शब्द "संशोधन" का अर्थ है "संशोधन, परिवर्तन")। ब्लॉक के अंदर एक चक्र पैरामीटर लिखा होता है, जिसके लिए प्रत्येक पुनरावृत्ति के लिए इसका प्रारंभिक मान, सीमा स्थिति और पैरामीटर मान को बदलने का चरण दर्शाया जाता है।

अवरोध पैदा करना " पूर्वनिर्धारित प्रक्रिया" का उपयोग सहायक एल्गोरिदम के लिए कॉल को इंगित करने के लिए किया जाता है जो कुछ स्वतंत्र मॉड्यूल के रूप में स्वायत्त रूप से मौजूद होते हैं, और लाइब्रेरी रूटीन के लिए कॉल के लिए उपयोग किया जाता है।

उदाहरण के लिए, अधिकतम दो मान ज्ञात करने के लिए एल्गोरिदम का ब्लॉक आरेख यहां दिया गया है:


एल्गोरिथम के निर्माण के नियम

किसी एल्गोरिथम को अपने उद्देश्य को पूरा करने के लिए, इसे कुछ नियमों के अनुसार बनाया जाना चाहिए। इसलिए, हमें एल्गोरिथम के गुणों के बारे में नहीं, बल्कि एल्गोरिथम के निर्माण के नियमों के बारे में, या एल्गोरिथम की आवश्यकताओं के बारे में बात करने की ज़रूरत है।

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

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

तीसरा नियम- विसंगति. एल्गोरिदम व्यक्तिगत चरणों (कार्य, संचालन, आदेश) से बनाया गया है। अधिक सटीक रूप से, कई चरणों से।

चौथा नियम- नियतिवाद। प्रत्येक चरण के बाद, आपको यह बताना होगा कि अगला चरण कौन सा निष्पादित किया जाएगा, या स्टॉप कमांड दें।

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

एल्गोरिथम गुण

पृथक्ता(असंतोष, अलगाव) - एल्गोरिदम को किसी समस्या को सरल (या पहले से परिभाषित) चरणों के क्रमिक निष्पादन के रूप में हल करने की प्रक्रिया का प्रतिनिधित्व करना चाहिए। एल्गोरिथम द्वारा प्रदान की गई प्रत्येक क्रिया को पिछले वाले के निष्पादन पूरा होने के बाद ही निष्पादित किया जाता है।

यक़ीन- एल्गोरिथम का प्रत्येक नियम स्पष्ट और स्पष्ट होना चाहिए। इस गुण के कारण, एल्गोरिदम का निष्पादन प्रकृति में यांत्रिक है और हल की जा रही समस्या के बारे में किसी अतिरिक्त निर्देश या जानकारी की आवश्यकता नहीं होती है।

क्षमता(परिमितता) - एल्गोरिदम को चरणों की एक सीमित संख्या में समस्या को हल करना चाहिए।

जन चरित्र- समस्या को हल करने के लिए एल्गोरिथ्म एक सामान्य रूप में विकसित किया गया है, अर्थात, यह समस्याओं के एक निश्चित वर्ग के लिए लागू होना चाहिए जो केवल प्रारंभिक डेटा में भिन्न हैं। इस मामले में, प्रारंभिक डेटा को एक निश्चित क्षेत्र से चुना जा सकता है, जिसे एल्गोरिदम की प्रयोज्यता का क्षेत्र कहा जाता है।