"আবারও আমি। আমি একটা বিষয় ব্যাখ্যা করতে ভুলে গিয়েছিলাম। আমি এখন তোমাকে চলক ও মেমরি অ্যাড্রেসিং সম্বন্ধে বলব। আমরা খুব বেশি গভীরে যাব না, তবে তুমি অন্ততঃ কিছুটি মনে রাখলে ভাল হবে।"

"আমি তোমার পাঠ গ্রহণ প্রক্রিয়া পছন্দ করি: তুমি কিছু বুঝতে পারলে - চমৎকার। তুমি কিছু বুঝতে না পারলে - সেটাও ঠিক আছে।"

"ভালবাসা জোর করে চাপানো যায় না। এটি স্পষ্ট। তোমার গ্রহে এটা কি এই রকম নয়?"

"না। আমাদের পদ্ধতি ভিন্ন। তুমি চাইলে পড়াশোনা কর; তুমি না চাইলেও পড়াশোনা কর, তবে অনিচ্ছায়।"

"শেখার জন্য খুবই অদক্ষ পদ্ধতি! এতে প্রচুর শক্তি ও সময় অপচয় হয় এবং ফলাফল খারাপ হয়।"

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

"ঠিক আছে। Excel এর কথা কল্পনা করো। সবাই Excel সম্পর্কে জানে। কিছু সেল নিয়ে Excel শিট গঠিত হয়। প্রতিটি সেলের অনন্য সনাক্তকারী রয়েছে (A1, A2,…B1, B2)। তুমি কোনো সেলের সনাক্তকারী জানলে তুমি সবসময় তাতে কোনো মান লিখতে পারো অথবা সেখানে যে মান সংরক্ষিত আছে তা পেতে পারো। কম্পিউটার মেমরিও একেবারে একই প্রক্রিয়ায় সাজানো হয়।"

image-ru-01-25

"আমি এখন পর্যন্ত আপনার কথা বুঝতে পারছি।"

"প্রোগ্রাম চলার সময় প্রোগ্রাম ও প্রোগ্রাম ডেটা মেমরিতে সংরক্ষিত হয়। সব কম্পিউটার মেমরিকে ছোট ছোট সেল বা বাইটে ভাগ করা হয়। প্রতিটি সেলের অনন্য সনাক্তকারী বা সংশ্লিষ্ট নম্বর আছে: 0,1,2,3,… (নম্বর শুরু হয় 0 থেকে)। তুমি কোনো সেলের নম্বর জানলে তুমি এতে ডেটা সংরক্ষণ করতে পারো। অথবা এটি থেকে ডেটা পেতে পারো। কিছু সেল প্রোগ্রামের ডেটা; অর্থাৎ প্রসেসরের জন্য একগুচ্ছ কম্যান্ড সংরক্ষণ করে। অন্যগুলো প্রোগ্রামের ব্যবহৃত ডেটা সংরক্ষণ করে। প্রতিটি সেলের নম্বরকে তার অ্যাড্রেস বা ঠিকানা বলা হয়।"

"প্রফেসর ইতিমধ্যেই আমাকে প্রসেসর ও কম্যান্ড সম্বন্ধে বলেছেন, কিন্তু বিস্তারিত নয়।"

"প্রসেসর জানে যে মেমরিতে লোড করা কম্যান্ড কিভাবে সম্পাদন করতে হবে। প্রায় সব প্রসেসর কম্যান্ডই এমন যে তা "কোনো সেল থেকে ডেটা গ্রহণ করে, এগুলি নিয়ে কাজ করে, ফলাফল অন্য সেলগুলোতে পাঠায়।" আমরা জটিল ও উপযোগী কম্যান্ড পেতে কয়েকশ সরল কম্যান্ড যুক্ত করে থাকি।"

"কিন্তু এসব আমার কেন প্রয়োজন?"

"কোনো কোডে একটি চলক ঘোষণা করা হলে অব্যবহৃত একটি মেমরি বিট এতে ধার্য করা হয়। এটি সাধারণভাবে কয়েক বাইট হয়ে থাকে। চলক ঘোষণা করার জন্য প্রোগ্রামটি কোন ধরনের তথ্য এতে সংরক্ষণ করবে তা উল্লেখ করার প্রয়োজন হয়: সংখ্যা, টেক্সট বা অন্য ডেটা। সুবিধার জন্য, প্রতিটি চলককে একটি অনন্য নাম দেওয়া হয়।

"তার মানে কি এই যে চলক হল একটি নাম, ধরন, মেমরির অংশ এবং একটি মানও বটে?"

"এতে এসবকে একটির মধ্যে অন্তর্ভুক্ত করা হয়। কিছু উদাহরণ দেখো।"

কোড ব্যাখ্যা
1
String s;
এই লাইন s নামের একটি চলক তৈরি করে। আমরা এর ধরনকে String হিসেবে ঘোষণা করি, কারণ টেক্সট সংরক্ষণ করার জন্য এটি ব্যবহার করা হবে।
আমরা একই ফাংশন বা ক্লাসে একই নামের আরেকটি চলক ঘোষণা করতে পারি না।
2
String s2 = "I'm Diego";
এই লাইন s2 নামের একটি স্ট্রিং চলক তৈরি করে এবং অবিলম্বে "I'm Diego" মান আরোপ করে।
3
int a;
এখানে আমরা a নামের একটি চলক তৈরি করি। এতে যা সংরক্ষণ করা হবে তার সঙ্গে এর ডেটার ধরন মেলে। int ডেটার ধরন হল integer এর সংক্ষিপ্ত রূপ।
4
int b = 4;
আমরা b নামের একটি চলক তৈরি করি। এর ডেটার ধরন (int) পূর্ণসংখ্যা সংরক্ষণ করার জন্য। চলকটিতে অবিলম্বে 4 মান আরোপ করা হয়।

"এখানে দিয়েগো থেকে কিছু কাজ দেওয়া হল। এগুলো নিয়ে একবারে অল্প সময়ের জন্য কাজ করো।