somewhere in... blog
x
ফোনেটিক ইউনিজয় বিজয়

রূপ কথার গল্পে লুকিয়ে আছে কম্পিউটার প্রোগ্রামিং(রিকারসিভ ফাংশন)

১৮ ই আগস্ট, ২০১৪ রাত ১২:৪৫
এই পোস্টটি শেয়ার করতে চাইলে :

একদেশে ছিল এক ধার্মিক লোক। লোকটির অনেক আধ্যাত্মিক ক্ষমতা ছিল। একদিন ধার্মিক লোকটি মন্ত্র পড়ে একটি দৈত্য নিয়ে আসল। তারপর লোকটি দৈত্যটিকে আদেশ করলঃ
“ঠিক তোমার মত অরেকটি দৈত্য নিয়ে আস”। সাথে সাথে হুবুহু প্রথম দৈত্যের মত দ্বিতীয় দৈত্য হাজির হল।দ্বিতীয় দৈত্যটিকে কিছু না বলার পরেও দ্বিতীয় দৈত্যটি “ঠিক তোমার মত অরেকটি দৈত্য নিয়ে আস” – এটিকে আদেশ মনে করে তৃতীয় দৈত্য নিয়ে আসল। একইভাবে তৃতীয় দৈত্যটি “ঠিক তোমার মত অরেকটি দৈত্য নিয়ে আস” – এটিকে আদেশ মনে করে চতুর্থ দৈত্য নিয়ে আসল। এভাবে ধার্মিক লোকটির সামনে একের পর এক দৈত্য আসতে লাগল। একসময় ধার্মিক লোকটি চিৎকার করে বলল-
“থাম”
তারপর সাথে সাথে দৈত্য আসা থেমে গেল।
এখানে একটা ব্যাপার লক্ষ্য করুন, ধার্মিক লোকটি কিন্তু শুধু মাত্র প্রথম দৈত্যটিকে আদেশ করেছিল ঠিক তার মত একটি দৈত্য নিয়ে আসতে। তারপরেও কেন এতগুলো দৈত্য আসল? ধার্মিক লোকটির আদেশে একটু ভুল ছিল। সেটি হলঃ
“ঠিক তোমার মত”
একথাটির কারনে প্রথম দৈত্য যেই দ্বিতীয় দৈত্যটিকে নিয়ে এসেছিল সেটির চিন্তা চেতনা ও স্মৃতি শক্তি সবকিছুই প্রথম দৈত্যের মত। তাই প্রথম দৈত্যের মাথায় যেই আদেশটি ছিল সেই আদেশটি দ্বিতীয় দৈত্যের মাথায় ও চলে আসল। তাই দ্বিতীয় দৈত্যটিকে আদেশ না করার পরেও সে তৃতীয় দৈত্য নিয়ে আসল এবং এইভাবে চলতে থাকল। তর্ক করাই যদি আপনার স্বভাব হয় তাহলে আপনি নিশ্চয়ই প্রশ্ন করবেন – প্রথম দৈত্য যখন দ্বিতীয় দৈত্য নিয়ে আসল তখন প্রথম দৈত্যের মাথায় তো এটাও ছিল যে সে তার আদেশ পূরন করেছে। তাহলে দ্বিতীয় দৈত্যের মাথায় কেন শুধু আদেশ করার স্মৃতিটাই আছে? আদেশ পূরন করার স্মৃতিটা নেই কেন?
লক্ষ্য করুন, প্রথম দৈত্যের মাথায় প্রথমে থাকে আদেশের স্মৃতিটি পরে থাকে আদেশ পূরন করার স্মৃতিটি । ঠিক একইভাবে দ্বিতীয় দৈত্যটির মাথায় প্রথমে থাকে “ঠিক তোমার মত একটি দৈত্য নিয়ে আস” – এ আদেশটি এবং পরে থাকে আদেশ পূরন করার স্মৃতিটি। তাই দ্বিতীয় দৈত্যটির মাথায় প্রথমে যে স্মৃতিটি সক্রিয় হয় সেটি পূরন করার পর পরবর্তি স্মৃতিটির কথা মনে পরে। এভাবে আদেশ পূরন করার স্মৃতিটি মনে পড়ার আগেই আদেশ পূরন হয়ে যায়।
এ গল্পে ধার্মিক লোকটির একটি কথার কারনে একের পর এক দৈত্য আসতেছিল। সেটি হলঃ
“ঠিক তোমার মত”
ঠিক একইভাবে আপনি যখন একটি ফাংশনকে ঠিক ঐ ফাংশনে কল করবেন তখন ফাংশনটি কল হতেই থাকবে। নিচের প্রোগ্রামটি লক্ষ্য করুনঃ
#‎include‬
int main()
{
ghost();
return 0;
}
void ghost()
{
printf("
I am a ghost ");
ghost();
}

এ প্রোগ্রামটা রান করলে আপনি আউটপুট স্ক্রীনে
I am a ghost
I am a ghost
I am a ghost
……
এভাবে ‘I am a ghost’ লেখাটা বার বার প্রিন্ট হওয়াটা দেখতে পাবেন।এখন দেখা যাক প্রগ্রাম টা কিভাবে কাজ করেছে।
main () ফাংশনের ভেতরে
ghost () ; statement টা পাওয়ার পর
void ghost ()
{
printf(“/I am a ghost “);
ghost();
}
ফাংশনটা এক্সিকিউট হওয়া শুরু করবে। ghost() ফাংশনের শুরুতে printf(“/I am a ghost “);লাইনটা এক্সিকিউট হবে।তারপর ghost(); statement এর কারনে ghost() ফাংশনের ভেতরেই ghost() ফাংশনটা কল হবে তাই আবার
‘void ghost ()
{’
এর পরের লাইন printf (“/n I am a ghost”); এক্সিকিউট হবে এবং আবার ghost (); statement টা পাবে এবং একইভাবে printf(“/n I am a ghost”); লাইনটা এক্সিকিউট হবে এবং এভাবে চলতে থাকবে। ঠিক যেভাবে উপরের গল্পে একের পর এক ভুত আসতেছিল একইভাবে এই প্রোগ্রামে ‘I am a ghost’ লেখাটা প্রিন্ট হতেই থাকবে।এই যে একটি ফাংশনের ভেতরে সেই ফাংশনটাকে কল করে ফাংশনটার এক্সিকিউশনের পুনরাবৃতি ঘটানো হচ্ছে একেই বলে Recursion of function আর ঐ ফাংশনটাকে বলে Recursive function
উপরের গল্পে ধার্মিক লোকটি –
‘থাম’ বলে ভূত আসা বন্ধ করেছিল।
ঠিক একইভাবে প্রোগ্রামটাকে কোন শির্তের উপর ভিত্তি করে বন্ধ করতে হবে। যেমনঃ মনে করুন একটি শর্ত হলঃ
‘I am a ghost’ এ লেখাটা ১০ বার প্রিন্ট করতে হবে। তাহলে প্রোগ্রাম টা হবে নিচের মতঃ

#include
void ghost()
{
static int i=0;
if(i==10)
goto end;
printf("
I am a ghost %d",++i);
ghost();
end:
;
}
int main()
{
ghost();
return 0;
}
Output

I am a ghost 1
I am a ghost 2
I am a ghost 3
I am a ghost 4
I am a ghost 5
I am a ghost 6
I am a ghost 7
I am a ghost 8
I am a ghost 9
I am a ghost 10
গল্পটি যেখান থেকে সংগ্রহ করা হয়েছে সেই লিঙ্কটি হলঃ Click This Link
সর্বশেষ এডিট : ১৮ ই আগস্ট, ২০১৪ রাত ১২:৫৫
২টি মন্তব্য ০টি উত্তর

আপনার মন্তব্য লিখুন

ছবি সংযুক্ত করতে এখানে ড্রাগ করে আনুন অথবা কম্পিউটারের নির্ধারিত স্থান থেকে সংযুক্ত করুন (সর্বোচ্চ ইমেজ সাইজঃ ১০ মেগাবাইট)
Shore O Shore A Hrosho I Dirgho I Hrosho U Dirgho U Ri E OI O OU Ka Kha Ga Gha Uma Cha Chha Ja Jha Yon To TTho Do Dho MurdhonNo TTo Tho DDo DDho No Po Fo Bo Vo Mo Ontoshto Zo Ro Lo Talobyo Sho Murdhonyo So Dontyo So Ho Zukto Kho Doye Bindu Ro Dhoye Bindu Ro Ontosthyo Yo Khondo Tto Uniswor Bisworgo Chondro Bindu A Kar E Kar O Kar Hrosho I Kar Dirgho I Kar Hrosho U Kar Dirgho U Kar Ou Kar Oi Kar Joiner Ro Fola Zo Fola Ref Ri Kar Hoshonto Doi Bo Dari SpaceBar
এই পোস্টটি শেয়ার করতে চাইলে :
আলোচিত ব্লগ

=আকাশে তাকিয়ে ডাকি আল্লাহকে=

লিখেছেন কাজী ফাতেমা ছবি, ১৪ ই ডিসেম্বর, ২০২৫ বিকাল ৪:০১


জীবনে দুঃখ... আসলে নেমে
শান্তি গেলে থেমে;
আমি বারান্দায় দাঁড়িয়ে হই উর্ধ্বমুখী,
আল্লাহকে বলি সব খুলে, কমে যায় কষ্টের ঝুঁকি।

আমি আল্লাহকে বলি আকাশে চেয়ে,
জীবন নাজেহাল প্রভু দুনিয়ায় কিঞ্চিত কষ্ট পেয়ে;
দূর করে দাও সব... ...বাকিটুকু পড়ুন

"ছাত্র-জনতার বেপ্লবের" ১৮ মাস পরে, আপনার ভাবনাচিন্তা ঠিক আগের মতোই আছে?

লিখেছেন জেন একাত্তর, ১৪ ই ডিসেম্বর, ২০২৫ বিকাল ৫:৫৭



২০২৪ সালের পহেলা জুলাই "ছাত্র-জনতার বেপ্লব শুরু হয়, "৩৬শে জুলাই" উহা বাংলাদেশে "নতুন বাংলাদেশ" আনে; তখন আপনি ইহাকে ব্যাখ্যা করেছেন, ইহার উপর পোষ্ট লিখেছেন, কমেন্ট করেছেন; আপনার... ...বাকিটুকু পড়ুন

আমাদের হাদিকে গুলি করা, আর আওয়ামী শুয়োরদের উল্লাস। আমাদের ভুল কোথায়?

লিখেছেন তানভির জুমার, ১৪ ই ডিসেম্বর, ২০২৫ রাত ৯:৫৩



৩০ জনের একটা হিটলিস্ট দেখলাম। সেখানে আমার ও আমার স্নেহের-পরিচিত অনেকের নাম আছে। খুব বিশ্বাস করেছি তা না, আবার খুব অবিশ্বাস করারও সুযোগ নাই। এটাই আমার প্রথম... ...বাকিটুকু পড়ুন

এ যুগের বুদ্ধিজীবীরা !

লিখেছেন সৈয়দ কুতুব, ১৫ ই ডিসেম্বর, ২০২৫ রাত ১:৪০


ডিসেম্বর মাসের চৌদ্দ তারিখ বাংলাদেশে বুদ্ধিজীবী দিবস পালন করা হয়। পাকিস্তান মিলিটারী ও তাদের সহযোগীরা মিলে ঘর থেকে ডেকে নিয়ে হত্যা করেন লেখক, ডাক্তার, চিকিৎসক সহ নানান পেশার বাংলাদেশপন্থী বুদ্ধিজীবীদের!... ...বাকিটুকু পড়ুন

টাঙ্গাইল শাড়িঃ অবশেষে মিললো ইউনস্কর স্বীকৃতি

লিখেছেন কিরকুট, ১৫ ই ডিসেম্বর, ২০২৫ সকাল ১০:৫৭



চারিদিকে যে পরিমান দুঃসংবাদ ছড়িয়ে ছিটিয়ে আছে এর মধ্যে নতুন এক গৌরবময় অধ্যায়ের সূচনা হলো বাংলাদেশের টাঙ্গাইলের তাতের শাড়ি এর জন্য, ইউনেস্কো এই প্রাচীন হ্যান্ডলুম বুননের শিল্পকে Intangible Cultural... ...বাকিটুকু পড়ুন

×