beginner#variableUpdated: 2026-05-13

ভেরিয়েবল (Variable)


১. ভূমিকা — টিফিন বক্সের মতো তথ্য রাখো

ধরো তোমার একটি টিফিন বক্স আছে। আজকে তাতে ভাত আছে, কাল থাকবে রুটি, পরশু থাকবে নুডলস।

বক্সটা একই — কিন্তু ভেতরে কী আছে, সেটা বদলায়।

প্রোগ্রামিং-এ Variable (ভেরিয়েবল) ঠিক এই রকম — একটি নামের বাক্স, যার ভেতরে তথ্য রাখা যায় এবং সেই তথ্য বদলানো যায়।


২. সমস্যা — একই মান বারবার পরিবর্তন করতে হলে?

ধরো তুমি একটি প্রোগ্রাম লিখছো:

printf("5 + 3 = %d\n", 8);
printf("5 - 3 = %d\n", 2);
printf("5 × 3 = %d\n", 15);

এখন যদি ৫ পরিবর্তন করে ১০ করতে চাও — তিন জায়গায় পরিবর্তন করতে হবে!

Variable ব্যবহার করলে:

int a = 5, b = 3;
printf("যোগ = %d\n", a + b);
printf("বিয়োগ = %d\n", a - b);
printf("গুণ = %d\n", a * b);

এখন শুধু a = 10 করলেই সব বদলে যাবে! এটাই Variable-এর শক্তি।


৩. চিত্রের মাধ্যমে বোঝো

Computer Memory (RAM)
┌────────────────────────────────────┐
│                                    │
│  ┌──────────┐  ┌──────────┐       │
│  │  age     │  │  score   │       │
│  │   17     │  │   95     │       │
│  │ (int)    │  │  (int)   │       │
│  └──────────┘  └──────────┘       │
│                                    │
│  ┌──────────┐  ┌──────────┐       │
│  │  gpa     │  │  grade   │       │
│  │  4.50    │  │   'A'    │       │
│  │ (float)  │  │  (char)  │       │
│  └──────────┘  └──────────┘       │
│                                    │
└────────────────────────────────────┘

প্রতিটি বক্সের একটি নাম আছে (যেমন: age, score)। প্রতিটি বক্সে একটি মান আছে (যেমন: 17, 95)। প্রতিটি বক্সের একটি ধরন আছে (যেমন: int, float)।


৪. বাস্তব জীবনের সাথে মিল

স্কুলের লকার ভাবো:

লকার নম্বর → Variable-এর নাম
লকারের ভেতর → Variable-এর মান
লকারের আকার → Data Type (কী ধরনের তথ্য রাখা যাবে)
  • int age → ছোট লকার, শুধু পূর্ণসংখ্যা রাখা যায়
  • float price → মাঝারি লকার, দশমিক সংখ্যাও রাখা যায়
  • char grade → ছোট লকার, একটি অক্ষর রাখা যায়

Module 1: সংজ্ঞা ও ধারণা

Variable কী?

Variable (ভেরিয়েবল) হলো কম্পিউটারের Memory-তে একটি নামযুক্ত স্থান (Named Memory Location), যেখানে তথ্য (Data) সাময়িকভাবে রাখা যায় এবং পরিবর্তন করা যায়।

Variable Declaration (ঘোষণা):

data_type variable_name;

উদাহরণ:

int age;        // পূর্ণসংখ্যা
float gpa;      // দশমিক সংখ্যা
char grade;     // একটি অক্ষর

Variable Initialization (মান দেওয়া):

data_type variable_name = value;

উদাহরণ:

int age = 17;
float gpa = 4.50;
char grade = 'A';

Variable-এর নামকরণের নিয়ম:

নিয়মউদাহরণ
অক্ষর বা _ দিয়ে শুরুage, _count
সংখ্যা দিয়ে শুরু নয়2age
স্পেস নেইmy age ❌, my_age
Reserved word নয়int, for, if
Case sensitiveAgeage

Module 2: কীভাবে কাজ করে

int age = 17;

এই একটি লাইনে কী হয়?

১. Compiler দেখে: int age
   → RAM-এ 4 bytes জায়গা বরাদ্দ করো
   → সেই জায়গার নাম দাও "age"

২. Compiler দেখে: = 17
   → সেই জায়গায় মান 17 রাখো

RAM:
Address 1000: [17] ← এটাই "age"

যখন তুমি পরে age = 18; লেখো:

RAM:
Address 1000: [18] ← পুরনো 17 মুছে নতুন 18 রাখা হলো

নামটা একই থাকে, মান বদলায় — তাই নাম Variable (পরিবর্তনশীল)।


Module 3: প্যাটার্ন ও উদাহরণ

প্যাটার্ন ১: Declaration (শুধু ঘোষণা)

Variable ঘোষণা করা হয় কিন্তু মান দেওয়া হয় না।

উদাহরণ ১.১: একটি Variable

#include <stdio.h>

int main() {
    int age;          // ঘোষণা
    age = 17;         // মান দেওয়া
    printf("বয়স: %d\n", age);
    return 0;
}

উদাহরণ ১.২: একাধিক Variable

#include <stdio.h>

int main() {
    int a, b, sum;    // তিনটি Variable একসাথে ঘোষণা
    a = 10;
    b = 20;
    sum = a + b;
    printf("যোগফল: %d\n", sum);
    return 0;
}

উদাহরণ ১.৩: বিভিন্ন ধরনের Variable

#include <stdio.h>

int main() {
    int age;
    float height;
    char gender;
    
    age = 17;
    height = 5.6;
    gender = 'M';
    
    printf("বয়স: %d\n", age);
    printf("উচ্চতা: %.1f\n", height);
    printf("লিঙ্গ: %c\n", gender);
    return 0;
}

প্যাটার্ন ২: Initialization (ঘোষণার সাথে মান)

উদাহরণ ২.১: স্কুলের তথ্য

#include <stdio.h>

int main() {
    int rollNumber = 15;
    float cgpa = 4.75;
    char section = 'A';
    
    printf("রোল নম্বর: %d\n", rollNumber);
    printf("CGPA: %.2f\n", cgpa);
    printf("সেকশন: %c\n", section);
    return 0;
}

আউটপুট:

রোল নম্বর: 15
CGPA: 4.75
সেকশন: A

উদাহরণ ২.২: পণ্যের তথ্য

#include <stdio.h>

int main() {
    int quantity = 5;
    float price = 120.50;
    float total = quantity * price;
    
    printf("পরিমাণ: %d\n", quantity);
    printf("একক মূল্য: %.2f টাকা\n", price);
    printf("মোট মূল্য: %.2f টাকা\n", total);
    return 0;
}

আউটপুট:

পরিমাণ: 5
একক মূল্য: 120.50 টাকা
মোট মূল্য: 602.50 টাকা

উদাহরণ ২.৩: তাপমাত্রা রূপান্তর

#include <stdio.h>

int main() {
    float celsius = 37.0;
    float fahrenheit = (celsius * 9.0 / 5.0) + 32;
    
    printf("সেলসিয়াস: %.1f°C\n", celsius);
    printf("ফারেনহাইট: %.1f°F\n", fahrenheit);
    return 0;
}

আউটপুট:

সেলসিয়াস: 37.0°C
ফারেনহাইট: 98.6°F

প্যাটার্ন ৩: Assignment (মান পরিবর্তন)

উদাহরণ ৩.১: Variable-এর মান বদলানো

#include <stdio.h>

int main() {
    int score = 80;
    printf("প্রথম স্কোর: %d\n", score);
    
    score = 95;         // মান পরিবর্তন
    printf("দ্বিতীয় স্কোর: %d\n", score);
    
    score = score + 5;  // নিজের মান ব্যবহার করে পরিবর্তন
    printf("বোনাস সহ: %d\n", score);
    return 0;
}

আউটপুট:

প্রথম স্কোর: 80
দ্বিতীয় স্কোর: 95
বোনাস সহ: 100

উদাহরণ ৩.২: দুটি Variable-এর মান অদলবদল (Swap)

#include <stdio.h>

int main() {
    int a = 10, b = 20, temp;
    
    printf("আগে: a = %d, b = %d\n", a, b);
    
    temp = a;   // temp-এ a রাখো
    a = b;      // a-তে b দাও
    b = temp;   // b-তে temp (আগের a) দাও
    
    printf("পরে: a = %d, b = %d\n", a, b);
    return 0;
}

আউটপুট:

আগে: a = 10, b = 20
পরে: a = 20, b = 10

উদাহরণ ৩.৩: Counter Variable

#include <stdio.h>

int main() {
    int count = 0;
    count = count + 1;  // count++
    count = count + 1;
    count = count + 1;
    printf("গণনা: %d\n", count);
    return 0;
}

আউটপুট:

গণনা: 3

প্যাটার্ন ৪: ইনপুট দিয়ে Variable ভরা

উদাহরণ ৪.১: বয়স ইনপুট

#include <stdio.h>

int main() {
    int age;
    printf("তোমার বয়স কত? ");
    scanf("%d", &age);
    printf("তোমার বয়স %d বছর।\n", age);
    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() {
    int roll, marks;
    float gpa;
    char section;
    
    printf("রোল নম্বর: ");
    scanf("%d", &roll);
    printf("মোট নম্বর: ");
    scanf("%d", &marks);
    printf("GPA: ");
    scanf("%f", &gpa);
    printf("সেকশন (A/B/C): ");
    scanf(" %c", &section);
    
    printf("\n--- শিক্ষার্থীর তথ্য ---\n");
    printf("রোল: %d\n", roll);
    printf("নম্বর: %d\n", marks);
    printf("GPA: %.2f\n", gpa);
    printf("সেকশন: %c\n", section);
    return 0;
}

Module 4: বাস্তব প্রয়োগ

বাস্তব পরিস্থিতিVariable-এর ব্যবহার
Facebook-এ লাইক গণনাint likeCount = 0;
ব্যাংকে ব্যালেন্সfloat balance = 5000.00;
গেমে স্কোরint score = 0;
তাপমাত্রা মনিটরfloat temp = 36.5;
ছাত্রের উপস্থিতিint attendance = 0;
বাজারে পণ্যের দামfloat price = 45.50;

Module 5: সাধারণ ভুল ও সতর্কতা

ভুল ১: সংখ্যা দিয়ে নাম শুরু করা

❌ ভুল:
int 2score = 100;  // Error!

✅ সঠিক:
int score2 = 100;

ভুল ২: স্পেস দিয়ে নাম লেখা

❌ ভুল:
int my score = 100;  // Error!

✅ সঠিক:
int myScore = 100;    // camelCase
int my_score = 100;   // snake_case

ভুল ৩: মান না দিয়ে ব্যবহার করা

❌ ভুল:
int sum;
printf("%d\n", sum);  // sum-এ কোনো মান নেই, garbage value আসবে!

✅ সঠিক:
int sum = 0;
printf("%d\n", sum);

ভুল ৪: scanf-এ & ভুলে যাওয়া

❌ ভুল:
int age;
scanf("%d", age);   // & ছাড়া — প্রোগ্রাম crash করতে পারে!

✅ সঠিক:
int age;
scanf("%d", &age);  // & দিয়ে address পাস করো

ভুল ৫: Reserved word ব্যবহার করা

❌ ভুল:
int int = 5;    // 'int' হলো keyword!
int for = 10;   // 'for' হলো keyword!

✅ সঠিক:
int number = 5;
int counter = 10;

Module 6: সুবিধা-অসুবিধা

Variable-এর ধরনসুবিধাঅসুবিধা
Local Variableনিরাপদ, ফাংশনের মধ্যে সীমাবদ্ধঅন্য ফাংশন থেকে ব্যবহার করা যায় না
Global Variableসবখানে ব্যবহার করা যায়বড় প্রোগ্রামে সমস্যা তৈরি করতে পারে
Initialized Variableনিরাপদএকটু বেশি কোড লিখতে হয়
Uninitializedকম কোডGarbage value-এর ঝুঁকি

🔁 নিজে পরীক্ষা করো

MCQ:

১. C-তে Variable-এর নাম কোনটি দিয়ে শুরু হতে পারে?

  • ক) সংখ্যা
  • খ) অক্ষর বা underscore ✓
  • গ) বিশেষ চিহ্ন
  • ঘ) যেকোনো কিছু

২. int score = 85; — এখানে int কী?

  • ক) Variable-এর নাম
  • খ) Data Type ✓
  • গ) Variable-এর মান
  • ঘ) Keyword নয়

৩. scanf("%d", &age); — এখানে & কী বোঝায়?

  • ক) এবং (And)
  • খ) age Variable-এর Memory Address ✓
  • গ) বিটওয়াইজ AND
  • ঘ) কিছুই না

৪. নিচের কোন Variable নামটি সঠিক?

  • ক) 2name
  • খ) my name
  • গ) my_name
  • ঘ) int

৫. Variable-এর মান পরিবর্তন করলে কী হয়?

  • ক) নতুন Variable তৈরি হয়
  • খ) পুরনো মান মুছে নতুন মান রাখা হয় ✓
  • গ) Error আসে
  • ঘ) দুটি মান একসাথে থাকে

সংক্ষিপ্ত প্রশ্ন:

৬. Variable Declaration ও Initialization-এর পার্থক্য উদাহরণসহ ব্যাখ্যা করো।

৭. দুটি Variable-এর মান অদলবদল (Swap) করার C প্রোগ্রাম লেখো।


📝 HSC পরীক্ষার প্রস্তুতি

১. Variable-কে কেন "পরিবর্তনশীল" বলা হয়? যদি মান না বদলাতে চাই, তাহলে কী ব্যবহার করবো?

২. int আর float Variable-এ কী পার্থক্য? int age = 17.5; লিখলে কী হবে?

৩. প্রোগ্রামে Variable না থাকলে কী সমস্যা হতো? একটি বাস্তব উদাহরণ দিয়ে ব্যাখ্যা করো।


🎯 অনুশীলন প্রশ্ন

সহজ: একটি C প্রোগ্রাম লেখো যা ৩টি Variable ব্যবহার করে একটি ত্রিভুজের তিনটি বাহুর দৈর্ঘ্য রাখবে এবং পরিসীমা (Perimeter) বের করবে।

মাঝারি: দুটি সংখ্যা ইনপুট নাও। তাদের মান অদলবদল (Swap) করো এবং অদলবদলের আগে ও পরের মান দেখাও।

কঠিন: একটি শিক্ষার্থীর নাম, রোল, পাঁচটি বিষয়ের নম্বর ইনপুট নাও। মোট নম্বর, গড় নম্বর এবং সর্বোচ্চ নম্বর বের করে দেখাও।


✅ সারাংশ

🎯 মনে রেখো:

  • Variable = Memory-তে নামযুক্ত তথ্য রাখার জায়গা
  • Declaration: int age; — জায়গা বরাদ্দ, মান নেই
  • Initialization: int age = 17; — জায়গা বরাদ্দ + মান
  • Assignment: age = 18; — মান পরিবর্তন
  • নামকরণের নিয়ম:
    • অক্ষর বা _ দিয়ে শুরু ✅
    • সংখ্যা বা বিশেষ চিহ্ন দিয়ে শুরু ❌
    • স্পেস নেই ❌
    • Reserved word নয় ❌
  • scanf-এ Variable-এর আগে & দিতে হবে!
  • মান না দিলে Garbage Value আসে — বিপদ!

💡 পরীক্ষার টিপস: Variable নামকরণের নিয়ম এবং Declaration/Initialization-এর পার্থক্য HSC-তে প্রায়ই আসে।