C Programming Basics
সি প্রোগ্রামিং মৌলিক ধারণা
সি প্রোগ্রামিং পরিচিতি (C Programming Basics)
১. ভূমিকা — কম্পিউটারকে কমান্ড দেওয়ার ভাষা
তুমি কি কখনো ভেবেছো — তোমার মোবাইলের অ্যাপ, ATM মেশিন, ট্রাফিক লাইট সিস্টেম — এগুলো কে বানায়?
কোনো যাদুকর না। বানায় Programmer — একটি ভাষা ব্যবহার করে কম্পিউটারকে নির্দেশ দিয়ে।
সেই ভাষাগুলোর মধ্যে সবচেয়ে শক্তিশালী এবং মৌলিক ভাষা হলো C।
Linux Operating System, Python-এর core, এমনকি তোমার Android ফোনের কিছু অংশও C-তে লেখা!
২. সমস্যা — ০ আর ১ দিয়ে প্রোগ্রাম লিখবে?
কম্পিউটার শুধু ০ এবং ১ বোঝে (Binary)। তুমি কি ০-১ দিয়ে প্রোগ্রাম লিখবে?
01001000 01100101 01101100 01101100 01101111...
এটা অসম্ভব কঠিন! তাই তৈরি হয়েছে Programming Language (প্রোগ্রামিং ভাষা) — মানুষের কাছাকাছি ভাষায় কম্পিউটারকে নির্দেশ দেওয়ার পদ্ধতি।
C Language সেই সেতু — যা মানুষের ভাষাকে কম্পিউটারের ভাষায় রূপান্তর করে।
৩. চিত্রের মাধ্যমে বোঝো
C প্রোগ্রাম কীভাবে চলে:
তুমি C কোড লেখো
↓
Source Code (.c ফাইল)
↓
Compiler (GCC, Turbo C)
[মানুষের ভাষা → মেশিন ভাষা]
↓
Executable File (.exe)
↓
CPU চালায়
↓
Output দেখাও
C প্রোগ্রামের মূল কাঠামো:
#include <stdio.h> // Header File
int main() { // Main Function শুরু
// এখানে কোড লেখো
return 0; // সফলভাবে শেষ
} // Main Function শেষ
৪. বাস্তব জীবনের সাথে মিল
চিঠি লেখার মতো ভাবো:
তুমি যখন কাউকে চিঠি লেখো:
- খাম (Envelope) =
#include— প্রয়োজনীয় জিনিসপত্র আনো - প্রাপকের ঠিকানা =
int main()— কাজ কোথায় শুরু হবে - চিঠির ভেতরের লেখা =
{ ... }— আসল কাজ - তোমার সই =
return 0;— কাজ শেষ, সব ঠিক আছে
Module 1: সংজ্ঞা ও ধারণা
C Language কী?
C হলো ১৯৭২ সালে Dennis Ritchie তৈরি করা একটি General-Purpose Programming Language (সাধারণ উদ্দেশ্যের প্রোগ্রামিং ভাষা)।
C প্রোগ্রামের মূল উপাদান:
| উপাদান | বর্ণনা | উদাহরণ |
|---|---|---|
| Header File | প্রয়োজনীয় ফাংশন অন্তর্ভুক্ত | #include <stdio.h> |
| Main Function | প্রোগ্রামের শুরুর বিন্দু | int main() |
| Statement | একটি নির্দেশনা | printf("Hello"); |
| Semicolon | প্রতিটি statement শেষে | ; |
| Curly Braces | কোডের ব্লক | { } |
| Comment | ব্যাখ্যা (কোড চলে না) | // এটা comment |
গুরুত্বপূর্ণ Header Files:
| Header File | কী কাজে লাগে |
|---|---|
stdio.h | Input/Output (printf, scanf) |
math.h | গণিতের ফাংশন (sqrt, pow) |
string.h | String নিয়ে কাজ |
ctype.h | Character পরীক্ষা |
Module 2: কীভাবে কাজ করে
Compilation প্রক্রিয়া ধাপে ধাপে:
১. Preprocessing (প্রিপ্রসেসিং)
#include, #define ইত্যাদি প্রক্রিয়া করে
↓
২. Compilation (কম্পাইলেশন)
C কোড → Assembly Language
↓
৩. Assembly (অ্যাসেম্বলি)
Assembly → Object Code (0,1)
↓
৪. Linking (লিংকিং)
Object Code + Library → Executable
↓
৫. Execution (চালানো)
CPU-তে প্রোগ্রাম চলে
Memory তে C প্রোগ্রাম:
RAM (মেমরি)
┌────────────────────┐
│ Code Segment │ ← প্রোগ্রামের কোড থাকে
├────────────────────┤
│ Data Segment │ ← Global variable
├────────────────────┤
│ Stack │ ← Local variable, function call
├────────────────────┤
│ Heap │ ← Dynamic memory
└────────────────────┘
Module 3: প্যাটার্ন ও উদাহরণ
প্যাটার্ন ১: প্রথম C প্রোগ্রাম — Hello World
উদাহরণ ১.১: সাধারণ Hello World
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
আউটপুট:
Hello, World!
উদাহরণ ১.২: বহু লাইন প্রিন্ট
#include <stdio.h>
int main() {
printf("আমার নাম রাহিম।\n");
printf("আমি HSC পরীক্ষার্থী।\n");
printf("আমি C প্রোগ্রামিং শিখছি।\n");
return 0;
}
আউটপুট:
আমার নাম রাহিম।
আমি HSC পরীক্ষার্থী।
আমি C প্রোগ্রামিং শিখছি।
উদাহরণ ১.৩: পরিচয়পত্র প্রিন্ট
#include <stdio.h>
int main() {
printf("=============================\n");
printf(" পরিচয়পত্র \n");
printf("=============================\n");
printf("নাম : করিম আহমেদ\n");
printf("শ্রেণি : একাদশ\n");
printf("বিভাগ : বিজ্ঞান\n");
printf("কলেজ : ঢাকা কলেজ\n");
printf("=============================\n");
return 0;
}
আউটপুট:
=============================
পরিচয়পত্র
=============================
নাম : করিম আহমেদ
শ্রেণি : একাদশ
বিভাগ : বিজ্ঞান
কলেজ : ঢাকা কলেজ
=============================
প্যাটার্ন ২: সংখ্যা নিয়ে কাজ
উদাহরণ ২.১: দুটি সংখ্যার যোগ
#include <stdio.h>
int main() {
int a = 10, b = 20;
int sum = a + b;
printf("যোগফল = %d\n", sum);
return 0;
}
আউটপুট:
যোগফল = 30
উদাহরণ ২.২: চারটি গাণিতিক অপারেশন
#include <stdio.h>
int main() {
int a = 15, b = 4;
printf("যোগ: %d\n", a + b);
printf("বিয়োগ: %d\n", a - b);
printf("গুণ: %d\n", a * b);
printf("ভাগ: %d\n", a / b);
printf("ভাগশেষ: %d\n", a % b);
return 0;
}
আউটপুট:
যোগ: 19
বিয়োগ: 11
গুণ: 60
ভাগ: 3
ভাগশেষ: 3
উদাহরণ ২.৩: বৃত্তের ক্ষেত্রফল
#include <stdio.h>
int main() {
float r = 7.0;
float area = 3.14159 * r * r;
printf("ব্যাসার্ধ = %.1f\n", r);
printf("ক্ষেত্রফল = %.2f\n", area);
return 0;
}
আউটপুট:
ব্যাসার্ধ = 7.0
ক্ষেত্রফল = 153.94
প্যাটার্ন ৩: ইনপুট নিয়ে কাজ
উদাহরণ ৩.১: ব্যবহারকারীর নাম ইনপুট
#include <stdio.h>
int main() {
char name[50];
printf("তোমার নাম লেখো: ");
scanf("%s", name);
printf("হ্যালো, %s!\n", name);
return 0;
}
উদাহরণ ৩.২: দুটি সংখ্যার যোগ (ইনপুট সহ)
#include <stdio.h>
int main() {
int a, b;
printf("প্রথম সংখ্যা: ");
scanf("%d", &a);
printf("দ্বিতীয় সংখ্যা: ");
scanf("%d", &b);
printf("যোগফল = %d\n", a + b);
return 0;
}
উদাহরণ ৩.৩: আয়তক্ষেত্রের ক্ষেত্রফল (ইনপুট সহ)
#include <stdio.h>
int main() {
float length, width, area;
printf("দৈর্ঘ্য লেখো: ");
scanf("%f", &length);
printf("প্রস্থ লেখো: ");
scanf("%f", &width);
area = length * width;
printf("ক্ষেত্রফল = %.2f\n", area);
return 0;
}
প্যাটার্ন ৪: Comment ব্যবহার
উদাহরণ ৪.১: Single-line Comment
#include <stdio.h>
int main() {
// এটি একটি single-line comment
printf("Hello!\n"); // এটাও comment
return 0;
}
উদাহরণ ৪.২: Multi-line Comment
#include <stdio.h>
/*
এটি একটি multi-line comment।
লেখক: রাহিম
তারিখ: ২০২৬
*/
int main() {
printf("Multi-line comment example\n");
return 0;
}
উদাহরণ ৪.৩: ভালো Comment-এর উদাহরণ
#include <stdio.h>
/*
* প্রোগ্রাম: সেলসিয়াস থেকে ফারেনহাইট রূপান্তর
* সূত্র: F = (C × 9/5) + 32
*/
int main() {
float celsius, fahrenheit;
// ব্যবহারকারীর কাছ থেকে সেলসিয়াস নাও
printf("সেলসিয়াস তাপমাত্রা: ");
scanf("%f", &celsius);
// রূপান্তর করো
fahrenheit = (celsius * 9.0 / 5.0) + 32;
// ফলাফল দেখাও
printf("%.1f°C = %.1f°F\n", celsius, fahrenheit);
return 0;
}
Module 4: বাস্তব প্রয়োগ
| প্রযুক্তি | C-এর ভূমিকা |
|---|---|
| Linux OS | মূল কোড C-তে লেখা |
| Windows OS | অনেক অংশ C/C++ |
| Embedded Systems (Arduino) | C ব্যবহার |
| ATM Machine | C প্রোগ্রাম |
| Database (MySQL) | C দিয়ে তৈরি |
| Python Interpreter | C দিয়ে তৈরি |
C শেখা মানে শুধু একটি ভাষা শেখা নয় — এটা কম্পিউটার বোঝার ভিত্তি তৈরি করা।
Module 5: সাধারণ ভুল ও সতর্কতা
ভুল ১: Semicolon ভুলে যাওয়া
❌ ভুল:
printf("Hello") // Semicolon নেই!
✅ সঠিক:
printf("Hello");
ভুল ২: #include ছাড়া ফাংশন ব্যবহার
❌ ভুল:
int main() {
printf("Hello"); // stdio.h ছাড়া কাজ করবে না
return 0;
}
✅ সঠিক:
#include <stdio.h>
int main() {
printf("Hello");
return 0;
}
ভুল ৩: Curly Braces না মেলানো
❌ ভুল:
int main() {
printf("Hello");
// } ভুলে গেছে!
✅ সঠিক:
int main() {
printf("Hello");
}
ভুল ৪: Case sensitivity ভুলে যাওয়া
❌ ভুল:
Printf("Hello"); // বড় P — কাজ করবে না
✅ সঠিক:
printf("Hello"); // সব ছোট হাতের অক্ষর
ভুল ৫: return 0 ভুলে যাওয়া
❌ সতর্কতা:
int main() {
printf("Hello");
// return 0 নেই — Compiler Warning!
}
✅ সঠিক:
int main() {
printf("Hello");
return 0;
}
Module 6: সুবিধা-অসুবিধা
| বিষয় | C-এর সুবিধা | C-এর অসুবিধা |
|---|---|---|
| গতি | অত্যন্ত দ্রুত | কোড লিখতে সময় বেশি |
| মেমরি নিয়ন্ত্রণ | সম্পূর্ণ নিজের হাতে | ভুলে গেলে সমস্যা |
| শেখার সহজতা | কঠিন, কিন্তু ভিত্তি মজবুত | শুরুতে জটিল মনে হয় |
| প্রয়োগ | System programming, Embedded | Web, GUI app-এ কম ব্যবহার |
🔁 নিজে পরীক্ষা করো
MCQ:
১. C প্রোগ্রামের execution কোথায় শুরু হয়?
- ক)
#include - খ)
main()ফাংশনে ✓ - গ) প্রথম লাইনে
- ঘ) Header file-এ
২. printf() ফাংশনের জন্য কোন Header File দরকার?
- ক)
stdio.h✓ - খ)
math.h - গ)
string.h - ঘ)
ctype.h
৩. C প্রোগ্রামে Single-line Comment কীভাবে লেখা হয়?
- ক)
/* comment */ - খ)
// comment✓ - গ)
# comment - ঘ)
-- comment
৪. Compiler কী করে?
- ক) প্রোগ্রাম চালায়
- খ) Source Code → Machine Code রূপান্তর করে ✓
- গ) Bug খুঁজে বের করে
- ঘ) প্রোগ্রাম সেভ করে
৫. return 0; কী বোঝায়?
- ক) প্রোগ্রামে error আছে
- খ) প্রোগ্রাম সফলভাবে শেষ হয়েছে ✓
- গ) প্রোগ্রাম বন্ধ হয়ে গেছে
- ঘ) কিছুই বোঝায় না
সংক্ষিপ্ত প্রশ্ন:
৬. C প্রোগ্রামের মূল কাঠামো লেখো এবং প্রতিটি অংশ ব্যাখ্যা করো।
৭. "তোমার নাম এবং বয়স প্রিন্ট করো" — এই কাজের জন্য C প্রোগ্রাম লেখো।
📝 HSC পরীক্ষার প্রস্তুতি
১. C একটি Compiled Language। এর মানে কী? Java একটি Interpreted Language — পার্থক্য কী?
২. #include <stdio.h> কেন লিখতে হয়? যদি না লিখি, কী সমস্যা হবে?
৩. C শেখা কেন গুরুত্বপূর্ণ? Python বা Java সরাসরি শিখলে কি সমস্যা হতো?
🎯 অনুশীলন প্রশ্ন
সহজ: একটি C প্রোগ্রাম লেখো যা তোমার নাম, বয়স, এবং শ্রেণি প্রিন্ট করবে।
মাঝারি: দুটি দশমিক সংখ্যা ইনপুট নাও এবং তাদের যোগ, বিয়োগ, গুণ, ভাগ প্রিন্ট করো।
কঠিন: একটি C প্রোগ্রাম লেখো যা ব্যবহারকারীর নাম, বয়স, শ্রেণি ইনপুট নেবে এবং সুন্দরভাবে সাজিয়ে দেখাবে।
✅ সারাংশ
🎯 মনে রেখো:
- C = শক্তিশালী, দ্রুত, System-level Programming Language
- ১৯৭২ সালে Dennis Ritchie তৈরি করেন
- মূল কাঠামো:
#include <stdio.h> int main() { // কোড return 0; } stdio.h= printf এবং scanf এর জন্য অবশ্যই দরকার- Semicolon (
;) = প্রতিটি statement শেষে বাধ্যতামূলক - Compilation:
.cফাইল → Compiler →.exe→ CPU
💡 পরীক্ষার টিপস: C প্রোগ্রাম লেখার সময় সবসময়
#include <stdio.h>,int main(),return 0;— এই তিনটি লিখতে ভুলবে না।