শিখেনিন C++ এর A to Z, [পর্ব- ০৬] :: ফাংশন

হ্যালো বন্ধুরা কেমন আছো  সবাই?? আশা করছি প্রোগ্রামিং কে সাথে নিয়ে নতুন কিছু শেখা ভালই চলছে। তোমাদের সামনে আবারো  হাজির হলাম ৬তম পর্ব নিয়ে। আমার আজকের টিউটোরিয়ালটি function নিয়ে সাজানো। function  নিয়ে হয়তোবা আমি এর আগে কোন টিউটোরিয়াল এ কিছুটা আলোচনা করেছিলাম। আমি আবারো  function  নিয়ে আলোচনা করতে চাই আসলে  function  টা কি ?? আর কেন  function  টি c++ প্রোগ্রামিং এ ব্যবহারযোগ্য।

যদি তোমারা আমার আগের কথা গুলো স্মরণ করে থাকো আমি বলেছিলাম কম্পিউটার অনেক গুলো ফাংশন এর সমন্বয়ে গঠিত। তো আমাদের এখানে ছোট্ট একটা ফাংশন আছে।

#include<iostream>

using namespace std;

int main()

{

cin.get();

return 0;

}

আসলে ফাংশন এর কাজ হচ্ছে কোন কিছু করা। আমরা আমাদের ফাংশনকে অনেক গুলো ভিন্ন ভিন্ন ইন্সট্রাকশন দিতে পারি সেমিকোলন এর সাহায্যে। আমরা এটা ইতিমধ্যেই জানি যে প্রত্যেকটি প্রোগ্রাম শুরু হয় মেইন ফাংশন হতে। তো

#include<iostream>

using namespace std;

int main()

{

cin.get();

return 0;

}

এটা একটি ফাংশন।তাহলে চলো আমরা আরও একটি ফাংশন তৈরি করি। সেটার জন্যে আমরা মেইন ফাংশন এর বাইরে তৈরি করবো। এখন আমাদের প্রথমে যে জিনিষটা লাগবে সেটা হল return type। যখন কেউ একটি ফাংশন তৈরি করে তারা সচরাচর কোন একটা ক্যাল্কুলেসন তৈরি করে যেটা কিছু back দিবে।

যেমন,

যদি আমাদের একটা ফাংশন থাকে যেটা আমার ওজন গণনা করবে সেটা তখন আমাকে কিছু সংখা back দিবে।

আসলে ফাংশন সব সময় যে গুননা করে তা  কিন্তু নয়। অনেক সময় ফাংশন তৈরি করাহয় শুধু মাত্র কোন কিছু প্রিন্ট আউট করার জন্যে। তো কিছু সময় ফাংশন কোন কিছু গণনা করে তোমাকে কিছু return back  দিবে। এবার কোন কোন সময় ফাংশন শুধু মাত্র কিছু প্রিন্ট আউট করবে কিন্তু কোন  return back  দিবেনা।

যখন তুমি একটা ফাংশন তৈরি করতে চাচ্ছো যেটা শুধু প্রিন্ট আউট করবে কিন্তু কোন কিছু return back দিবেনা সেটার জন্যে শুধু টাইপ করো void তোমার ফাংশন এর নাম দাও। যেমনটা আমরা প্রথম ফাংশন এ দিয়েছিলাম main তো আমাদের নতুন void  ফাংশন এর নাম দিলাম nilpakhi ওকে এরপরে আমরা আগের মতই পারেন্থেসিস যুক্ত করবো এরপরে ব্রেসেস যুক্ত করবো।

আমি তোমাদের আগেই বলছিলাম যে ব্রেসেস এর মাঝে যা থাকে তাকে বলা হয় body of a function তো প্রত্তেক্ত ফাংশন এর বডি তেই ফাংশন এর সব ইন্সট্রাকশন দেওয়া হয়। তো এখন আমরা বডিতে লিখতেছি যে।

cout<<" we love hemel's programming tutorials"<<endl;

মম আসলেই আমার টিউটোরিয়াল তোমরা লাইক করো নাকি?? তো আমাদের void ফাংশন টি দারাল ঠিক  এরকম

#include<iostream>

using namespace std;

int main()

{

cin.get();

return 0;

}

void nilpakhi()

{

cout<<"we love hemel's programming tutorials"<<endl;

}

যখন আমরা এই ফাংশনটিকে কল করবো তখনি ফাংশন টি ডিসপ্লে করবে

we love hemel's programming tutorials
ওকে একটা বিসয় সব সময় স্মরণ রাখবে সেটা হল। যখনি আমাদের প্রোগ্রামটি মেইন ফাংশন দিয়ে শুরু তখন আমাদের মেইন ফাংশনকে বলতে হবে যে আমি নতুন ফাংশনটি ব্যবহার করতে চাচ্ছি। তো নতুন ফাংশনটি কে ডিসপ্লে করার জন্যে মেইন ফাংশনের মধ্যে টাইপ করো

nilpakhi();

তো এখন যদি আমরা প্রোগ্রামটিকে কম্পাইল করে রান করি তাহলে অবশ্যই error দেখাবে।

তোমরা  দেখতে পাচ্ছ কম্পাইলর লাল চিহ্ন দারা  error  বুঝাচ্ছে। তো আসলে প্রবলেম কথায়?? তোমরা হয়ত চিন্তা করতেছ হিমেল বলেছে যে প্রোগ্রামটি ভালভাবেই তৈরি করা হয়েছে কিন্তু  error  দেখাচ্ছে কেন?? কিন্তু যখনি আমরা কম্পাইল করে রান করলাম কম্পাইলার আমাদের  error  দেখাচ্ছে। আসলে কম্পিউটার প্রোগ্রাম কাজ করে একদম শুরু থেকে

তো শুরু থেকে প্রোগ্রামটি চেক করে যখন মেইন ফাংশন এ আসে তখন প্রোগ্রামটি c++ চিন্তা করে  nilpakhi() এটা কথা থেকে আসল?? সে কারনে কম্পাইলর প্রোগ্রামটিকে error দেখায়। তো এটার জন্যে আমাদের যেটা করতে হবে সেটা হচ্ছে আমাদের নতুন ফাংশনটিকে মেইন ফাংশন এর পূর্বে বসাতে হবে। তাহলে কম্পাইলর যখন চেক করবে তখন আর error দেখাবেনা। তো আমরা আমদের প্রোগ্রামটিকে সাজাব এভাবে।

#include<iostream>

using namespace std;

void nilpakhi()

{

cout<<"we love hemel's programming tutorials"<<endl;

}
int main()

{

nilpakhi();

cin.get();

return 0;

}

এখন প্রোগ্রামটিকে রান করলে আর error   দেখাবেনা।

এখন আমরা আমাদের কাংখিত লেখাটি ডিসপ্লে তে দেখতে পাচ্ছি।

আশা করি ফাংশন সম্পর্কে বুঝতে তোমাদের আর সমস্যা হবেনা।যদি কোন সমস্যা হয় কিম্বা কোন প্রশ্ন থাকে তাহলে অবশ্যই টিউমেন্ট করে জানাবে।

কিম্বা সরাসরি ফেসবুকে আমি Mustakim Billah Hemel

সৌজন্যেঃ Sciencetech

Level 0

আমি মুসতাকিম বিল্লাহ। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 2 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 68 টি টিউন ও 41 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

কঠিন টিউন।

Level 0

খুবই সহজ 🙂 🙂

Level 0

Thank You

Level 0

welcome 🙂

হিমেল আপনাকে ধন্যবাদ টিউটোরিয়ালটির জন্য, এখানে একটা ব্যাপার উল্লেখ করতে চাচ্ছি, সি++ এর টেকনিক্যাল টার্ম গুলোর সাথে তাদের নাম গুলো উল্লেখ করা জরুরি। শুধু জরুরি না, ভীষণ জরুরি। যেমন একটি ভূল বিহীন ফাংশন লেখার পরও কেন কম্পাইলার এরর দেখায় তা আপনি আলোচনা করেছেন, কিন্তু এই ব্যাপার টাকে প্রোগ্রামিং ওয়ার্ল্ড -এ যে “ফাংশন প্রটোটাইপিং” বলে তা উল্লেখ করা হলে, নব্য শিক্ষার্থীরা উপকৃত হতো আরো বেশি। দেখা যায়, অনেক ক্ষেত্রেই আমরা একশন গুলো জানি, শুধু টেকনিক্যাল নাম গুলোর অভাবে সুডো কোড বা কোনো সল্যুশন নিয়ে কাজ করতে পারি না। অনেক ধন্যবাদ আপনাকে, আশা করি একের পর এক কিছু দ্রুত টিউন করবেন এবং তাত্ত্বিক দিক গুলো-ও তুলে ধরবেন। অপেক্ষায় রইলাম।

    Level 0

    @জুয়েল: ধন্যবাদ আপনাকে। আপনার কথাটি সত্য অনেক সময়ই নাম না জানার কারনে অনেক বিপত্তি ঘটে। ইনশাআল্লাহ আমার পরবর্তী টিউটোরিয়াল গুলো আরও ব্যাখ্যা সম্বলিত করার চেষ্টা করবো। 🙂 🙂