গত পর্বে ফাংশন এর প্রাথমিক
আলোচনা করা হয়েছিল। এবার একটু গভীরে যাওয়া যাক...
F(x,y)=x²+xy+y²
F(2,3)=?
F(2,3)=19.
ফাংশনটির ভেতরে যেসব মান
দেওয়া হয়েছে, সেগুলো পর্যায়ক্রমে বসে যায়। প্রথম মান x এ এসাইন হয় আর দ্বিতীয়টি
দ্বিতীয় উপাদান y এ।
এখন গত পর্বের টিউটোরিয়াল ব্যাবহার
করে এটা দিয়ে একটা কোড লিখুন নিজে নিজে। তারপর ইনপুট এ ২ আর ৩ দিয়ে দেখুন, ১৯ হয়
কিনা!
এখন সংখ্যা ছাড়া ফাংশন এর
কোড লিখলে কেমন হবে?
একটা কোড করা যাক...
#include<stdio.h>
void f1(){
printf("this is function 1");
}
void f2(){
printf("this is function 2");
}
void main(){
int a;
printf("Type 1 or 2:");
scanf("%d",&a);
if(a==1)
f1();
else if(a==2)
f2();
return 0;
}
এখানে printf এর জন্য ফাংশন
বানানো হয়েছে। এক্ষেত্রে function এর type void হতে হয়।
আশা করি নিজেই বুঝতে
পারছেন, কিভাবে কি হয়েছে।
ফাংশন এর আর একটা মজার
জিনিস আছে। সেটা Recursion. একটা কোড দেখা যাক...
void recursion()
{
recursion(); /* function calls itself */
}
int main()
{
recursion();
}
এখানে থেক স্পষ্ট ভাবে বোঝা যাচ্ছে, what is recursion? right?
হ্যাঁ। ঠিক ধরেছে। রিকার্শন হচ্ছে এমন একটি ফাংশন, যেটা দিয়ে কোন ফাংশন নিজেই নিজেকে call করে!
এর মাধ্যমে মেইন ফাংশন এ একে কল করা হয়। তারপর এটা রিকার্স এ ঢুকে যায়। তারপর condition fulfill না হওয়া পর্যন্ত রিকার্শন চলতেই থাকে। রিকার্শন শেষ হলে আবার মেইন ফাংশন এ ফিরে আসে।
এর আগে আপনারা নিশ্চয় লুপ ইউজ করে factorial বের করেছেন। prime number বের করেছেন। এবার রিকার্স ইউজ করে করা যাক। আমি factorial বের করে দেখাব। আপনারা prime number বের করে দেখাবেন। ওকে? তাহলে শুরু করা যাক...
এটা রান করলে 15 এর factorial দেখাবে। factorial কি, সেটা নিশ্চয় বলতে হবে না। আর যদি না জেনে থাকেন, কোড দেখুন। বুঝে যাবেন।
আচ্ছা, আর একটা কোড দেখাই। এটা Fibonacci series দেখাবে। নিচের কোড দেখুন।
কি বুঝলেন? এটা প্রথম দশটি ফিবোনাচ্চি নাম্বার স্ক্রিনে প্রিন্ট করবে। আপনি এটা ইচ্ছা মতো কম বেশী করতে পারবেন। scanf ইউজ করে... আর দশ এর জায়গায় কোন variable বসিয়ে...
তো বন্ধুরা, আপনারা এখন প্রাইম নাম্বার বের করুন তো রিকার্শন ইউজ করে...!
হ্যাঁ। ঠিক ধরেছে। রিকার্শন হচ্ছে এমন একটি ফাংশন, যেটা দিয়ে কোন ফাংশন নিজেই নিজেকে call করে!
এর মাধ্যমে মেইন ফাংশন এ একে কল করা হয়। তারপর এটা রিকার্স এ ঢুকে যায়। তারপর condition fulfill না হওয়া পর্যন্ত রিকার্শন চলতেই থাকে। রিকার্শন শেষ হলে আবার মেইন ফাংশন এ ফিরে আসে।
এর আগে আপনারা নিশ্চয় লুপ ইউজ করে factorial বের করেছেন। prime number বের করেছেন। এবার রিকার্স ইউজ করে করা যাক। আমি factorial বের করে দেখাব। আপনারা prime number বের করে দেখাবেন। ওকে? তাহলে শুরু করা যাক...
#include <stdio.h>
int factorial(int i)
{
if(i <= 1)
{
return 1;
}
return i * factorial(i - 1);
}
int main()
{
int i = 15;
printf("Factorial of %d is %d\n", i, factorial(i));
return 0;
}
এটা রান করলে 15 এর factorial দেখাবে। factorial কি, সেটা নিশ্চয় বলতে হবে না। আর যদি না জেনে থাকেন, কোড দেখুন। বুঝে যাবেন।
আচ্ছা, আর একটা কোড দেখাই। এটা Fibonacci series দেখাবে। নিচের কোড দেখুন।
#include <stdio.h>
int fibonaci(int i)
{
if(i == 0)
{
return 0;
}
if(i == 1)
{
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d\t%n", fibonaci(i));
}
return 0;
}
কি বুঝলেন? এটা প্রথম দশটি ফিবোনাচ্চি নাম্বার স্ক্রিনে প্রিন্ট করবে। আপনি এটা ইচ্ছা মতো কম বেশী করতে পারবেন। scanf ইউজ করে... আর দশ এর জায়গায় কোন variable বসিয়ে...
তো বন্ধুরা, আপনারা এখন প্রাইম নাম্বার বের করুন তো রিকার্শন ইউজ করে...!