Recursion in C# In Hindi

Recursion in C# In Hindi

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

Recursion in C# In Hindi

A basic structure of a recursive function in the C# programming language.

C# प्रोग्राम में यूज़ एक रिकर्सिव क्लास फंक्शन में सामान्य रूप से दो मैन फीचर्स या एलिमेंट होते हैं.

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

Syntax of a recursive method in a C# program.

returnType MethodName(parameters)

{

    // here we define a Base case to stop recursion process

    if (/* Add Base case condition */)

    {

        return /* you can define recursion output statement */;

    }

    // here we define a Recursive case (here it call the method itself)

    return ClassMethodName(updatedParameters);

}

Example of factorial calculation in C# programming.

C# प्रोग्राम में रिकर्सन के सबसे कॉमन यूज़ में किसी यूजर एंटर नंबर का फैक्टोरियल वैल्यू कैलकुलेट करना है। यहाँ मौजूदा प्रोग्राम में यूजर डिफाइन किसी इन्टिजर वैल्यू n के फैक्टोरियल को कुछ इस तरह से डिफाइन किया जाता है.

factorial(n) = n * factorial(n-1) for n > 0

    factorial(0) = 1 (Base case)

यहां आप किसी C# प्रोग्राम में फ़ैक्टोरियल नंबर सीक्वेंस में रिकर्शन को कैसे इम्प्लीमेंट कर सकते हैं.

Example of factorial in a C# program.

using System;

class Fact

{

    static void Main()

    {

        int output = Fact_value(7);

        Console.WriteLine(“\n here the Factorial of 7 number is – ” + output);  // Result is – here the Factorial of 7 number is – 5040

    }

    static int Fact_value(int n)

    {

        // here we define a Base case – factorial of 0 is 1

        if (n == 0)

        {

            return 1;

        }

        else

        {

            // here we use Recursive case – n * factorial value of (n – 1)

            return n * Fact_value(n – 1);

        }

    }

}

Explanation of factorial calculation in C#.

  • यहाँ फैक्टोरियल मेथड अपने आप को n-1 के साथ तब तक कॉल करता है, जब तक n == 0 वैल्यू न हो जाए, जिस पॉइंट पर यह 1 बेस केस वैल्यू को रिटर्न करता है।
  • इसके बाद, जब रिकर्सिव फंक्शन कॉल इसे “अनविंड” करता है. तो फ़ैक्टोरियल वैल्यू रिज़ल्ट अपने आप में मल्टीप्लाई हो जाते हैं. अंत में फ़ाइनल फैक्टोरियल रिज़ल्ट के रूप में आउटपुट डिस्प्ले होता है।

Fibonacci sequence in C#.

C# प्रोग्रामिंग लैंग्वेज में रिकर्सन का एक और कॉमन एक्साम्प्ल में फिबोनाची सीक्वेंस सीरीज वैल्यू में नंबर्स को जेनरेट करना है, जिसमे।

फिबोनाची(0) = 0

फिबोनाची(1) = 1

फिबोनाची(n) = फिबोनाची(n-1) + फिबोनाची(n-2) n > 1 के लिए

Example of Fibonacci sequence in C# programming.

using System;

class Fibonacci_Sequence

{

    static void Main()

    {

        int output = Fibonacci_seq(9);

        Console.WriteLine(“the Fibonacci sequence of 9 number is – ” + output);  // Result is – the Fibonacci sequence of 9 number is – 34

    }

    static int Fibonacci_seq(int n)

    {

        // here we define a Base cases

        if (n == 0)

        {

            return 0;

        }

        if (n == 1)

        {

            return 1;

        }

        else

        {

            // here we use a Recursive case method

            return Fibonacci_seq(n – 1) + Fibonacci_seq(n – 2);

        }

    }

}

Explaining the Fibonacci sequence.

  • यहाँ Fibonacci_seq मेथड, Fibonacci(n-1) और Fibonacci(n-2) के रिज़ल्ट को ऐड कर Fibonacci_seq(n) वैल्यू को कैलकुलेट करता है। यह मौजूदा प्रोग्राम में तब तक रन होता रहता है, जब तक इसे कोई बेस केस नहीं मिल जाता है।

Advantages of using recursion in the C# programming language.

  • Easy – रिकर्सन मेथड यूजर डिफाइन क्लास में उन प्रॉब्लम को अप्लाई करना इजी कर सकता है, जिन्हें स्माल सब-ग्रुप में छोटी सब-प्रॉब्लम जैसे, ऐरे में एक एलिमेंट ट्री ट्रैवर्सल करना, फैक्टोरियल वैल्यू को फाइंड करना, फिबोनाची सीक्वेंस में नंबर को कन्टीन्यूस ऐड करने आदि जैसे रिकर्सिव प्रॉब्लम को ब्रेक कर सॉल्व किया जा सकता है।
  • Beauty – C# प्रोग्राम में कुछ प्रॉब्लम के लिए रिकर्सिव सॉल्यूशन रिपेटेड इटरेशन सॉल्यूशन की तुलना में ज़्यादा अट्रैक्टिव इफेक्टिव और समझने में आसान होते हैं।

Disadvantages of recursion in the C# programming language.

  • Performance issues – C# प्रोग्रामिंग लैंग्वेज में यूजर डिफाइन रिकर्सिव मेथड ज्यादातर अधिक मेमोरी स्पेस को रिज़र्व करते हैं, और प्रोसेसिंग में अधिक स्लो होते हैं. क्योंकि हर बार प्रोग्राम में रिकर्सिव मेथड प्रोसेस को कॉल स्टैक आर्डर सीक्वेंस में एक नया फ्रेम को ऐड करता है।
  • Stack overflow hazard – ज्यादातर मामलो में रिकर्सिव मेथड बहुत डीप वर्क करता है, और यदि इसमें कोई सही बेस केस अप्लाई नहीं किया गया है. तो यह मौजूदा प्रोग्राम में बहुत ज़्यादा रिकर्सिव फंक्शन कॉल के कारण स्टैक ओवरफ्लो प्रॉब्लम हो सकता है।

Some important points about recursion methods.

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

Leave a Reply