Thursday, February 4, 2016

লোকাল ভ্যারিয়েবল






লোকাল ভ্যারিয়েবল

আজ আমরা জানবো লোকাল ভ্যারিয়েবল সম্বন্ধে।
ধরো,তোমার এলাকার নাম গোবরা।তোমার এলাকার এক মেধাবী ছাত্র আছে যার নাম নূর-আলম। ছেলেটাকে সবাই এলাকার গর্বের ধন মনে করে।তোমার এলাকার সব জায়গায় নূর-আলমের নামডাক।তোমাদের কাছে নূর-আলম একজন হিরো।
এবার শোনো আমার এলাকার গল্প। আমার এলাকার নাম সোবহানসড়ক। আমার এলাকায় একজন মেধাবী ছাত্র আছে,নাম আসলাম।সে খুব ভদ্র,স্কুল-কলেজে সবসময় খুব ভালো রেজাল্ট করে। আমাদের এলাকার যে কারো কাছে গিয়ে যদি বলো যে,”ভাই,আসলাম কে চিনেন কি না?”।দেখবে যে,সবাই তাকে একনামে চিনে ফেলতেছে। আসলামও আমাদের এলাকার হিরো।
এখন কথা হলো, তোমার এলাকার নূর-আলমকে আমি চিনি না। কারণ,নূর-আলম আমার এলাকার বাইরে। আবার তুমিও আমার এলাকার আসলামকে চিনো না,কারণ আসলাম তোমার এলাকার বাইরে। অর্থাৎ আসলাম এবং নূর-আলম দুজনেই লোকাল হিরো। এদের দুজনে শুধু নিজের এলাকায় পরিচিত।নিজের এলাকার বাইরে এদের কেউই চিনে না। বাইরের এলাকায় এরা অপরিচিত।
আমাদের লোকাল ভ্যারিয়েবল ঠিক এমন। নিজের এলাকার বাইরে লোকাল ভ্যারিয়েবলকে কম্পাইলার চিনে না।লোকাল ভ্যারিয়েবলকে তার নিজের এলাকার লোকজন শুধু চিনে।প্রোগ্রামিংয়ে এলাকা নির্ধারিত হয় কার্লি ব্রাকেট এর মাধ্যমে।কার্লি ব্রাকেট আমাদের কাছে সেকেন্ড ব্রাকেট নামেই পরিচিত। প্রোগ্রামিংয়ে একটি কার্লি ব্রাকেটের ওপেনিং পার্ট থেকে সেই কার্লি ব্রাকেটের এন্ডিং পার্ট পর্যন্ত একটি এলাকা।
নিচের কোড দেখে কপি পেস্ট করে রান করে দেখো যে কম্পাইলার তোমাকে কি সিগন্যাল দেই।

#include<stdio.h>
int main()
{
                int a[5]={10,20,30,40,50};///এই ভ্যারিয়েবলের জন্যে কার্লি ব্রাকেটের ওপেনিং পার্ট হলো উপরের ব্রাকেট টি।যতক্ষণ না এই কার্লি ব্রাকেটের এন্ডিং পার্ট আমরা না পাচ্ছি,ততক্ষণ এই ভ্যরিয়েবলকে কম্পাইলার চিনবে   
    int i;//এই ভ্যারিয়েবলটির ক্ষেত্রেও উপরের একই কথা
for(i=0;i<5;i++)
{
    int t;
   if(a[i]%2==0)
                t=0;///a[i] এর মান জোড় হলে t=0 হবে
 else
                t=1; ///a[i] এর মান জোড় না হলে t=1 হবে
}
                printf(“t er maan holo %d\n”,t);
     return 0;
}
উপরের কোড রান করলে দেখবে যে, for লুপের ভেতরে t ভ্যারিয়েবল কে কম্পাইলার চিনলেও printf ফাংশনে t ভ্যারিয়েবলকে কম্পাইলার চিন্তেছে না।কারণ,t ভ্যারিয়েবল যখন তার নিজের এলাকায় ব্যবহৃত হয়েছে,তখন তাকে কম্পাইলার চিনেছে,যখন এলাকার বাইরে ব্যবহৃত হয়েছে তখন কম্পাইলার চিনতে পারে নাই। এবার তোমরা লোকাল ভ্যারিয়েবলের সংজ্ঞা আবার দেখে নাও।দেখো,অইখানে আমি বলেছি যে, লোকাল ভ্যারিয়েবলকে কম্পাইলার চিনবে একটি নির্দিষ্ট এলাকা পর্যন্ত। যেখানে ভ্যারিয়েবলটি ডিক্লেয়ার করা হয়েছে,তার ঠিক আগে যে কার্লি ব্রাকেটের ওপেনিং পার্ট{ আছে,সেই কার্লি ব্রাকেটের এন্ডিং পার্ট } পর্যন্ত ভ্যারিয়েবলটিকে কম্পাইলার চিনবে। ঐ কার্লি ব্রাকেটের বাইরে আর ভ্যারিয়েবলটিকে কেউ চিনবে না। উপরে দেখো যে,t ভ্যারিয়েবলের ঠিক আগে যে কার্লি ব্রাকেটের ওপেনিং পার্ট আছে,তার এন্ডিং পার্ট আছে printf ফাংশনের উপরে। আমাদের সংজ্ঞামতে স্বভাবতই t ভ্যারিয়েবলকে কম্পাইলার এরপর আর চিনবে না।এজন্যেই printf ফাংশনে কম্পাইলার t ভ্যারিয়েবলকে চিনতেছে না। এখন এই সমস্যা উত্তরণের জন্যে printf ফাংশন যে কার্লি ব্রাকেটের মাঝে অবস্থিত,t ভ্যারিয়েবলকে ঠিক সেই কার্লি ব্রাকেটের মধ্যেই ডিক্লেয়ার করতে হবে।
#include<stdio.h>
int main()
{
int a[5]={10,20,30,40,50};///এই ভ্যারিয়েবলের জন্যে কার্লি ব্রাকেটের ওপেনিং পার্ট হলো     উপরের ব্রাকেট টি।যতক্ষণ না এই কার্লি ব্রাকেটের এন্ডিং পার্ট আমরা না পাচ্ছি,ততক্ষণ এই ভ্যরিয়েবলকে কম্পাইলার চিনবে   
    int i,t;//এই ভ্যারিয়েবল দুটির ক্ষেত্রেও উপরের একই কথা
for(i=0;i<5;i++)
{
       if(a[i]%2==0)
                t=0;///a[i] এর মান জোড় হলে t=0 হবে
 else
                t=1; ///a[i] এর মান জোড় না হলে t=1 হবে
}
                printf(“t er maan holo %d\n”,t);///লক্ষ করে দেখো,t ভ্যারিয়েবলের কার্লি ব্রাকেটের এন্ডিং পার্ট এখনও আসে নাই। অর্থাৎ এখন t ভ্যারিয়েবল তার এলাকার মাঝেই আছে।
     return 0;
}
আসোলে,লোকাল ভ্যরিয়েবল জানা আমাদের প্রোগ্রামিংয়ের জন্যে খুব দরকারি।লোকাল ভ্যারিয়েবল নিয়ে অথবা প্রোগ্রামিং এর যেকোনো কিছু নিয়ে এট ফার্স্ট তোমাকে নিজে চেষ্টা করতে হবে সমস্যা,সমস্যা উদঘাটনের।
এই ছিলো লোকাল ভ্যারিয়েবল সম্বন্ধে।

No comments:

Post a Comment