সি প্রোগ্রামিং এইচটিএমএল সিএসএস জাভাস্ক্রিপ্ট পিএইচপি এসকিউএল
ফোরাম
×

 সি টিউটোরিয়াল

সি প্রোগ্রামিং কি? সি এর ইতিহাস সি এর বৈশিষ্ট্যসমূহ কেন সি শিখবেন? সি ইন্সটলেশন প্রথম সি প্রোগ্রাম সি প্রোগ্রামের ফ্লো প্রোগ্রামিং শেখার সঠিক পদ্ধতি সি কীওয়ার্ড সি আইডেন্টিফায়ার সি ভ্যারিয়েবল সি কনস্ট্যান্ট সি ডাটা টাইপ সি মোডিফায়ার সি ইনপুট/আউটপুট সি অপারেটর সি কমেন্ট সি অপারেটর অগ্রাধিকার

সি কন্ট্রোল স্টেটমেন্ট

সি ইফ সি ইফ...ইলস সি ফর লুপ সি হোহাইল লুপ সি ডু...হোহাইল লুপ সি ব্রেক সি কন্টিনিউ সি সুইচ স্টেটমেন্ট সি goto স্টেটমেন্ট

 সি ফাংশন

সি ফাংশন পরিচিতি সি ইউজার কর্তৃক ফাংশন সি ফাংশন টাইপ সি রিকার্সন সি ভ্যারিয়েবল স্কোপ

 সি অ্যারে

সি অ্যারে পরিচিতি সি মালটি-ডাইমেনশনাল অ্যারে সি অ্যারে ফাংশন

 সি স্ট্রিং

সি স্ট্রিং সি স্ট্রিং ফাংশন

 সি পয়েন্টার

সি পয়েন্টার পরিচিত সি পয়েন্টার অ্যারে সি পয়েন্টার ফাংশন সি মেমোরি ম্যানেজমেন্ট

 সি ফাইল এবং স্ট্রাকচার

স্ট্রাকচার পরিচিত স্ট্রাকচার ও পয়েন্টার সি স্ট্রাকচার ও ফাংশন সি ইউনিয়ন ফাইল হ্যান্ডেলিং

 সি অতিরিক্ত টিউটোরিয়াল

সি লাইব্রেরী সি প্রিপ্রোসেসর এবং ম্যাক্রো সি ইনুমিরেশন সি এরর নিয়ন্ত্রণ সি টাইপ কাস্টিং সি বিট ফিল্ড সি ভ্যারিয়েবল আর্গুমেন্ট সি কমান্ড লাইন আর্গুমেন্ট

 

সি প্রোগ্রামিং ফাংশন


এই অধ্যায়ে আপনি সি প্রোগ্রামিং এ ইউজার ডিফাইন্ড এবং স্টান্ডার্ড লাইব্রেরী উভয় ফাংশনের সঙ্গে পরিচিত হবেন। এছাড়া আপনি প্রোগ্রামিং এর ফাংশন ব্যবহার শিখবেন।

ফাংশন হলো ব্লক অব কোড(block of code) যা কোনো নির্দিষ্ট কার্য সম্পাদন করে।

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

বড় বড় সমস্যাগুলো ক্ষুদ্র ক্ষুদ্র অংশে বিভক্ত করলে প্রোগ্রাম বুঝতে এবং ডেভেলপ করতেও সহজ হয়।


সি প্রোগ্রামে ফাংশনের প্রকারভেদ

ইউজার কর্তৃক সংজ্ঞায়িত ফাংশন এবং কম্পাইলারে ইতিমধ্যে বিদ্যমান ফাংশনের উপর ভিত্তিকরে সি প্রোগ্রামিং এ দুই ধরণের ফাংশন রয়েছে। যথাঃ


স্টান্ডার্ড লাইব্ররী ফাংশন

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

এই ফাংশনগুলো হেডার ফাইলে ডিফাইন্ড করা থাকে। ঐ সব হেডার ফাইলকে যখন কোনো প্রোগ্রামে সংযুক্ত করা হয় তখন এই ফাংশনগুলো সোর্স কোডে নিজস্ব ফাংশনের ন্যায় কাজ করে। উদাহরনস্বরুপঃ

printf() হলো স্টান্ডার্ড লাইব্রেরী ফাংশন যা স্ক্রিনে ফরম্যাটেড আউটপুট পাঠায়। এই ফাংশনটি "stdio.h" হেডার ফাইলে ডিফাইন্ড করা থাকে।

এছাড়া আরো অনেক ফাংশন রয়েছে যেগুলো "stdio.h" হেডার ফাইলে ডিফাইন্ড করা থাকে যেমন- scanf(), getchar(), fprintf() ইত্যাদি। যখন-ই আপনি "stdio.h" হেডার ফাইলকে আপনার প্রোগ্রামে সংযুক্ত করবেন তখন-ই এই ফাংশনগুলো আপনার প্রোগ্রামের জন্য সচরাচর হয়ে যাবে।

আরোও জানতে সি প্রোগ্রামিং এর  স্টান্ডার্ড লাইব্রেরী ফাংশন অধ্যায় ভিজিট করুন।


ইউজার ডিফাইন্ড ফাংশন

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

প্রোগ্রামের দাবি এবং জটিলতার উপর ভিত্তিকরে আপনি যত ইচ্ছা ফাংশন ডিফাইন্ড করতে পারেন।


ইউজার ডিফাইন্ড ফাংশন কিভাবে কাজ করে?

#include <stdio.h>
void userDefinedFunction()
{
    ... .. ...
    ... .. ...
}

int main()
{
    ... .. ...
    ... .. ...

    userDefinedFunction();
    
    ... .. ...
    ... .. ...
}

সি প্রোগ্রামের এক্সিকিউশন শুরু হয় main() ফাংশন থেকে।

কম্পাইলার যখন userDefinedFunction(); ফাংশনের দেখা পায় তখন প্রোগ্রামের নিয়ন্ত্রণ লাফ দিয়ে void userDefinedFunction() এর কাছে যায়।

কম্পাইলার তখন ইউজার ডিফাইন্ড ফাংশনের কোডসমূহ এক্সিকিউশন করা শুরু করে।

ইউজার ডিফাইন্ড ফাংশনের কোডসমূহ এক্সিকিউশন সম্পন্ন হলে প্রোগ্রামের নিয়ন্ত্রণ পূনরায় লাফ দিয়ে main() ফাংশনের userDefinedFunction(); এর কাছে চলে আসে।

সি প্রোগ্রামে ফাংশন কিভাবে কাজ করে?

মনে রাখবেন, ফাংশনের নাম হলো আইডেন্টিফায়ার যা অবশ্যই ইউনিক হতে হবে।

ইহা ইউজার ডিফাইন্ড ফাংশনের ওভারভিউ। আরো জানতে নিচের পেজসমূহ ভিজিট করুনঃ

ইউজার ডিফাইন্ড ফাংশনের সুবিধাসমূহ

  1. প্রোগ্রাম বুঝা, রক্ষণাবেক্ষণ এবং ডিবাগিং করা সহজ হয়ে যায়।
  2. পূনর্ব্যবহারযোগ্যতা বৃদ্ধি পাওয়ায় অন্যান্য প্রোগ্রামেও কোড ব্যবহার করা যায়।
  3. বড় প্রোগ্রাম ক্ষুদ্র ক্ষুদ্র মডিউলে বিভক্ত করা যায়। সুতরাং বড় প্রোজেক্টকে অনেক প্রোগ্রামারের কাছে ভাগ করে দেওয়া যায়।