ফাংশনের বিভিন্ন অংশের বর্ননা

উপরের চিত্রটিতে একটি ব্লেন্ডার দিয়ে শরবত বানানো দেখানো হয়েছে। শরবত বানানোর প্রক্রিয়াটি লক্ষ্য করুনঃ
  • ব্লেন্ডারের ভেতরে শুরুতে আপনি আপনার পছন্দের ফল দিবেন।চিত্রটিতে input বলতে আপনার পছন্দের ফলকে বুঝানো হয়েছে।
  • সব input দেওয়া হয়ে গেলে ব্লেন্ডারের বাটনে চাপ দিন।
  • হয়ে গেল শরবত। উপরের চিত্রে তৈরিকৃত শরবত কে আউটপুট হিসাবে দেখানো হয়েছে।
শরবত বানানোর এই সহজ প্রক্রিয়াটি বুঝতে আপনার যত সময় লেগেছে তার চেয়েও কম সময় লাগবে ‘কিভাবে প্রোগ্রামে ফাংশন কাজ করে’ তা বুঝতে।উপরের চিত্রে ব্লেন্ডারটাই আসলে ফাংশন। ফাংশনের কাজ হল ইনপুট কে প্রক্রিয়া করে আউটপুট তৈরি করা। অর্থাৎ প্রোগ্রামের ভাষায় ইনপুটকে বলা হয় আর্গুমেন্ট। এই পর্যন্ত আলোচনায় ফাংশনের দুটি অংশের সাথে পরিচিত হয়েছেন। একটি হলঃ রিটার্ন টাইপ, আরেকটি হলঃ ফাংশনের নাম ফাংশনের মোট চারটি অংশ আছে।
  • ১ম অংশঃ রিটার্ন টাইপ। এটাকে আউটপুট বা শরবতের মত চিন্তা করুন।
  • ২য় অংশঃ ফাংশনের নাম। উপরের চিত্রে শরবত বানানোর যন্ত্রের নাম অর্থাৎ ব্লেন্ডারের সাথে ফাংশন নামটি তুলনা করতে পারেন।
  • ৩য় অংশঃ আর্গুমেন্ট। এটিকে আপনি ইনপুটের সাথে তুলনা করতে পারেনে। যেমনঃ আনারস, আপেল, কলা ইত্যাদি।
  • ৪র্থ অংশঃ ফাংশন বডি। এই অংশটি সবচেয়ে গুরুত্বপূর্ণ।এটিকে ব্লেন্ডারের ভেতরের সব যন্ত্রাংশের সাথে তুলনা করতে পারেন। ব্লেন্ডারের সব যন্ত্রাংশ মিলে ইনপুট গুলো প্রক্রিয়া করে আউটপুট তৈরি করে। ঠিক একই ভাবে প্রোগ্রামের ফাংশন বডি তৈরি হয় অনেকগুলো স্টেটমেন্ট মিলে। প্রোগ্রামের এই স্টেটমেন্ট গুলো আর্গুমেন্ট গুলাকে প্রক্রিয়া করে আউটপুট তৈরি করে।
অর্থাৎ একটি ফাংশনের সাধারন ফরম্যাট হলঃ
অর্থাৎ ওপেনিং কার্লি ব্রেস ‘{’ এবং ক্লোজিং কার্লি ব্রেস ‘}’ এর মাঝখানে থাকে ফাংশন বডি। একটি উদাহরন দেইঃ মনেকরুন, sum নামে একটি ফাংশন লিখবেন যেই ফাংশনে ইনপুট দিবেন দুইটি পূর্ন সংখ্যা। অর্থাৎ আর্গুমেন্ট হলঃ int টাইপের দুটি সংখ্যা এবং ফাংশনটি এই সংখ্যা দুটিকে প্রক্রিয়া করে আউটপুট দেখাবে এবং আউটপুট হবেঃ সংখ্যা দুইটির যোগফল। এখন ফাংশনের বিভিন্ন অংশগুলো ব্যাখ্যা করা যাকঃ ১. Return_Data_Type: int (কারন যেহেতু ইনপুট বা আর্গুমেন্ট int টাইপের আবার দুইটি int টাইপের সংখ্যার যোগফলও int টাইপের। তাই আউটপুট বা Return_Data_Type হলঃ int টাইপের) ২. ফাংশনের নামঃ sum ৩. ইনপুট বা আর্গুমেন্টঃ দুইটি পূর্নসংখ্যা। দুইটি পূর্ন সংখ্যার জন্য দুইটি int টাইপের ভেরিয়েবল ডিক্লেয়ার করে দিতে হবে। যেমনঃ int a, int b. এই দুইটি ভেরিয়েবল কে আপনি একসাথে int a,b লিখতে পারবেন না। অর্থাৎ আর্গুমেন্ট লিখার শর্ত হলঃ যতগুলো আর্গুমেন্ট সব গুলো কে কমা দিয়ে আলাদা করে ডিক্লেয়ার করতে হবে। ৪. ফাংশন বডিঃ যেহেতু ইনপুট দেওয়া সংখ্যা দুইটি কে যোগ করতে হবে। তাই আর্গুমেন্ট দুইটি কে যোগ করতে হবে ফাংশন বডি তে। অর্থাৎ ফাংশন বডিতে থাকবেঃ
এই যোগফলটা রিটার্ন করতে return কীওয়ার্ডটা a+b এর আগে লিখে দিতে হবে। অর্থাৎ সম্পূর্ন ফাংশন বডিটা হবেঃ
সম্পূর্ন ফাংশনটি হবেঃ
এখন এই ফাংশনটি কখন দুইটি সংখ্যা যোগ করে আউটপুট দিবে? উপরের চিত্রে শরবত বানানোর প্রক্রিয়াটি মনে করুন আপনি ব্লেনডারের ভেতরে আনারস দিলেন, পানি দিলেন, পরিমান মত চিনি দিলেন। এখন গ্লাস হাতে নিয়ে বসে থাকলে শরবত হবে? আপনাকে ব্লেন্ডারের বাটনটিতে চাপ দিয়ে এর ভেতরের যন্ত্রাংশ গুলোকে সক্রিয় করে দিতে হবে।তবেই ব্লেন্ডার আনারস, পানি, চিনিকে শরবত হিসেবে ফেরত দিবে। ঠিক একইভাবে উপরে আমি সম্পূর্ণ প্রোগ্রামটি লিখেছি। এখনও বাটনে চাপ দেই নি।প্রোগ্রামে বাটনে চাপ দেওয়া মানে কি? একটি ফাংশ্নের এক্সিকিউশন শুরু করার জ়ন্য ঐ ফাংশ্নটিকে কল করতে হয়।এটাই আসলে বাটনে চাপ দেওয়া কিন্তু প্রোগ্রামিং এর পরিভাষা না।গল্পের সাতে মিলিয়ে বুঝানোর জন্য এটা এভাবে বললাম ফাংশনের এক্সিকিউশ্ন শুরু হবে এবং শুরুতেই 10 মানটি চলে যাবে a এর মাঝে এবং 30 মানটি চলে যাবে b এর মাঝে। ফাংশন বডিতে
থাকায় 10+30 অর্থাৎ 40 মান রিটার্ন হবে।তাই s এর মাঝে 30 মানটি রাখতে
s=sum(10,30);
লিখা হয়েছে।এখন sum ফাংশনটি main() ফাংশনে কল করলে সম্পূর্ন প্রোগ্রামটি হবে নিচের মতঃ

Code Example

OUTPUT

40

এখন মনে করুন, sum ফাংশনটি কোন মান রিটার্ন করবে না। sum ফাংশনের ভেতরেই যোগফলটি প্রিন্ট করবে। Return_Data_Type হবেঃ void (যখন কোন ফাংশন কোন মান রিটার্ন করে না তখন রিটার্ন টাইপ হয়ঃ void)এবং সম্পূর্ন ফাংশনটি হবেঃ
সম্পূর্ন প্রোগ্রামটি হবেঃ

Code Example

OUTPUT

40