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

ভেরিয়েবল কী?
কেন জিজ্ঞাসা করলাম। এখনো তো ভেরিয়েবল নিয়ে তো কোন কথাই বলিনি। তো, বলে দিই ভেরিয়েবল কী। আপনি এতক্ষণে যথেষ্ট টিউটোরিয়াল শেষ করেছেন। হয়তো নিজে নিজে প্রোগ্রামিং করতে গিয়েছেন। এরপর আপনার প্রয়োজন হয়েছে নির্দিষ্ট ডেটা মেমোরিতে(মানে র‍্যামে) সেভ রাখার। কিন্তু তা পারেননি। এখন আপনার মনে হতে পারে ডেটা মেমোরিতে সেভ রাখার দরকারটা কী? এখন আপনি মনে করুন আপনার সফটওয়্যারটা একটা ওয়েবসাইট। আপনি ঠিক করেছেন ওয়েবসাইটে কতজন মানুষ ভিজিট করে তার একটা গণনা রাখবেন। তাহলে সেটা কিভাবে করবেন। খুবই সোজা, একটা ভেরিয়েবলে শুরুতে শুন্য সংখ্যাটা রাখবেন। যখনই কেউ ওয়েবসাইটটা ভিজিট করবে তখন সেই ভেরিয়েবলের মান এক বাড়িয়ে দিবেন(মানে আগের মানের সাথে ১ যোগ করে তা আবার ভেরিয়েবলে রাখবেন)। এভাবেই। আমরা এই টিউটোরিয়ালে এই প্রোগ্রামটা বানাব। তবে তার আগে সহজে বুঝে নিই ভেরিয়েবল কী?

ভেরিয়েবল(Variable): ভেরিয়েবল হলো র‍্যামের নির্দিষ্ট একটি অংশ যা আপনি দখল করবেন এবং সেখানে ডেটা সেভ করে রাখতে পারবেন (অস্থায়ীভাবে, সফটওয়্যার বন্ধ হলেই তা গায়েব)।

ভেরিয়েবল তৈরির প্রক্রিয়া: ভেরিয়েবল তৈরির জন্য নিচের স্ট্রাকচার অনুযায়ী কোড লিখতে হবে। (উল্লেখ্য, ভেরিয়েবল তৈরিকে ভেরিয়েবল ডিক্লেয়ার করাও বলা হয়)
Dim [ভেরিয়েবলের নাম] As [ভেরিয়েবলের ধরণ]
  • এখন এখানে ভেরিয়েবলের নাম কী জিনিস? আপনি যে র‍্যামে ডাটা সেভ রাখবেন, তা একটা নির্দিষ্ট ঠিকানায় সেভ ধাকবে। কিন্তু আপনার পক্ষে তা মনে রাখা অসম্ভব। সুতরাং আপনি মনে রাখতে পারেন এমন যেকোন নাম দিলেই চলবে। যেমন ভিসিটরের জন্য ভেরিয়েবলের নামে দিতে পারেন Visitor। তবে নাম দেয়ার ব্যপারে কিছু বাধ্যতামূলক নিয়ম রয়েছে, ১. সংখ্যা নামের আগে থাকতে পারবে না। যেমন: 1Visitor, 1NumProduct এগুলো ভেরিয়েবলের নাম হতে পারবে না। ২. ভেরিয়েবলের মধ্যে স্পেশাল ক্যারেক্টার থাকবে না(!, @, #, $, %, .... * ইত্যাদি) তবে আন্ডারস্কোর (_) থাকতে পারবে। যেমন: Var@My, Hurrah!MyVar ইত্যাদি ভেরিয়েবলের সঠিক নাম নয়। তবে VAR_1 সঠিক।
  • ভেরিয়েবলের ধরণ বলতে আমরা কী ধরণের ডেটা রাখতে চাচ্ছি তার উপর নির্ভর করে। যেমন ভিসিটর ভেরিয়েবলে আমরা ভিসিটরের সংখ্যা রাখতে চাই। এই সংখ্যা ১,২,৩... যা খুশি হতে পারে কিন্তু ১.৫, ২.৫ এরকম হতে পারে না। অর্থাৎ পূর্ণসংখ্যা হবে। পূর্ণসংখ্যার জন্য ভেরিয়েবলের ধরণ হলো Integer (Integer ইংরেজি শব্দ যার অর্থই পূর্ণসংখ্যা)। আবার আমরা যদি কোন লেখা ভেরিয়েবলে রাখতে চাই সেক্ষেত্রে ভেরিয়েবলের ধরণ হবে টেক্সট বা ভিজুয়াল বেসিকের ভাষায় String.
তাহলে এই নিয়মে আমরা যদি ভিসিটর ভেরিয়েবল তৈরি করতে চাই তাহলে আমাদের কোড হবে নিম্নরূপ,
Dim Visitor As Integer
এখন আমরা ভিসিটরের মত কঠিন উদাহরণে সরাসরি যেতে চাই না। আমরা একটি প্রোগ্রাম লিখব যা দুইটি ভেরিয়েবলের সংখ্যার যোগফল আউটপুট দেবে। এজন্য আগের টিউটোরিয়ালের মত বাটন তৈরি করে তার ক্লিক ইভেন্টে নিচের কোড গুলো লিখে ফেলুন,
Private Sub Command1_Click()
    Dim Number1 As Integer
    Dim Number2 As Integer
    Dim Sum As Integer
    Number1 = 14
    Number2 = 16
    Sum = Number1 + Number2
    MsgBox Sum
End Sub
কোড লিখা হয়ে গেলে রান করুন। নিচের মত উইন্ডো দেখতে পাবেন,
 
এখন বাটনে ক্লিক করার পর নিচের মত ফলাফল দেখা যাবে,
নিশ্চয়ই বুঝতে পেরেছেন কী ঘটল? না বুঝলে অসুবিধা নেই। বুঝিয়ে দিচ্ছি।

মাত্র কী ঘটল?
আমরা দু'টি সংখ্যার জন্য দু'টি ভেরিয়েবল প্রথম দুই লাইনে তৈরি করেছি। এগুলো হলো Number1 এবং Number2 । এরপর আমরা যোগফলের জন্য একটি ভেরিয়েবল তৈরি করেছি। এটি হলো Sum। এর পরের দুই লাইন হলো,
Number1 = 14
Number2 = 16
যার অনুবাদ করলে দাঁড়ায় Number1 এর মান হবে 14 আর Number2 এর মান হবে 16।
এর পরের লাইন হলো,
Sum = Number1 + Number2
যাকে অনুবাদ করলে দাঁড়ায় Sum এর মান হবে Number1 আর Number2 এর যোগফল। এরপরের লাইন পানির মত সোজা। Sum কে মেসেজবক্সে দেখানো। আপনার মনে হয় এটা বুঝতে সমস্যা হওয়ার কথা না যে আউটপুট 30 কেন হলো।

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


এখানে আমরা Forn1 এর ক্যাপশন প্রোপার্টির মান সেট করেছি Visitor Counter Software,  লেবেলটার Name প্রোপার্টির মান lblVisitorInfo এবং বাটনটার Name প্রোপার্টির মান cmdVisit আর Caption প্রোপার্টির মান সেট করেছি Visit । এখন একটা বিষয় আগেভাগে জানিয়ে রাখা অত্যন্ত প্রয়োজন। আমরা আগের উদাহরণে ভেরিয়েবল তৈরি করেছিলাম ইভেন্ট এর কোড এর ভিতরে। ই্ভেন্ট এর কোড তখনই রান করে যখন তা কাজ করে। অর্থাৎ ভেরিয়েবল তৈরি তখনই হয় যখন বাটনে ক্লিক করা হয়। যখন ইভেন্ট এর সব কোড কাজ করা শেষ করে তখন ভেরিয়েবল র‍্যাম থেকে ডিলিট হয়ে যায়। তাই আমাদের ইভেন্ট এ ভেরিয়েবল ডিক্লেয়ার করলে চলবে না। কেননা ভিসিট একবার হলেই ভেরিয়েবল গায়েব। তাহলে কোথায় ডিক্লেয়ার করতে হবে। সবার উপরে ইভেন্টের দুই লাইনের মাঝখানে না লিখে সবার উপরে লিখতে হবে। সবার উপরে ভেরিয়েবল ডিক্লেয়ার করা হলে এগুলো প্রোগ্রাম চালু হলেই তৈরি হয় এবং যতক্ষণ প্রোগ্রাম বন্ধ করা না হচ্ছে ততক্ষণ র‍্যামে অবস্থান করে। তাই আমাদের ভিসিটর কাউন্ট করার ভেরিয়েবল অবশ্যই উপরে তৈরি করতে হবে। এখন ভেরিয়েবল ভিতরে তৈরি করা আর উপরে তৈরি করা এই দুটো জিনিসকে গালভরা নাম দেয়া হয়েছে। প্রথমটার নাম লোকাল স্কোপ(Local Scope) এ ভেরিয়েবল ডিক্লেয়ার আর দ্বিতীয়টা হচ্ছে গ্লোবাল স্কোপ(Global Scope) এ ভেরিয়েবল ডিক্লেয়ার। কেন এমন নাম দেয়া হয়েছে? আপনিই বলুন। তাহলে আমরা সবার উপরে ভেরিয়েবল ডিক্লেয়ার দিয়ে ফেলি,
Dim Visitor As Integer
এবার ফর্ম এর নতুন একটা ইভেন্ট সম্পর্কে জানা যাক। আমাদের ফর্ম যখন লোড হয়, তাকে এর লোড ইভেন্ট বলে। বুঝতেই পারছেন এর ইভেন্ট এর নামটা হবে Form1_Load (ফর্মের খালি জায়গায় ডাবল ক্লিক করলেই এই ইভেন্ট ভিজুয়াল বেসিক আপনার জন্য লিখে দেবে)। এখন বলুনতো এই ইভেন্ট আমরা কি লিখতে হবে। আমাদের এখনো কোন ভিসিটর নেই। তাই ভিসিটর ভেরিয়েবলের মান 0 সেট করতে হবে। তাই ইভেন্টে লিখে ফেলুন,
Visitor = 0
এখন খালি ভিজিটরের মান সেট করলেই কি হলো? আমাদের লেবেলের ক্যাপশন কী? নিশ্চয়ই এখন সেটা Label1। যদি আপনি সফটওয়্যার ডেভেলপার হন আর আপনার কাস্টমার সফটওয়্যার চালু করে দেখে সেখানে Label1 লেখা তাহলে সে কী বুঝবে? সে মনে করবে এটা সফটওয়্যারের একটা বাগ। তাই এইটাও পরিবর্তন করে লিখতে হবে যে, এখন পর্যন্ত কেউ ওয়েবসাইট ভিজিট করেনি(None has visited the website yet)। তাই কোড লিখে ফেলুন,
lblVisitorInfo.Caption = "None has visited the website yet"
তাহলে পুরো ইভেন্টের কোড হবে,

Private Sub Form_Load()
    Visitor = 0
    lblVisitorInfo.Caption = "None has visited the website yet"
End Sub

এখন আমাদের বাটনের ক্লিক ইভেন্টের কোড লেখা বাকি। আমাদের এখন কী লিখতে হবে। ভিসিটর ভেরিয়েবলের মান ১ করে বাড়াতে হবে। আর কতজন ভিজিট করল তা লেভেল দেখাতে হবে। পুরো ইভেন্টের কোডটাই একবারে দেখে ফেলুন আর লিখুন,


Private Sub cmdVisit_Click()
    Visitor = Visitor + 1
    lblVisitorInfo.Caption = Visitor & " person(s) has/have visited the website yet"
End Sub




এখানে প্রথম লাইনে Visitor = Visitor + 1 এর অনুবাদ হবে Visitor এর মান হবে Visitor আর 1 এর যোগফল। এরপরের লাইনে আমরা একইভাবে লেবেলের ক্যাপশনের মান সেট করেছি ভিজিটর ভেরিয়েবলের মান আর " person(s) has/have visited the website yet"। দুটো একই সাথে প্রিন্ট করতে মাঝখানে একটা অ্যম্পারসেন্ড চিহ্ন (&) দিয়ে দিয়েছি। সম্পূর্ণ কোডটা আরেকবার দেখা যাক,
Dim Visitor As Integer

Private Sub cmdVisit_Click()
    Visitor = Visitor + 1
     lblVisitorInfo.Caption = Visitor & " person(s) has/have visited the website yet"
End Sub

Private Sub Form_Load()
    Visitor = 0
    lblVisitorInfo.Caption = "None has visited the website yet"
End Sub

এখন রান করা যাক। নিচের মত উইন্ডো দেখা যাবে,

সাতবার(আপনার ইচ্ছামত) ক্লিক করার পর চিত্র হবে নিচের মত,
আশা করি সবই বুঝতে পেরেছেন।
ভেরিয়েবল ছাড়াও এই টিউটোরিয়ালে আপনি দুটো বিষয় শিখেছেন। এগুলো হলো + চিহ্নর কাজ ও & চিহ্নর কাজ। আশা করি উপকারে এসেছে।

লেভেল আপ ! !! !!!
ক্লাস থ্রি এর হাফ ইয়ারলিতে এ প্লাস পেয়েছেন। আর মাত্র ছয় মাস(এক মাস = কত সেকেন্ড?)

ভালোই আগাচ্ছেন। এবার সূচিতে গিয়ে পরের টিউটোরিয়াল কমপ্লিট করুন।

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

উইন্ডোজ সফটওয়্যার তৈরি(ভিজুয়াল বেসিক ৬)

ঘূর্ণন

দাবা খেলায় প্রতিরক্ষার নিয়ম, এটা জানলে আপনার রেটিং ৫০০ ছাড়াবে নিশ্চিত।