প্রোগ্রামিংয়ে ভেরিয়েবল, ডাটা টাইপ ও অপারেটর কি?



প্রোগ্রামিংয়ে ভেরিয়েবল, ডাটা টাইপ ও অপারেটর কি?



যেকোন প্রোগ্রামিং ভাষাতেই ভেরিয়েবল, ডাটা টাইপ ও অপারেটর খুবই বেসিক ও গুরুত্বপূর্ণ তিনটি বিষয়। এই তিনটি সম্পর্কে ভালো ধারণা না থাকলে বুঝে প্রোগ্রামিং করা সম্ভব নয়। তাই আজকে এই তিনটি বিষয় সম্পর্কে বিস্তারিত তুলে ধরা হয়েছে।

ভেরিয়েবল কি?

প্রোগ্রামিংয়ে ভেরিয়েবল (Variable) হচ্ছে একটা পাত্রের মতো যেটা কিছু মান (Value) জমা বা Store করে রাখে। প্রোগ্রামে ব্যবহারের জন্য ভেরিয়েবলের একটি নির্দিষ্ট নাম দেওয়া হয়। ভেরিয়েবলের নাম দেওয়ার জন্য কিছু নিয়ম বা শর্ত রয়েছে। এই শর্ত বা নিয়মগুলো হলোঃ

  1. ভেরিয়েবলের নামের শুরু অবশ্যই একটি বর্ণ দিয়ে করতে হয়, কিংবা একটি আন্ডারস্কোর (_) ব্যবহার করা যায়। কিন্তু সংখ্যা শুরুতে ব্যবহার হবে না। যেমনঃ sum, _result ইত্যাদি। কিন্তু 1sum সঠিক নয়।
  2. ভেরিয়েবলের নামের শেষে সংখ্যা, আন্ডারস্কোর ও বর্ণ ব্যবহার করা যায়। যেমনঃ sum1, result_ ইত্যাদি।
  3. ভেরিয়েবলের নাম ইচ্ছা মতো আকারের দেওয়া যায়। তবে ছোট ও মানুষের বোধগম্য নাম প্রোগ্রামে ব্যবহারে সুবিধাজনক।
  4. ভেরিয়েবলের নাম Case Sensitive অর্থাৎ, sum ও SUM দুটিকে কম্পাইলার ভিন্ন ভেরিয়েবল মনে করে থাকে। তাই এই বিষয়টি মাথায় রাখতে হবে।
  5. প্রোগ্রামিং ভাষায় বিশেষ কিছু কিওয়ার্ড রয়েছে যেগুলো প্রোগ্রামে বিশেষ অর্থ বহন করে। এসকল কিওয়ার্ডকে ভেরিয়েবলের নামের জন্য ব্যবহার করা যাবে না। যেমনঃ for, else, char, int, break ইত্যাদি।
প্রোগ্রামে ব্যবহার করার পূর্বে অবশ্যই ভেরিয়েবলের নাম উল্লেখ করতে হয় যেটি প্রোগ্রামিংয়ের ভাষায় Declaring Variable বলে। প্রোগ্রামে ভেরিয়েবল ডিক্লেয়ার করার আগেই প্রোগ্রামে ভেরিয়েবল ব্যবহার করলে কম্পাইলার Error দেখাবে। কারণ, প্রোগ্রামটির ভেরিয়েবলের সাথে কম্পাইলার পরিচিত নয়।

ভেরিয়েবল ডিক্লেয়ার করা হয় সাধারণত এভাবে - 

ডাটা টাইপ (খালি অংশ বা Space) ভেরিয়েবলের নাম

ডাটা টাইপ নিয়ে বিস্তারিত নিচে আলোচনা করা হয়েছে। এখন কিছু ভেরিয়েবলের উদাহরণ দেওয়া হলোঃ

int sum;
char RESULT;

আবার একই ডাটা টাইপ হলে একাধিক ভেরিয়েবল এক সাথেই ডিক্লেয়ার করা যায়, যেমনঃ

int a,b,c;

কোন ভেরিয়েভলের যখন মান বা Value দেয়া হয় তখন সেটাকে বলা হয় Value Assignment. ভেরিয়েবলের মান ভেরিয়েবল ডিক্লেয়ারের পরেও Assign করা যায়, আবার ডিক্লেয়ার করার সময়ও মান দিয়ে দেওয়া যায়। যেমনঃ

int a;
a = 5;

বা সরাসরি লেখা যায়,

int a=5;

ডাটা টাইপ কি?

নাম শুনেই বুঝা যাচ্ছে ডাটা টাইপ (Data Type) মূলত ডাটার ধরনকে বুঝাচ্ছে। কোন একটি ভেরিয়েবলের মান সংখ্যায় হবে, বর্ণে হবে নাকি দুটোতেই হবে তার উপর ভিত্তি করে যে প্রকারভেদ করা হয়েছে সেটিই প্রোগ্রামিংয়ের ডাটা টাইপ।

বিভিন্ন প্রোগ্রামিং ভাষায় বিভিন্ন ডাটা টাইপ রয়েছে। তবে এখানে শুধু বেসিক কিছু ডাটা টাইপ নিয়ে আলোচনা করা হলো যেগুলো বেশিরভাগ প্রোগ্রামিং ভাষাতেই ব্যবহার হয়।

int (Integer)

Integer শব্দের বাংলা হলো পূর্ণসংখ্যা। কোন ভেরিয়েবলের মান যখন পূর্ণসংখ্যায় থাকে তখন এই ডাটা টাইপ ব্যবহার করা হয়। পূর্ণসংখ্যা হলোঃ ১,২,৩,৪,..... বা 1,2,3,4,.....

float (Floating Point Number)

ভেরিয়েবলের মান যদি পূর্ণসংখ্যায় না থেকে দশমিক কিংবা ভগ্নাংশে থাকে তখন এটি ব্যবহৃত হয়। যেমনঃ ০.৫ বা 0.5

double

float আর double এর কাজ একই কিন্তু double এর মান ধারণ ক্ষমতা float থেকে দ্বিগুণ। মানে? দশমিকের পরে float ডাটা টাইপটি শুধু ৭ ঘর পর্যন্ত সংখ্যা প্রদর্শন বা জমা রাখতে পারে। যেমনঃ ০.১২৩৪৫৬৭

কিন্তু double ডাটা টাইপ দশমিকের পরের ১৫ ঘর পর্যন্ত সংখ্যা জমা ও প্রদর্শন করতে সক্ষম। যেমনঃ ০.১২৩৪৫৬৭৮৯১০১১১২

তাই অধিক নির্ভুলতার জন্য float এর পরিবর্তে double ব্যবহার করা হয়।

char (Character)

যখন একটি মাত্র সংখ্যা, বর্ণ কিংবা চিহ্ন ভেরিয়েবলের মান হিসেবে থাকে তখন এটি ব্যবহার করা হয়। যেমনঃ a,5,* ইত্যাদি

_bool (Boolean)

এই ডাটা টাইপের ভেরিয়বলের মান শুধু 0 ও 1 হয়, যেখানে 0 দ্বারা FALSE আর 1 দ্বারা TRUE বুঝানো হয়।

ডাটা টাইপের Size ও Range

প্রতিটি ডাটা টাইপের এক একটি আকার থাকে যেটিকে বাইট হিসেবে প্রকাশ করা হয়। আর সেটির আকারের উপর ভিত্তি করেই জানা যায় সেই ডাটা টাইপ কতটি মান জমা রাখতে পারে। অর্থাৎ, ডাটা টাইপের সর্বনিম্ন মান থেকে সর্বোচ্চ মান পর্যন্ত যে পরিসীমা সেটিই হলো ঐ ডাটা টাইপের Range. নিচের চার্টে C++ এর বিভিন্ন ডাটা টাইপের Size ও Range তুলে ধরা হয়েছেঃ

Data Type Size and Ranges - TechneSiyam
[Source: LikhitAnjali]



অপারেটর কি?

কোন ভেরিয়েবল বা ভ্যালুর সাথে যখন একটি চিহ্ন ব্যবহার করা হয় তখন সেই চিহ্নকে অপারেটর (Operator) বলে। আবার, যখন কোন গাণিতিক সমস্যা সমাধানের জন্য অপারেটর ব্যবহার করা হবে তখন তাকে Arithmetic Operator বলে। যেমনঃ '+' (প্লাস) একটি অপারেটর যেটিকে দুটি ভেরিয়েবল বা মান যোগ করতে ব্যবহার করা হয়।

আর ভেরিয়েবল ও অপারেটর মিলে যেটি তৈরি হয় সেটিকে বলা হয় Arithmetic Expression. যেমনঃ a+b

Operator Presedence কি?

Presedence (প্রেসেডেন্স) শব্দের বাংলা হলো অগ্রাধিকার। অতএব, Operator Precedence হলো অপারেটরের অগ্রাধিকার। সি প্রোগ্রামিংয়ে প্রতিটি অপারেটরের অগ্রাধিকার ভিন্ন ভিন্ন। যেমন; গুণের জন্য ব্যবহৃত অপারেটর '*' (স্টার) এর অগ্রাধিকার যোগের জন্য ব্যবহৃত '+' (প্লাস) এর অগ্রাধিকার থেকে বেশি। তাই গাণিতিক কোন সমস্যায় প্রোগ্রামটি আগে গুণ করবে পরে যোগ করবে। যেমনঃ

a = 5;
b = 10;
c = 2;

এক্ষেত্রে, a+b*c করলে উত্তর আসবে 25. কারণ, 10 এর সাথে 2 আগে গুণ হয়েছে ও পরে 5 যোগ হয়েছে।

এই সমস্যার সমাধান করতে Parentheses বা ব্র্যাকেট ব্যবহার করা যেতে পারে। যেমন; (a+b)*c করলে উত্তর হবে 30. কারণ, ব্র্যাকেটে 10 এর সাথে আগেই 5 যোগ হয়ে 15 করে ফেলেছে। যেটির সাথে 2 গুণ করলে 30 ফলাফল আসল।

Operator Associativity

অপারেটর প্রেসেডেন্স থেকে প্রোগ্রাম বুঝতে পারে কোন অপারেটরের কাজ আগে করতে হবে। কিন্তু একটি গাণিতিক সমস্যায় যদি প্রত্যেকটি অপারেটরের অগ্রাধিকার সমান হয় তাহলে কি হবে? এজন্যই রয়েছে Operator Associativity.

অপারেটর এসোসিয়েটিভিটি অপারেটরগুলোর অগ্রাধিকার সমান হলে, অপারেটরের উপর ভিত্তি করে নির্ধারণ করে গাণিতিক সমস্যাটি প্রথমে বাম থেকে শুরু করবে নাকি ডান দিক থেকে। প্রত্যেক অপারেটরের লেফ্ট টু রাইট (L->R) বা রাইট টু লেফ্ট (R->L) নামের Associativity Property থাকে। একটি উদাহরণ দেওয়া হলোঃ

a = 5;
b = 10;
c = 2;

result = a + b - c;

এখানে, '+' ও '-' দুটি অপারেটর ব্যবহার করা হয়েছে। এই দুটি অপারেটরেরই Presedence এক। কিন্তু এদের Associativity Property হলো লেফ্ট টু রাইট। তাই এখানে গাণিতিক সমস্যাটি বাম দিক থেকে শুরু হবে। সেক্ষেত্রে, 10 ও 5 আগে যোগ হবে ও পরে 2 বিয়োগ হবে এবং ফলাফল হবে 13.

নিচের চার্টিতে অপারেটরের কাজ সহ অপারেটরগুলোর Presedence ও Associativity তুলে ধরা হয়েছেঃ

Operator Presedence and Associativity



Type Cast Operator কি?

এক ডাটা টাইপ থেকে অন্য ডাটা টাইপে রূপান্তরের জন্য ভেরিয়েবলের সাথে যেই অপারেটর ব্যবহার করা হয় তাকে টাইপ কাস্ট অপারেটর বলে। আর এই প্রক্রিয়াকে বলা হয় Type Casting (টাইপ কাস্টিং)। যেমনঃ

float F = 2.3
show = (int) 2.3 // এখানে (int) হলো টাইপ কাস্ট অপারেটর

F নামের float ভেরিয়েবলটিকে int ভেরিয়েবলে রূপান্তর করা হয়েছে। তাই এখানে ফলাফল দেখাবে 2 (দশমিকের পরের অংশ দেখাবে না)

Assignment Operator কি?

কোন একটি ভেরিয়েবলে নতুন একটি মান বা অন্য একটি ভেরিয়েবল Assign বা যুক্ত করার জন্য যেই অপারেটরগুলো ব্যবহার করা হয় সেগুলোই হলো এসাইনমেন্ট অপারেটর। যেমনঃ

a = 5;
b = 2;
a += b; // a = a + b

এখানে, দ্বিতীয় a এর নতুন মান হবে a = 5+2 বা 7

একটি মন্তব্য পোস্ট করুন


0 মন্তব্যসমূহ