Sunday , January 29 2023

ধ্রুবক (Constant), চলক (Variable), চলকের প্রকারভেদ

ধ্রুবক (Constant):

প্রোগ্রাম নির্বাহের সময় সি প্রোগ্রামিং ভাষায় এমন কিছু মান আছে, যা কখনো পরিবর্তন হয় না। যেমন পাই () এর মান হলো 3.1416 যা কখনো পরিবর্তন হয় না। প্রোগ্রাম নির্বাহের সময় যে রাশির মান অপরিবর্তিত থাকে, তাকে কন্সট্যান্ট বা ধ্রুবক বলা হয়। সি প্রোগ্রামিং ভাষায় দুইভাবে কন্সট্যান্ট ঘোষণা করা যায়। যথা-

  1.  Const কী-ওয়ার্ড ব্যবহার করে
  2.  #define প্রিপ্রসেসর ব্যবহার করে

 

const কী-ওয়ার্ড ব্যবহার করে ধ্রুবক ঘোষণার ফরম্যাট:

const ConstType ConstName = ConstValue;

যেমন: const float pi = 3.1416;

const int num = 40;

const float vall = 40.7523;

 

#define প্রিপ্রসেসর ব্যবহার করে ধ্রুবক ঘোষণার ফরম্যাট:

#define ConstName ConstValue;

যেমন: #define pi 3.1416;

#define num = 40;

#define name “Ebadur Rahman”;

 

চলক (Variable):

সি ভাষায় মেমোরিতে ডেটা সংরক্ষণ করতে যে নাম ব্যবহৃত হয়, তাকে চলক (Variable) বলা হয়। চলক (Variable) হলো মেমোরি লোকেশনের নাম বা ঠিকানা। প্রোগ্রামে যখন কোনো ডেটা নিয়ে কাজ করা হয়, প্রাথমিকভাবে সেগুলো কম্পিউটারের মেমোরিতে (RAM-এ) রাখা হয়। এক্ষেত্রে মেমোরি এড্রেস সরাসরি ব্যবহার না করে একটি নাম দিয়ে ঐ নামের অধীনে ডেটা রাখা হয়। ঐ নামকেই ভেরিয়েবল বলা হয়। প্রতিবার প্রোগ্রাম নির্বাহের সময় মেমোরিতে ভেরিয়েবলগুলোর অবস্থান এবং এতে সংরক্ষিত মান পরিবর্ন হয় বা হতে পারে বলে এদেরকে ভেরিয়েবল বা চলক বলা হয়। ব্যবহারকারীর প্রয়োজনানুযায়ী মান ব্যবহার এবং ফলাফল পেতে ভেরিয়েবল ব্যবহৃত হয়।

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

 

ডিক্লারেশনের ওপর ভিত্তি করে ভেরিয়েবলের প্রকারভেদ

ডিক্লারেশনের ওপর ভিত্তি করে ভেরিয়েবলকে দুই ভাগে ভাগ করা যায়। যথা- লোকাল ভেরিয়েবল এবং গ্লোবাল ভেরিয়েবল।

১. লোকাল ভেরিয়েবল (Local Variable): কোন ফাংশনের মধ্যে ভেরিয়েবল ডিক্লেয়ার করলে তাকে উক্ত ফাংশনের লোকাল ভেরিয়েবল বলা হয়। কোন ফাংশনের মধ্যে ডিক্লেয়ার করা লোকাল ভেরিয়েবল উক্ত ফাংশনের বাইরে ব্যবহার করা যায় না। লোকাল ভেরিয়েবলের কর্মকান্ড শুধুমাত্র সংশ্লিষ্ট ফাংশনেই সীমাবদ্ধ থাকে। ভিন্ন ভিন্ন ফাংশনে একই নামের লোকাল ভেরিয়েবল থাকতে পারে।

২. গ্লোবাল ভেরিয়েবল (Global Variable): সকল ফাংশনের বাইরে প্রোগ্রামের শুরুতে ডিক্লেয়ার করা ভেরিয়েবলকে গ্লোবাল ভেরিয়েবল বলা হয়। গ্লোবাল ভেরিয়েবল সাধারণত প্রোগ্রামের শুরুতেই ডিক্লেয়ার করা হয়। গ্লোবাল ভেরিয়েবলের কর্মকান্ড কোন ফাংশনের মধ্যে সীমাবদ্ধ নয়। লোকাল ভেরিয়েবল ও গ্লোবাল ভেরিয়েবলের ব্যবহার দেখার জন্য নিচের প্রোগ্রামটি লক্ষ করা যাক।

এখানে float pi হলো গ্লোবাল ভেরিয়েবল। এটি main () ফাংশনের আগে ডিক্লেয়ার করায় প্রোগ্রামের যে কোনো জায়গায় ব্যবহার করা যাবে। radius ও area ভেরিয়েবল main () ফাংশনের ভিতরে হওয়ায় এগুলো লোকাল ভেরিয়েবল।

variable-1

 

ভেরিয়েবল নামকরনের নিয়ম

প্রোগ্রামের শুরুতে প্রয়োজনীয় সংখ্যক ভেরিয়েবল ঘোষণা করে প্রোগ্রামের পরবর্তী অংশে সেগুলো ব্যবহার করতে হয়। তবে ভেরিয়েবল তৈরি (ঘোষণা) এবং নামকরণের মধ্যে কিছু মৌলিক সীমাবদ্ধতা ও নিয়ম-কানুন রয়েছে। নিম্নে সেগুলোর কয়েকটি উল্লেখ করা হলো:

১. ভেরিয়েবলের প্রথম অক্ষরটি অবশ্যই বর্ণ (a,…,z, A,…,Z) হতে হবে।

২. ভেরিয়েবলের প্রথম অক্ষটির পরে ভেরিয়েবল নামকরণে কেবল আলফাবেটিক ক্যারেক্টার (a,…,z, A,…,Z), ডিজিট (0,…,9) এবং আন্ডারস্কোর (­ _ ) ও ডলার চিহ্ন ($) ব্যতীত অন্য কোন ক্যারেক্টার ব্যবহার করা যায় না।

৩. একই ফাংশনে একই নামে দুই বা ততোধিক ভেরিয়েবল ঘোষণা করা যায় না।

৪. ভেরিয়েবল নামের মধ্যে কোন ফাঁকা স্থান থাকতে পারে না।

৫. ভেরিয়েবল নাম ডিজিট বা অঙ্ক দিয়ে শুরু হতে পারে না।

৬. ভেরিয়েবলের নামকরণে ইংরেজি ছোট ও বড় হাতের অক্ষরগুলো আলাদা অর্থ বহন করে। তাই MyRoll নামে ভেরিয়েবল ঘোষণা করে একে আবার Myroll নামে ব্যবহার করা যায় না।

৭. কী-ওয়ার্ড, ফাংশন, স্টেমেন্ট, রিজার্ভড ওয়ার্ড ইত্যাদির নাম ভেরিয়েবল হিসেবে ব্যবহার করা যায় না।

৮. ভেরিয়েবল নামকরণে সর্বাধিক 31 ক্যারেক্টার ব্যবহার করা যায়।

 

কয়েকটি বৈধ ও অবৈধ ভেরিয়েবলের উদাহরণ

variable-2

 

About admin

Check Also

testing_debugging

প্রোগ্রাম টেস্টিং (Testing) ও ডিবাগিং (Debugging)

প্রোগ্রাম লেখার সময় কোডিং-এ ভুল হতে পারে। প্রোগ্রাম তৈরি করার পর এটিতে কোন ভুল অছে …

Leave a Reply

Your email address will not be published. Required fields are marked *