সূচিপত্র

এতক্ষণ আমরা শুধু প্রিন্ট করা শিখেছি, অর্থাৎ আউটপুট দেওয়া। ইউজারকে পাত্তা দি নাই। কিন্তু এভাবে তো জীবন কিংবা গীবন কোনোটাই চলে না! আমাদের ইউজার ইন্টারঅ্যাকশনের ব্যবস্থা করতে হবে। অর্থাৎ ইউজার থেকে ইনপুট নিতে হবে।

এখন সমস্যা হল আমরা এই ইনপুট নিয়ে জমা রাখবো কোথায়! জমা করে রাখতে না বললে তো বেকুব কম্পিউটারটা ইনপুট নিয়েই সেটা ভুলে যাবে। এই ‘জমা রাখা’-র ব্যাপারে সাহায্য করতেই আবিস্কার ভ্যারিয়েবলের।

x = 9, y = 3 – এই ধরণের জিনিস নিশ্চয় অনেক বার দেখেছো। এগুলাই ভ্যারিয়েবল, যার অসংখ্য মান থাকতে পারে। সি++ এ অনেক ধরণের ভ্যারিয়েবল আছে। তবে আনন্দের ব্যাপার হল সব এখন না শিখলেও চলবে, সব চেয়ে বেশি ব্যবহৃত তিনটি ভ্যারিয়েবল নিয়েই আপাতত অনেক কাজ করে ফেলা যাবে।

এই তিনটি ভ্যারিয়েবল টাইপ হলঃ

(১) Integer, যা ব্যবহার করা হয় পূর্ণ সংখ্যার জন্য

(২) Double, যা ব্যবহার করা হয় দশমিক সংখ্যার জন্য

(৩) Character, যা ব্যবহার করা হয় বিভিন্ন ASCII Character(A, z, ”, ), * ইত্যাদি)-এর জন্য

ভ্যারিয়েবল ডিক্লেয়ারেশন

আমরা ছোটবেলায় যখন অঙ্ক করতাম, তখন এরকম একটা লাইন লিখতাম, “মনে করি, আমার মাথায় x-টা চুল আছে।” ভ্যারিয়েবল ব্যবহার করতে চাইলেও ঠিক একইভাবে অবশ্যই বলে দিতে হবে যে তুমি ওই নামের একটা ভ্যারিয়েবল ব্যবহার করবা। আর সাথে এটাও বলে দিতে হবে ভ্যারিয়েবলটা কোন টাইপের। কম্পিউটার নিজে নিজে বুঝে নিবে, সেই আশায় বসে থেকে লাভ নাই, কারণ সে একটা বেকুব।

এই ভ্যারিয়েবল ডিক্লেয়ারেশনের নিয়মটা হল এমনঃ

int x;

double x;

কিংবা, char x;

সেমিকোলনের কথা মনে আছে তো? 😉

আর একাধিক ভ্যারিয়েবল ডিক্লেয়ার করতে চাইলে তাদের মাঝে অবশ্যই কমা দিতে হবেঃ

int a,b,c,x,y,z;

ভ্যারিয়েবলের মাধ্যমে ইনপুট নেওয়া

এখন ভ্যারিয়েবল ডিক্লেয়ার করে বসে থাকলেই তো হবে না, সেটার মানও জানতে হবে! এজন্য আমরা cout-এর মত একটা অবজেক্ট ব্যবহার করবো, যার নাম হল cin(উচ্চারণ c in)।

cout-এর স্ট্রাকচার ছিল এমনঃ cout << “Bla bla bla“;

cin-এর স্ট্রাকচার হল এমনঃ

int x;

cin >> x;

খালি “<<” গুলা উল্টা হয়ে গেছে, আর কিছুই না! :p

এইটা যা করবে তা হল, ইউজার যেই মানটা ইনপুট দিবে সেটা গ্রহণ করে আগের লাইনে ডিক্লেয়ার করা x নামের ভ্যারিয়েবলে রেখে দিবে। এখন একাধিক ইনপুট নেওয়ার জন্য কি করতে হবে বল তো? না, কমা দিয়ে লিখে দিলেই হবে না। এজন্য প্রতিটা ভ্যারিয়েবলকে আলাদা করতে হবে “>>” দিয়ে এভাবেঃ

int a,b,c;

cin >> a >> b >> c;

চাইলে এভাবে একাধিক ডাটা টাইপের ভ্যারিয়েবলের ইনপুটও এক লাইনেই নেওয়া যায়।

int a;

double b;

char c;

cin >> a >> b >> c;

এখন একটা প্রশ্ন থাকতে পারে, ইউজার যদি a-এর জায়গায় char এবং c-এর জায়গায় integer ইনপুট দেয়, তাহলে কি হবে? আসলে কিছুই করার নাই। ইউজার ভুল ইনপুট দিলে ভুল আউটপুট পাবে, ওইটা নিয়ে মাথা ঘামানোর দরকার নাই। 😛 তোমার কাজ হল ইউজারকে যতটা সম্ভব ইনপুটের ফর্মেটটা বুঝিয়ে দেওয়া। এরপরও ভুল ইনপুট দিলে লিখে দিওঃ cout << “Dure giya more” << endl;

ভুল ইনপুট দিছে কি না সেটা বুঝে এই লাইনটা প্রিন্ট করতে হলে জানতে হবে if-else সম্পর্কে, ওইটা থাকবে পর্ব তিনে! একটু স্পইলার দিয়ে রাখলাম আর কি। 😉

ভ্যারিয়েবলের মান ইউজার থেকে ইনপুট না নিয়ে আমরা চাইলে সেটা নিজে থেকে অ্যাসাইন করে দিতে পারি। কাজটা খুবই সহজ। করতে হয় এভাবেঃ

int a;

a=10;

শুধু শুধু লাইন না বাড়িয়ে এক লাইনেও লিখে ফেলা যায়ঃ

int a=10;

আবার char টাইপের একটা ভ্যারিয়েবলের মান অ্যাসাইন করার সময় অবশ্যই দুই পাশে দিতে হবে!

char a = ‘A’;

এখন বল তো নিচের প্রোগ্রামটা আউটপুট কি হবে?

#include <iostream>
using namespace std;
int main() {
    int a;
    a=8;
    cout << a << endl;
    cin >> a;
    cout << a << endl;
    a=9;
    cout << a << endl;
    return 0;
}

রান না করে ভেবে দেখ কি হবে।

এটা রান করার সাথে সাথে “8” প্রিন্ট করবে। এরপর এটা অপেক্ষা করবে ইউজার একটা কিছু ইনপুট দেওয়ার জন্য। তারপর ইউজার যদি ১০ প্রিন্ট দেয়, তাহলে এটা এবার a-এর মান হিসেবে ১০ প্রিন্ট করবে। পরের লাইনে আমরা আবার a-এর মান বদলে ৯ করে দিয়েছি। তাই শেষে এটি ৯ প্রিন্ট করে প্রোগ্রাম টার্মিনেট করবে।

অর্থাৎ, মোট কথা হল, ভ্যারিয়েবলের মান যত বার খুশি বদলে দেওয়া যায়। তুমি যদি constant কিছু রাখতে চাও, তাহলে ব্যবহার করতে হবে “#define“। এই “#define” আবার ব্যবহার করতে হয় মেইন ফাংশনের বাইরে। নিচের উদাহারণটা দেখঃ

#include <iostream>
using namespace std;
#define PI 3.1416
int main() {
    double PI=3.14;
    cout<<PI;
}

প্রোগ্রাম রান করার সাথে সাথে কম্পাইলার দৃঢ় কণ্ঠে প্রতিবাদ জানাবে এভাবেঃ expected unqualified-id before numeric constant

অর্থাৎ একবার একটা constant ডিফাইন করে দেওয়ার পর সেটা আর বদলানো যায় না। নিচের কোডটি কাজ করবে ঠিকভাবেই!

#include <iostream>
using namespace std;
#define PI 3.1416
int main() {
    cout<<PI;
}

আর constant ডিফাইন করা হয় এভাবেঃ

#define constant_name constant_value

আজকের মত শেষ করছি। আশা করি শীঘ্রই ফিরে আসবো। 😀

লেখা সংক্রান্ত কোনো ধরণের সাজেশন থাকলে জানাবেন। 🙂 কোনো প্রশ্ন থাকলে এখানে করতে পারেন।

Muntasir Wahed

Muntasir Wahed

System Administrator at স্বশিক্ষা.com
Jack of all trades, master of none.
Muntasir Wahed
Muntasir Wahed