শুরুর আগে একটা গল্প শুনি!
কল্পনা করো, তুমি প্রতিদিন স্কুলে যাওয়ার আগে ব্রাশ করা, মুখ ধোয়া, ব্যাগ গোছানো—এগুলো একা একা করো। কিন্তু যদি তোমার একটা রোবট বাটলার থাকতো যাকে তুমি বলতে “বাটলার, সকালের রুটিন দে!” আর সে একাই সব করে দিত! ফাংশন ঠিক তেমনই। একবার বানিয়ে ফেললে, যতবার খুশি ততবার ডাকতে পারো, আলাদা আলাদা করে পুরো কোড আবার লিখতে হয় না।
📦 অধ্যায় ১: ফাংশন আসলে কী?
ফাংশন হলো কাজের একটা ব্লক, যার একটা নাম থাকে। তুমি যখন সেই নাম ডাকো, কম্পিউটার ভেতরের সব কাজ করে ফেলে।
রান্নার উদাহরণ:
‘বিরিয়ানি রান্না’ একটা ফাংশন। তোমাকে প্রতিবার পুরো রেসিপি বলতে হয় না, শুধু ‘বিরিয়ানি’ বললেই সব হয়। ফাংশনেও তাই—একবার রেসিপি (কোড) লিখে দাও, তারপর শুধু নাম ধরে ডাকো।
C তে ফাংশনের গঠন:
text
ফেরত_ধরন নাম(প্যারামিটার) {
// কাজগুলো
return মান;
}
🛠️ অধ্যায় ২: আমাদের প্রথম নিজের ফাংশন (যোগ করার মেশিন)
চলো, একটা ফাংশন বানাই যা দুটি সংখ্যা যোগ করে রেজাল্ট ফিরিয়ে দেয়।
text
#include <stdio.h>
// এইটা আমাদের নিজের ফাংশন
int যোগফল(int a, int b) {
int সমষ্টি = a + b;
return সমষ্টি;
}
int main() {
int ফল = যোগফল(১০, ২০); // ফাংশনকে ডাকা হলো
printf("যোগফল: %d", ফল);
return 0;
}
আউটপুট: যোগফল: ৩০
🔍 বুঝে ফেলো:
int যোগফল→ বলে দিচ্ছি যে এই ফাংশন একটা পূর্ণসংখ্যা রিটার্ন করবে।(int a, int b)→ এগুলো ইনপুট (প্যারামিটার)। ফাংশনের ভেতরaওbনামে দুটো ভেরিয়েবল তৈরি হয়।return সমষ্টি;→ রেজাল্ট পাঠিয়ে দিচ্ছিmain()-এ।
🎯 অধ্যায় ৩: প্যারামিটার আর আর্গুমেন্ট – গোলমাল কাটিয়ে ফেলি!
অনেকেই এই দুটো জিনিসে কনফিউজ হয়। মনে রেখো:
- প্যারামিটার (Parameter): ফাংশন ডিফাইন করার সময় ব্র্যাকেটের ভেতরে যা লিখি (যেমন:
int a, int b)। - আর্গুমেন্ট (Argument): ফাংশন ডাকার সময় যে মানগুলো পাঠাই (যেমন:
যোগফল(১০, ২০)-এর১০আর২০)।
তুমি প্যারামিটারকে ‘খালি জায়গা’ আর আর্গুমেন্টকে ‘জিনিস’ ভাবতে পারো।
🔥 অধ্যায় ৪: যারা কিছু ফেরত দেয় না (void ফাংশন)
সব ফাংশনকে কিন্তু রেজাল্ট ফেরত দিতে হয় না। অনেক সময় শুধু স্ক্রিনে কিছু প্রিন্ট করলেই হয়।
উদাহরণ: একটা ফাংশন লিখি যা শুধু আমাদের স্বাগত জানায়।
text
#include <stdio.h>
void স্বাগতম() {
printf("👋 তোমাকে স্বাগত জানাচ্ছি C প্রোগ্রামিংয়ের দুনিয়ায়!\n");
}
int main() {
স্বাগতম(); // ফাংশন ডাকলাম, কোনো রিটার্ন নেওয়ার দরকার নেই
স্বাগতম(); // আবারও ডাকলাম
return 0;
}
আউটপুট:
text
👋 তোমাকে স্বাগত জানাচ্ছি C প্রোগ্রামিংয়ের দুনিয়ায়! 👋 তোমাকে স্বাগত জানাচ্ছি C প্রোগ্রামিংয়ের দুনিয়ায়!
দেখো, void লিখার মানে হলো “কিছুই ফেরত দেব না”।
🧮 অধ্যায় ৫: ভাগ করো আর বাকি রাখো – ক্যালকুলেটর বানাই
একটা ফাংশন বানাই যা ভাগফল আর ভাগশেষ একসাথে বের করে। (কারণ একসাথে দুটো রিটার্ন করা যায় না C তে, কিন্তু আমরা প্রিন্ট করে দিতে পারি)।
text
#include <stdio.h>
void ভাগ_বাকি(int সংখ্যা, int ভাজক) {
int ভাগফল = সংখ্যা / ভাজক;
int ভাগশেষ = সংখ্যা % ভাজক;
printf("%d কে %d দিয়ে ভাগ করলে ভাগফল %d আর ভাগশেষ %d\n", সংখ্যা, ভাজক, ভাগফল, ভাগশেষ);
}
int main() {
ভাগ_বাকি(১৭, ৫);
ভাগ_বাকি(২৫, ৪);
return 0;
}
আউটপুট:
text
১৭ কে ৫ দিয়ে ভাগ করলে ভাগফল ৩ আর ভাগশেষ ২ ২৫ কে ৪ দিয়ে ভাগ করলে ভাগফল ৬ আর ভাগশেষ ১
🧠 অধ্যায় ৬: লাইব্রেরি ফাংশন বনাম আমাদের ফাংশন
তুমি ইতিমধ্যেই অনেক লাইব্রেরি ফাংশন ব্যবহার করেছো:
printf()→ স্ক্রিনে লেখা দেখায়।scanf()→ ইনপুট নেয়।sqrt()→ বর্গমূল বের করে (এর জন্যmath.hলাইব্রেরি লাগে)।
এগুলো কেউ আগে বানিয়ে রেখেছে। এখন তুমিও নিজের লাইব্রেরি বানাতে পারো। যেমন উপরের যোগফল() ফাংশনটা তুমি চাইলে আলাদা ফাইলে রেখে বারবার ব্যবহার করতে পারো। এইটাই প্রোগ্রামিংয়ের আসল শক্তি—Reusability (পুনঃব্যবহারযোগ্যতা)।
🌍 অধ্যায় ৭: বাস্তব জীবনের সম্পর্ক
তুমি যদি একটা গেম বানাও, তাহলে তোমার লাগবে:
জাম্প()→ লাফানোর ফাংশনফায়ার()→ বুলেট ছোড়ার ফাংশনলাইফ_কমানো()→ এনিমির হেলথ কমানোর ফাংশন
গেমের পুরো কোড যদি একটা জায়গায় লিখতে, তা পড়তে অসম্ভব হতো। ফাংশন দিয়ে প্রতিটা কাজ আলাদা ব্লকে ভাগ করলে কোড সুন্দর, পরিষ্কার আর বাগমুক্ত হয়।
🏠 তোমার জন্য হোমওয়ার্ক (চেষ্টা করতে হবে!)
১. একটি ফাংশন বানাও বড়_সংখ্যা() যা দুইটি সংখ্যা ইনপুট নেবে এবং কোনটা বড় সেটা প্রিন্ট করবে।
২. বর্গ() নামে একটা ফাংশন লিখো যা একটি সংখ্যা ইনপুট নেবে এবং তার বর্গ রিটার্ন করবে।
৩. জোড়_কি() ফাংশন বানাও যা একটা সংখ্যা নেবে এবং যদি জোড় হয় তাহলে ১ (true) ফেরত দেবে, না হলে ০ (false) ফেরত দেবে। main ফাংশনে সেই রিটার্ন ব্যবহার করে “জোড়” বা “বিজোড়” প্রিন্ট করো।
🚀 শেষ কথা
আজ তুমি শিখলে—
✅ ফাংশন কেন দরকার (কোড পুনঃব্যবহার, পরিষ্কার রাখা)।
✅ কীভাবে নিজের ফাংশন বানাতে হয় ও ডাকতে হয়।
✅ void আর return-এর পার্থক্য।
✅ প্যারামিটার আর আর্গুমেন্টের গোলমাল কাটালে।
এখন থেকে তুমি শুধু ব্যবহারকারী না, তুমি নির্মাতা। তুমি চাইলেই C-তে নিজের ক্যালকুলেটর, নিজের গেমের ইঞ্জিনের ভিত্তি তৈরি করতে পারো!
🎯 পরের আর্টিকেলে: আমরা ঢুকবো C প্রোগ্রামিংয়ের সবচেয়ে মস্তিষ্কচর্চার অধ্যায়ে—পয়েন্টার (Pointer)! মেমরি অ্যাড্রেসের এই জাদু দেখে তোমার চোখ কপালে উঠবে! ততদিন পর্যন্ত প্র্যাকটিস করতে থাকো।
📢 www.tolearnteam.com – তুমি কি হোমওয়ার্ক করতে পেরেছো? কোনো সমস্যা হলে কমেন্টে লিখো। মনে রেখো, প্রোগ্রামার মানে শুধু টাইপ করা না, প্র্যাকটিস করে ভুল থেকে শেখা। চলো, এগিয়ে যাই!
All Related Articles (Beginner Level)
- প্রোগ্রামিংয়ের জগতে প্রথম পদক্ষেপ: C Programming for Beginners
- C প্রোগ্রামিং – দ্বিতীয় অধ্যায়: Array আর String (ডেটার সারি ও শব্দের খেলা)
- C প্রোগ্রামিং – তৃতীয় অধ্যায়: ফাংশন (Function) – তোমার নিজস্ব জাদুমন্ত্র তৈরি করো!
- C প্রোগ্রামিং – চতুর্থ অধ্যায়: পয়েন্টার (Pointer) – কম্পিউটারের ঠিকানার খেলা!
- C প্রোগ্রামিং – পঞ্চম অধ্যায়: স্ট্রাকচার (Structure) – ডেটার ‘সুপারহিরো টিম’ বানাও!
- C প্রোগ্রামিং – ষষ্ঠ অধ্যায়: ফাইল হ্যান্ডলিং (File I/O) – ডেটাকে চিরস্থায়ী করো!
- সি প্রোগ্রামিং – সপ্তম ও শেষ অধ্যায়: পূর্ণাঙ্গ প্রজেক্ট – ‘ছাত্র মার্কশিট ম্যানেজমেন্ট সিস্টেম’
- C প্রোগ্রামিং – শেষ পাতা নয়, নতুন দিগন্ত! (রিক্যাপ ও ক্যারিয়ার রোডম্যাপ)
