Thursday, June 18, 2015

সি প্রোগ্রামিং : পর্ব ০৫>> ভেরিয়েবল এবং ডাটা টাইপ

ভেরিয়েবল কি এবং কেন ?

           ভেরিয়েবল এর বাংলা অর্থ হল চলক । চলক এর অর্থ অনেকেই জানো তোমরা । একটি চলক একটি মান / VALUE বহন করে এবং মানটি পরিবর্তন হতে পারে যেকোনো মুহূর্তে । এটা ছিল সহজ বাংলায় ভেরিয়েবল এর অর্থ । চলককে আমরা ধারণকারী বলতে পারি । এবং যখন যা তাকে দেয়া হবে তা সে তখন গ্রহন করবে । একটু বুঝার চেষ্টা করি বরং । ধরো, X + 10 = ? এখন তুমি এখানে X এর VALUE / মান যেকোনো কিছু বসাতে পারো । ধরো X = ২০; এখন ২০ + ১০ = ৩০ । এখন তুমি X = 40.5, X = 10.5, X = 25; ইত্যাদি মান নিয়ে বসাতে পারো X ভেরিয়েবলে । 40.5 + 10 = 50.5; / 10.5 + 10 = 20.5; / 25 + 10 = 35; । তাহলে আমরা বলতে পারি A Variable is an element, feature or factor that is liable to vary or change । অর্থাৎ ভেরিয়েবল এমন একটি উপাদান যা কিনা একটি মানের পরিবর্তে যেকোনো মান/VALUE নিতে পারে । কম্পিউটারের ক্ষেত্রেও ভেরিয়েবল একই কাজ করে ।

           আচ্ছা এবার আমরা আসি এটা কোন দুঃখে ব্যাবহার করা হয় :P । চল একটু স্বপ্ন দেখি ? যাই হক স্বপ্ন টা একটু অন্যরকম জোর করে দেখতে হবে, কল্পনা (Imagine) করতে হবে আরকি । ধরো, 5 এবং 10; এই দুটি সংখ্যা যোগ করবে । মেশিন ল্যাঙ্গুয়েজ এ এটা করতে গেলে তোমাকে দুটো ADDRESS এ মানগুলো রাখতে হবে । ধরি 1001 এবং 1501 এ রাখলাম যথাক্রমে 5 এবং 10 । এখন এই দুটো সংখ্যা তুমি যোগ করতে চাও তাহলে তোমাকে সরাসরি মেমোরি নিয়ে কাজ করতে হবে অর্থাৎ তোমাকে 1001 & 1501  এই দুটো মেমোরির ডাটা যোগ করতে হত, যা কিনা খুবই বিরক্তিকর এবং কষ্টকর আর এখন তো মেমোরি নিয়ে কাজ করার প্রশ্নই আসে না । কিন্তু হাই লেভেল ল্যাঙ্গুয়েজ এ ভেরিয়েবল নামক একটি বিষয় রয়েছে যা এই কষ্ট থেকে আমাদেরকে মুক্তি দান করেন :P । কিভাবে করে প্রশ্ন দাড়ায় এখন ? ধরো A = 5 & B = 10; এখানে A, B হচ্ছে একটি ভেরিয়েবল বা চলক, এটিকে মূলত রুপক অর্থে ব্যাবহার করা হয় । যেমন A আর B Variable দুটো Randomly ( ইচ্ছামতন ) মেমোরি তে একটি জায়গা করে নিবে । ধরলাম, সেই Address টি হল 1001, এই Address টার নাম দেয়া হয়েছে "A" যেটা একটা চলক বা variable । অনুরূপভাবে B চলকটি হচ্ছে 1501 মেমোরির Address টির নাম । 

তাহলে,
A = 5  ও B = 10; 
C = A + B = 5 + 10 = 15; 
A = 1001 = 5 এবং B = 1501 = 10; 

C আরেকটি চলক যার কাজ হচ্ছে A + B কে যোগ করে C তে রাখবে । ধরি C এর মেমোরি Address হচ্ছে 2001 তাহলে C = 15 ( যা কিনা A + B এর যোগফল ) 2001 মেমোরি Address এ 15 রাখবে । নিচের চিত্র গুলো আমার কথা গুলোকে Represent করতেছে । 

            তাহলে Variable বা চলক এর কাজ হচ্ছে কোন মানকে সংরক্ষণ করে রাখা এবং প্রয়োজনমতন তুমি ভেরিয়েবল এর মান পরিবর্তন ও করতে পারবে । এবার আমরা একটু উপরে ফিরে যাই ।

আচ্ছা এখানে দুটো ব্যাপার, যেহেতু মেমোরি বাইনারি নাম্বার ছাড়া কিছু বুঝে না, 5 এর বাইনারি মান হচ্ছে 101 । নিশ্চয়ই চিন্তা করতেছ যেহেতু মান 101 তাহলে আগে 00000000 00000101 । এখানে সংক্ষেপে বলব আমি কেননা এখন বললে আমাকে কিছু একটা ছুরে মারতে পার । মাথা গরম হয়ে যাওয়ার সম্ভাবনা বেশি :P । যাই হোক ফেরত আসি আগের কথায় । ৫ একটি পূর্ণ সংখ্যা অর্থাৎ Integer Value, So (5)10 = (101)2 । অর্থাৎ ৫ এর বাইনারি মান হচ্ছে ১০১ । কম্পিউটারে পূর্ণসংখ্যার / Integer এর জন্য ২ বাইট করে জায়গা খায় । ১ বাইট = ৮ বিট, তাহলে মেমোরিতে জায়গা আছে ১৬ বিট এবং প্রতিটা Memory Address 8 bit করে জায়গা থাকে । জেহেতু 5 এর বাইনারি মান ১০১ তাই আগের ঘরগুলো 00000000 00000101 এভাবে পূরণ করা হয়েছে । বাকিটুকু পরে আলচনা করতেছি ।

ডাটা টাইপ কি এবং কেন ? 

        ডাটা টাইপ কথাটাই অনেক কিছু বলে দিচ্ছে যেমন, কি ধরনের ডাটা হতে পারে, থাকতে পারে কিংবা ব্যাবহার করা যেতে পারে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজে । সি তে মূলত ৪ ধরনের ডাটা টাইপ রয়েছে । 
  • Integer Data Type
  • Double Data Type
  • Float Data Type
  • Char Data Type

Integer Data Type:

      Integer Data Type এর ব্যাপারে তো বললামই । মূলত এটি {-1,-2,-3....0....1,2,3....} এই নাম্বারগুলো ব্যাবহার করার জন্য int Data Type ব্যাবহার করা হয় । int এর জন্য মেমোরি ২ বাইট জায়গা নেয় । 

Double Data Type:

     Double Data Type ভগ্নাংশ Declare করার সময় ব্যাবহার করা হয় । Double Data Type মেমোরিতে ৮ বাইট জায়গা নেয় । এখন শুধু এই কথা গুলো মনে রাখ পরে ব্যাখ্যা করব কিভাবে কি করতে হবে ।

Float Data Type:

     Float Data Type এবং Double Data Type এর কাজ একই । কিন্তু Float Data Type Memory তে জায়গা কম ব্যাবহার করে । Float Type Variable এর জন্য মেমোরি ৪ বাইট জায়গা নেয় । 

Char Data Type:

     Char Data Type হল Character Declare করার সময় ব্যাবহার করা হয় । Character Data Type মেমোরি তে ১ বাইট জায়গা ব্যাবহার করে ।


        এখন ভাই এগুলা দিয়া কি করব । ফেলে দিব নাকি মাথায় রাখব । মাথায় রাখ এগুলা দিয়া প্রোগ্রাম লিখবা পরে :P । 

No comments:

Post a Comment