ভেরিয়েবল

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

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

ডাটা টাইপের কীওয়ার্ড এর পর এক বা একাধিক স্পেস দিয়ে একটি বর্ন বা শব্দ তারপর একটি সেমিকোলন দিলে, ঐ বর্ন বা শব্দ নামে একটি ভেরিয়েবল ডিক্লেয়ার হয়। যেমন, পূর্ন সংখ্যা রাখার জন্য memory নামে একটি ভেরিয়েবল ডিক্লেয়ার করতে চাইলে, পূর্ন সংখ্যার কীওয়ার্ড int লিখার পর স্পেস দিয়ে memory তারপর একটি সেমিকোলন দিতে হবে। অর্থাৎ memory নামে ভেরিয়েবল ডিল্কেয়ার করতে হয় নিচের মতঃ
int memory;
একইভাবে, ভগ্নাংশ রাখার জন্য a নামের কোন ভেরিয়েবল ডিক্লেয়ার করতে চাইলে লিখতে হবেঃ
float a; ভেরিয়েবল ডিল্কেয়ার করতে চাইলে আগে নির্বাচন করতে হয় ডাটা টাইপ এবং পরে ভেরিয়েবলের নাম। ডাটা টাইপের কীওয়ার্ড লিখতে হয় আর ভেরিয়েবল নামটি আপনার পছন্দ মত যেকোন নাম লিখা যাবে কিন্তু নিচের শর্তগুলো মানতে হবেঃ

  • a হতে z অথবা A হতে Z পর্যন্ত যেকোন বর্ন ব্যবহার করা যাবে
  • ডিজিট ব্যবহার করতে পারবেন তবে শুরুতে না
  • underscore ব্যবহার করতে পারবেন তবে space ব্যবহার করতে পারবেন না
  • কোন কীওয়ার্ড ব্যবহার করতে পারবেন না

প্রশ্নঃ int value+value2; লিখা যাবে কি?
উত্তরঃ না, কারন ‘+’(arithmetic operator)ব্যবহার করা হয়েছে।উপরের ৪টি শর্তের কোনটিতেই ‘+’ ব্যবহার করার কথা বলা নেই। তাই এটি নিচের মত লিখতে পারেনঃ

অথবা,
.আপনি যদি এক সাথে অনেক ভেরিয়েবল ডিক্লেয়ার করতে চান তাহলে নিচের মত করতে পারেন।

যেমনঃ পূর্ন সংখ্যা রাখার জন্য a,b,c নামে তিনটি ভেরিয়েবল কে একসাথে ডিক্লেয়ার করতে পারেন নিচের মতঃ

ভেরিয়েবল ডিক্লেয়ার করলে আসলে কি হয়?

 মনে করুন আপনি নিচের মত দু’টি পূর্ণ সংখ্যার ভেরিয়েবল ডিক্লেয়ার করলেন

এ দু’টি লাইন লেখার করণে কম্পিউটার এ a ও b এর অধীনে দু’টি মেমরী এড্রেস সৃষ্টি হবে, যেটিকে আপনি নিচের চিত্রের মত চিন্তা করতে পারেন :

a
b

আপনি কি কখনো এই মেমরী এড্রেস নিজের চোখে দেখেছেন? আপনি চাইলেই দেখতে পারবেন নিচের কোডটি রান করেঃ

Code Example

OUTPUT

Address of a = 2686748
Address of b = 2686744

এখানে, %u দিয়ে মেমরী এড্রেস প্রিন্ট করা হয়েছে। a এর মেমরী এড্রেস বুঝাতে a এর আগে & ব্যবহৃত হয়েছে। এখেনে একটি ব্যপার লক্ষ্য করুন, 2686748 এবং 2686744 সংখ্যা দুটির পার্থক্যঃ 4. অর্থাৎ int টাইপের ভেরিয়েবলের জন্য চার বাইট মেমরী তৈরি হয়।

আরেকটি ব্যাপার, আপনার কম্পিউটারে এই প্রোগ্রামটি রান করলে 2686748 এবং 2686744 আউটপুট পাবেন না। কারন প্রোগ্রামটা রান করার সময় আমার কম্পিউটারে যেই মেমরী এড্রেস ফাকা ছিল সেখান থেকে প্রথম চার বাইট a এর জন্য নির্ধারিত হয়েছে এবং পরবর্তী চার বাইট b এর জন্য নির্ধারিত হয়েছে। আমার কম্পিউটারের ফ্রি মেমরী স্পেস শুরু হয়েছে 2686748 থেকে আপনার কম্পিউটারের ফ্রি মেমরী স্পেসও 2686748 থেকে শুরু হবে এটার সম্ভাবনা খুবই কম। তাই কোন প্রগ্রামের আউটপুট বইয়ের সাথে যদি না মিলে, তার মানে প্রোগ্রাম ভুল – সবসময় কিন্তু এটা সত্যি নয়।