উদাহরণ সহ C ++ ফাংশন

C ++ এ একটি ফাংশন কি?

প্রতি ফাংশন C ++ এ বিবৃতিগুলির একটি গ্রুপ বোঝায় যা ইনপুট নেয়, এটি প্রক্রিয়া করে এবং একটি আউটপুট প্রদান করে। একটি ফাংশনের পিছনে ধারণা হল বারবার করা সাধারণ কাজগুলিকে একত্রিত করা। আপনার যদি বিভিন্ন ইনপুট থাকে, তাহলে আপনি একই কোড আর লিখবেন না। আপনি কেবল প্যারামিটার নামক ডেটার একটি ভিন্ন সেট দিয়ে ফাংশনটিকে কল করবেন।

প্রতিটি C ++ প্রোগ্রামের কমপক্ষে একটি ফাংশন আছে, প্রধান () ফাংশন। আপনি আপনার কোডকে বিভিন্ন ফাংশনে ভাগ করতে পারেন। এই বিভাগটি এমন হওয়া উচিত যে প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ করে।

C ++ স্ট্যান্ডার্ড লাইব্রেরিতে অনেক বিল্ট-ইন ফাংশন আছে। আপনি আপনার প্রোগ্রামের মধ্যে এই ফাংশন কল করতে পারেন।

এই C ++ টিউটোরিয়ালে, আপনি শিখবেন:

কেন ফাংশন ব্যবহার?

ফাংশন ব্যবহারের সাথে যুক্ত অসংখ্য সুবিধা রয়েছে। এর মধ্যে রয়েছে:

  • প্রতিটি ফাংশন সম্পর্কিত কোড একসাথে রাখে। এটি প্রোগ্রামারদের কোড বোঝা সহজ করে তোলে।
  • ফাংশন কোড পুনরাবৃত্তি দূর করে প্রোগ্রামিংকে সহজ করে তোলে।
  • ফাংশন কোড পুনরায় ব্যবহার সহজতর। আপনি প্রোগ্রামের বিভিন্ন বিভাগে বা প্রোগ্রামের বাইরেও একটি কাজ সম্পাদন করতে একই ফাংশনকে কল করতে পারেন।

অন্তর্নির্মিত ফাংশন

C ++ লাইব্রেরিতে ফাংশন অন্তর্নির্মিত C ++ ফাংশন। এই ফাংশনগুলি ব্যবহার করতে, আপনি কেবল তাদের সরাসরি আহ্বান/কল করুন। আপনি নিজে ফাংশন লিখতে হবে না।

উদাহরণ 1:

 #include #include using namespace std; int main() { double num, squareRoot; cout <> num; squareRoot = sqrt(num); cout << 'The square root of ' << num << ' is: ' << squareRoot; return 0; } 

আউটপুট:

এখানে কোডটির একটি স্ক্রিনশট দেওয়া হল:

কোড ব্যাখ্যা:

  1. আইওস্ট্রিম হেডার ফাইলটি আমাদের ফাংশনে ব্যবহার করার জন্য অন্তর্ভুক্ত করুন।
  2. Cmath লাইব্রেরি এর ফাংশন ব্যবহার করতে অন্তর্ভুক্ত করুন। আমরা এটিতে সংজ্ঞায়িত sqrt () ফাংশনটি ব্যবহার করতে চাই।
  3. আমাদের কোডে এসটিডি নেমস্পেস অন্তর্ভুক্ত করুন তার ক্লাসগুলি এটিকে কল না করে ব্যবহার করতে।
  4. প্রধান () ফাংশন কল করুন। এই ফাংশনের মূল অংশে প্রোগ্রামের যুক্তি যুক্ত করা উচিত।
  5. দুটি ডাবল ভেরিয়েবল, num, এবং squareRoot ঘোষণা করুন।
  6. কনসোলে কিছু লেখা প্রিন্ট করুন। টেক্সট ব্যবহারকারীকে একটি নম্বর লিখতে বলে।
  7. কীবোর্ড থেকে ব্যবহারকারীর ইনপুট পড়ুন। ইনপুট ভেরিয়েবল num এর মান হয়ে যাবে।
  8. লাইব্রেরি ফাংশনকে কল করুন sqrt (), যা একটি সংখ্যার বর্গমূল গণনা করে। আমরা ফাংশনে num প্যারামিটার পাস করেছি, মানে এটি num এর বর্গমূল গণনা করবে। এই ফাংশনটি cmath লাইব্রেরিতে সংজ্ঞায়িত করা হয়েছে।
  9. ব্যবহারকারীর দ্বারা প্রবেশ করা সংখ্যা, এর বর্গমূল এবং কনসোলে অন্য কিছু পাঠ্য মুদ্রণ করুন।
  10. সফলভাবে সমাপ্ত হলে প্রোগ্রাম অবশ্যই মূল্য ফেরত দিতে হবে।
  11. প্রধান () ফাংশনের শরীরের শেষ।

ব্যবহারকারী-নির্ধারিত ফাংশন

C ++ প্রোগ্রামারদের তাদের নিজস্ব ফাংশন সংজ্ঞায়িত করতে দেয়। ফাংশনের উদ্দেশ্য হল গ্রুপ সম্পর্কিত কোড। কোডটি তারপর একটি অনন্য শনাক্তকারী, ফাংশন নাম দেওয়া হয়।

ফাংশনটি প্রোগ্রামের অন্য কোন অংশ থেকে বলা/আহ্বান করা যেতে পারে। এটি তার শরীরের মধ্যে সংজ্ঞায়িত কোডটি কার্যকর করবে।

উদাহরণ 2:

 #include using namespace std; void sayHello() { cout << 'Hello!'; } int main() { sayHello(); return 0; } 

আউটপুট:

এখানে কোডটির একটি স্ক্রিনশট দেওয়া হল:

কোড ব্যাখ্যা:

  1. আইওস্ট্রিম হেডার ফাইলটি আমাদের ফাংশনে ব্যবহার করার জন্য অন্তর্ভুক্ত করুন।
  2. আমাদের কোডে এসটিডি নেমস্পেস অন্তর্ভুক্ত করুন তার ক্লাসগুলি এটিকে কল না করে ব্যবহার করতে।
  3. SayHello () নামে একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন তৈরি করুন।
  4. SayHello () ফাংশন বলা হলে কনসোলে কিছু লেখা প্রিন্ট করুন।
  5. SayHello () ফাংশনের বডি শেষ।
  6. প্রধান () ফাংশন কল করুন। এই ফাংশনের মূল অংশে প্রোগ্রামের যুক্তি যুক্ত করা উচিত।
  7. SayHello () নামে ফাংশনটি কল/আহ্বান করুন।
  8. সফলভাবে সমাপ্ত হলে প্রোগ্রাম অবশ্যই মূল্য ফেরত দিতে হবে।
  9. প্রধান () ফাংশনের শরীরের শেষ।

ফাংশন ঘোষণা/প্রোটোটাইপ

যদি আপনি প্রধান () ফাংশনের পরে একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন সংজ্ঞায়িত করেন, C ++ কম্পাইলার একটি ত্রুটি ফেরত দেবে। কারণ হল যে কম্পাইলার ব্যবহারকারী-সংজ্ঞায়িত ফাংশনের বিশদ জানেন না। বিবরণে এর নাম, আর্গুমেন্টের ধরন এবং তাদের ফেরতের ধরন অন্তর্ভুক্ত রয়েছে।

C ++ এ, ফাংশন ডিক্লারেশন/প্রোটোটাইপ একটি শরীর ছাড়া একটি ফাংশন ঘোষণা করে। এটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশনের কম্পাইলার বিবরণ দেয়।

ডিক্লারেশন/প্রোটোটাইপে আমরা রিটার্ন টাইপ, ফাংশনের নাম এবং আর্গুমেন্ট টাইপ অন্তর্ভুক্ত করি। যুক্তিগুলির নাম যোগ করা হয় না। যাইহোক, যুক্তির নাম যোগ করলে কোন ত্রুটি হয় না।

ফাংশন সংজ্ঞা

ফাংশন ঘোষণার উদ্দেশ্য হল C ++ কম্পাইলারকে ফাংশনের নাম, রিটার্ন টাইপ এবং প্যারামিটার সম্পর্কে বলা। একটি ফাংশন সংজ্ঞা C ++ কম্পাইলারকে ফাংশন বডি সম্পর্কে বলে।

বাক্য গঠন:

 return_datatype function_name( parameters) { function body } 

উপরোক্ত থেকে, একটি ফাংশন সংজ্ঞা ফাংশন হেডার এবং বডি আছে। এখানে পরামিতিগুলির একটি ব্যাখ্যা রয়েছে:

  • return_datatype- কিছু ফাংশন মান ফেরত দেয়। এই প্যারামিটারটি রিটার্ন ভ্যালুর ডেটা টাইপ নির্দেশ করে। কিছু ফাংশন মান ফেরত দেয় না। সেক্ষেত্রে এই প্যারামিটারের মান অকার্যকর হয়ে যায়।
  • function_name- এটি ফাংশনের নাম। ফাংশন নাম এবং পরামিতি ফাংশন স্বাক্ষর গঠন করে।
  • পরামিতি- এটি প্রকার, অর্ডার এবং ফাংশন প্যারামিটারের সংখ্যা। কিছু ফাংশনের প্যারামিটার নেই।
  • ফাংশন বডি- এইগুলি ফাংশন কি করবে তা নির্ধারণ করে বিবৃতি।

ফাংশন কল

একটি ফাংশন নির্দিষ্ট কাজ সম্পাদন এবং আউটপুট ফেরত জন্য, এটি বলা আবশ্যক। যখন আপনি একটি ফাংশন কল করেন, এটি তার শরীরের মধ্যে যুক্ত বিবৃতিগুলি চালায়।

একটি প্রোগ্রামকে তার নামে ডাকা হয়। যদি ফাংশন প্যারামিটার নেয়, তাদের মানগুলি কলের সময় পাস করা উচিত। যদি পরিষেবাটি কোন প্যারামিটার না নেয়, কল করার সময় কোন মান পাস করবেন না।

উত্তীর্ণ যুক্তি

C ++ এ, একটি আর্গুমেন্ট/প্যারামিটার হল একটি ফাংশনে তার কল চলাকালীন প্রেরিত ডেটা। মানগুলি তাদের নিজ নিজ ভেরিয়েবলের সাথে শুরু করতে হবে।

একটি ফাংশন কল করার সময়, যুক্তিগুলি অবশ্যই সংখ্যার সাথে মেলে। মানে আপনি পাস মান মান পরামিতি সংখ্যা সমান হতে হবে। আবার, মানগুলি অবশ্যই ধরন অনুসারে পরামিতিগুলির সাথে মেলে। যদি প্রথম প্যারামিটারটি একটি পূর্ণসংখ্যা হয়, তাহলে এটিতে প্রেরিত মান অবশ্যই একটি পূর্ণসংখ্যা হতে হবে।

ফাংশন প্যারামিটারগুলিতে কেউ ডিফল্ট মান নির্ধারণ করতে পারে। যদি আপনি ফাংশন কল চলাকালীন প্যারামিটারের জন্য একটি মান পাস না করেন, তাহলে ডিফল্ট মান ব্যবহার করা হবে।

উদাহরণ 3: কিভাবে একটি ফাংশন লিখতে এবং কল করতে হয়

 #include using namespace std; int addFunc(int, int); int main() { int x, y, sum; cout <> x >> y; sum = addFunc(x, y); cout <<'The sum of '<

আউটপুট:

এখানে কোডটির একটি স্ক্রিনশট দেওয়া হল:

কোড ব্যাখ্যা:

  1. আইওস্ট্রিম হেডার ফাইলটি আমাদের ফাংশনে ব্যবহার করার জন্য অন্তর্ভুক্ত করুন।
  2. আমাদের কোডে এসটিডি নেমস্পেস অন্তর্ভুক্ত করুন তার ক্লাসগুলি এটিকে কল না করে ব্যবহার করতে।
  3. AddFunc () নামে একটি ফাংশন ঘোষণা করুন যা দুটি পূর্ণসংখ্যা প্যারামিটার নেয়। এটি ফাংশন প্রোটোটাইপ তৈরি করে।
  4. প্রধান () ফাংশন কল করুন। এই ফাংশনের মূল অংশে প্রোগ্রামের যুক্তি যুক্ত করা উচিত।
  5. তিনটি পূর্ণসংখ্যা ভেরিয়েবল, x, y, এবং যোগফল ঘোষণা করুন।
  6. কনসোলে কিছু লেখা প্রিন্ট করুন। পাঠ্যটি ব্যবহারকারীকে দুটি সংখ্যা লিখতে বলে।
  7. কীবোর্ড থেকে ব্যবহারকারীর ইনপুট পড়ুন। ব্যবহারকারীকে ভেরিয়েবল x এবং y এর জন্য দুটি সংখ্যা লিখতে হবে, স্থান দ্বারা পৃথক করে।
  8. AddFunc () ফাংশনটি কল করুন এবং এটি x এবং y প্যারামিটারগুলি পাস করুন। ফাংশন এই প্যারামিটারগুলিতে কাজ করবে এবং ভেরিয়েবল সমষ্টিতে আউটপুট বরাদ্দ করবে।
  9. অন্যান্য পাঠ্যের পাশাপাশি কনসোলে x, y, এবং ভেরিয়েবলের মান প্রিন্ট করুন।
  10. ফাংশন সফলভাবে সমাপ্তির পরে মান ফেরত দিতে হবে।
  11. প্রধান () ফাংশনের শরীরের শেষ।
  12. ফাংশন সংজ্ঞা। আমরা addFunc () ফাংশন সংজ্ঞায়িত করছি। ফাংশনটি তার দেহের মধ্যে কী করবে তা আমরা বলব, {}।
  13. AddFunc নামে একটি পূর্ণসংখ্যা পরিবর্তনশীল ঘোষণা করা।
  14. Num1 এবং num2 প্যারামিটারের মান যোগ করা এবং ভেরিয়েবল addFunc এ ফলাফল বরাদ্দ করা।
  15. AddFunc () ফাংশন addFunc ভেরিয়েবলের মান ফেরত দিতে হবে।
  16. ফাংশন বডির শেষ, অর্থাৎ ফাংশনের সংজ্ঞা।

সারসংক্ষেপ:

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