C Programming (রিকার্সন)

C Programming Recursion (রিকার্সন)

একটি ফাংশন যা নিজেকে কল করে একটি পুনরাবৃত্তিমূলক ফাংশন হিসাবে পরিচিত হয় এবং এই কৌশল  Recursion হিসাবে পরিচিত । Recursion একটি প্রোগ্রামিং টেকনিক যা প্রোগ্রামার নিজেকে পরিপ্রেক্ষিতে অপারেশন প্রকাশ করতে পারবেন।  রিকার্সন কিভাবে কাজ করে?



প্রতিবন্ধকতা সৃষ্ট করে এমন কিছু শর্ত  দেখা না পাওয়া পর্যন্ত পুনরাবৃত্তি অব্যাহত।অসীম রিকার্সনকে বাধা দেওয়ার জন্য if...else স্টেটমেন্ট অথবা এধরনের অন্য কোনো স্টেটমেন্ট ব্যবহার করা যেতে পারে যেখানে এক অংশ রিকার্সিভ হবে, কিন্তু অন্যান্য অংশ রিকার্সিভ হবে না।

উদাহরনঃ রিকার্সন ফাংশন

//রিকার্সন ব্যবহার করে স্বাভাবিক সংখ্যা যোগের জন্য প্রোগ্রাম

#include <stdio.h>
int sum(int num);

int main()
{
    int number, result;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    result = sum(number);

    printf("sum=%d", result);
}

int sum(int num)
{
    if (num!=0)
        // sum() ফাংশন নিজেই নিজেকে কল করে
        return num + sum(num-1); 
    else
        return num;
}

আউটপুট


Enter a positive integer: 3
sum= 6

উপরের প্রোগ্রামে number ভ্যারিয়েবল sum() ফাংশনের মধ্যে দিয়ে আর্গুমেন্ট হিসাবে অতিক্রম হয় এবং main() ফাংশন থেকে sum() ফাংশন প্রাথমিকভাবে কল(call) হয়। ধরুন, num এর প্রাথমিক ভ্যালু 3। পরবর্তী ফাংশন কলে sum() ফাংশনের মধ্য দিয়ে 2 অতিক্রম করানো হয়। num এর ভ্যালু 0 এর সমান না হওয়া পর্যন্ত এই প্রক্রিয়া চলতে থাকে। যখন num এর ভ্যালু 0 এর সমান হয় তখন if কন্ডিশন ব্যার্থ হয় এবং else অংশ এক্সিকিউশন হয়ে যোগফল main() ফাংশনের কাছে রিটার্ন করে।




রিকার্সনের সুবিধা এবং অসুবিধা

রিকার্সন প্রোগ্রামকে সহজ এবং স্বচ্ছ রাখে। রিকার্সন ব্যবহার করে সকল এলগরিদমকে পৌনঃপুনিকভাবে(recursively) ডিফাইন্ড করা যেতে পারে। ফলে ইহা বুঝা এবং প্রমাণ করা উভয়ই সহজ হয়ে যায়। আপনার প্রোগ্রামের মুখ্য বিষয় যদি দ্রুতগতি সম্পন্ন হয় তাহলে রিকার্সন না ব্যবহার করাই ভাল। কারণ রিকার্সন মেমোরির অনেক জায়গা দখল করে এবং সাধারণত ধীর গতির হয়। ইহার পরিবর্তে আপনি লুপ ব্যবহার করতে পারেন।

No comments

Theme images by luoman. Powered by Blogger.