ভেরিয়েবল (variable) বা চালক হল মেমোরির 





(R A M) লোকেশনের নাম বা ঠিকানা। প্রোগ্ৰামিং

তখন কোনো ডেটা কাজ করা হয় , প্রাথমিকভাবে 

সেগুলো কম্পিউটারের র্য্যাম অবস্থান করে

>পরবর্তী সময়ে সেগুলো পুনরুদ্ধার বাপুনব্যবহারে

জন্য ঐ নাম বা ঠিকানা জানা প্রয়োজন হয়‌। 

Link: 

Pdf file দেখার জন্য কিছুকন ওপেকা করবেন 

>সুসুতরাং , প্রোগ্রামে ডেটা নিয়ে কাজ করার সময় প্রতিটি ডেটার জন্য একটি ভেরিয়েবল ব্যবহৃার করতে হয়। প্রতিবার প্রোগ্রাম নিবাচহের

সময় মেমোরির ভেরিয়েবলগুলো অবস্থান এবং সংক্ষিপ্ত মান পরিবর্তন হয় বা হতে পারে বলে এরুপ নামকরণ করা হয়।


ভেরিয়েবল ঘোষণা করলে যা হয়: 


প্রোগ্রামে কোনো ভেরিয়েবল ঘোষণা করা হলে কম্পাইলার ঐ ভেরিয়েবলের নামে ডেটা টাইপ অনুযায়ী মেমোরির (R A M) প্রয়োজনীয় পরিসর 

(রাইট) বরাদ্দ করে ।


>পরবর্তীতে প্রোগ্ৰাম নির্বাহের সময় ভেরিয়েবলের মান নির্বাহের সময় ভেরিয়েবলের 

মান নির্ধারণ করা হলে নির্ধারিত মান সমতুল্য বাইনারি সংখ্যার রূপান্তরী হয়ে মেমোরির ঐ লোকেশনে সংরক্ষিত হয় এবং প্রোগ্ৰাম নির্বাহ 

শেষে স্বয়ংক্রিয়ভাবে বরাদ্দকৃত মেমরি পরিসর 

খালি করে দেয়।



গুলোপূণ তথ্য: সব প্রোগ্ৰামেই কিছু না কিছু ডেটা নিয়ে কাজ করা হয়। প্রোগ্ৰামে ব্যবহারের জন্য ডেটা নিয়ে কাজ করা হয় এবং প্রায়োজননে মেমরি থেকে ডেটা উত্তেলন করে কাজে লাগান 

হয় । নিম্ন পর্যায়ের ভাষায় মেমোরির ডেটা রাখার জন্য সরাসরি বিট , বাইট এবং মেমোরির এ্যাড্রেস ব্যবহার করা হয়, যা বড় বড় প্রোগ্রামের জন্য অত্যন্ত জটিল এবং ফষ্টকর ।


ভেরিয়েবলের প্রকারভেদ । সি ভাভাষায় মোটামুটি

ছয় ধরনের ভেরিয়েবল ব্যবহৃত হয়। যথা:


১|সংখ্যাসূচক বা নিউমেরিক ভেরিয়েবল ।(Numeric Variable) .

২| বিন্যাস বা এ্যারে ভেরিয়েবল ।(Array Variable)

৩| নির্দেশক বা পয়েন্টার ভেরিয়েবল (Pointer Variable) 

৪| আক্ষরমালা বা সিট্রং ভেরিয়েবল ( String Variable ).

৫| ব্যবহারকারী বর্ণিত বা কাস্টম ভেরিয়েবল (Custom Variable) .

৬| বিল্ট- ইন ভেরিয়েবল ( Built- in Variable) .


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

মান সংখ্যায় হয় তাকে সংখ্যাসূচক চলক বা নিউমেবিল বলা হয়। এরূপ ভেরিয়েবলের মান প্রোগ্ৰামে নির্দিষ্ট করে দেয়া যায় অথবা প্রোগ্ৰাম 

নির্বাহের সময় কীবোর্ডৈ বা অন্য কোনো উৎস থেকে নেয়া যায় ।


সি ভাষায় ব্যবহৃত নিউমোরিক ভেরিয়েবল গুলো 

পূর্ণসংখ্যা( যেমন100,200,300,1000,-4890,12345 ইত্যাদি ),

দশমিক চিহ্ন বিশিষ্ট বৃহৎ সংখ্যা ( 3.5x10-200 3.5E-200,3.5x10-200 3.5E-203 )

হতে পারে। প্রোগ্রামে এ ধরনের ভেরিয়েবল ব্যবহৃত অধিক ।


এ্যারে ভেরিয়েবল: একই ধরনের কতগুলো ভেরিয়েবলের সমষ্টিকে এ্যরে ভেরিয়েবল

বা নিব্যাস চলক বলা হয়। এ্যারে আবার একানিত্রিক, দ্বিমাত্রিক ও বহুমাত্রিক হতে পারে। 

যেমন : একমাত্রিক এ্যারের উদাহরণ হল: A[2,3] যা মোট ৬টি ভেরিয়েবলের সমষ্টি নিদর্শন করে। আমার part 02 এই বিষয়ে আরো আলোচনা করব। 


পয়েন্টার ভেরটিয়েবল পয়েন্টার এক প্রকার ভেরিয়েবল যা একই টাইপের অপর কোনো ভেরিয়েবলের মেমোরির এ্যাড্রেস ধারণ করে।


স্ট্রিং ভেরিয়েবল যখন এক বা একাধিক ক্যারেক্টার বা বণ দ্বিতীয় বন্ধনী মাধ্যে অবদ্ধ করা হয়। তখন তাকে স্ট্রিং বা অক্ষরমালা বলা হয়।


" Computer "Programming ;in c " ইত্যাদি ।সি- তে স্ট্রিং ভেরিয়েবল ঘোষণার জন্য আলাদা কোনো ডেটা টাইপ নেই, মূলত Char টাইপ ভেরিয়েবলকে এ্যারে কিংবা পয়েন্টা‌র ভেরিয়েবলকে হিসেবে ঘোষণা করে তাকে স্ট্রিং সংরক্ষণ করা হয়। যেমন: 


Char Ch1[30] ="Programming in c"


Char *Ch1=University fo Dhaka ;


বিল্ট-- ইন ভেরিয়েবল সি--তে বেশ কয়েকটি বিল্ট-- ইন ভেরিয়েবল আছে যেগুলো কতগুলো লাইব্রেরি ফাংশন কিংবা ডেটা আইটেমের মান সংরক্ষণ ব্যবহৃত হয়ে থাকে।


 ডেটা টাইপ ও মডিফায়ার ভেরিয়েবল ঘোষণা জন্য ডেটার মান অনুযায়ি উপযুক্ত ডেটা টাইপের 

 প্রয়োজন হয়‌। ডেটার ধরন এবং মেমোরির পরিসর সংরক্ষণের বিত্তিতে সি ভাষায় ব্যবহৃত হয় এরূপ চারটি মৌলিক ডেটা টাইপ আছে।যথা:

  1|Char

   2|int 

 3| float

  4| double



এজন্য ভেরিয়েবল ঘোষণা সময় ডেটা টাইপের সাথে মডিফায়ার (Modifier) ব্যবহার করে মৌলিক নিয়ে কাজ হয়। এজন্য ভেরিয়েবল ঘোষণা সময় ডেটা টাইপের সাথে মডিফাই (Modifier ) ব্যবহার করে মৌলিক ডেটা টাইপ ভেরিয়েবলের জন্য সংরক্ষিত মেমরি পরিসর,ডেটার প্রকৃতি এবং ধারণ ক্ষমতার পরিবর্তন (Modify) বা পরিবর্ধন করা যায় ।সি-তে চারটি মডিফাই আছে।যথা: 

1,Signed 

2 Unsigned

3,Short 

4, Long

 ভেরিয়েবল ঘোষণা নিয়মাবলী প্রোগ্রাম রচনার শুরুতে প্রয়োজনীয় সংখ্যক ভেরিয়েবল নামকরণ করতে পারে? না কারণ ভেরিয়েবল ঘোষণা এবং নামকরণের মধ্যে কিছু মৌলিক সীমাবদ্ধ ও নিয়ম 

 কানুন রয়েছে।

 যেমন অনেক সময় এক প্রোগ্ৰামারের রচিত প্রোগ্রাম অন্য প্রোগ্রামার কর্তৃক পরিবর্তন বা পরিবর্ধনের প্রয়োজন হতে পারে। সেক্ষেত্রে প্রোগ্রামে কোনো ভেরিয়েবল কোনো কাজে ব্যবহার হয়েছে তা বুঝতে অসুবিধা হতে পারে। 

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

 ভেরিয়েবল ঘোষণা করা যায় না।তবে একই 

 প্রোগ্রামে ব্যবহৃত দুই বা ততোধিক ফাংশনে

 নামে কোনো ভেরিয়েবলের নামকরণ করতে পারেন ? না, কারণ 


*ভেরিয়েবল নামকরণ কেবল আলফাবেটিক ক্যারেক্ট্রার ( ভিজিট এবং আন্তারস্কোর (–) ও ডলাল চিহ্ন ($) ব্যবহার করা যায়। এ আন্তারস্কোর 

ও ডলার চিহ্ন ব্যতীত অন্য কোন স্পেশাল ক্যারেক্টরের ( যেমন,!,@,#,$,%,*,+,–, ইত্যাদি ) ব্যবহার করা যায় না। যেমন : ( my_var,My$RO2) বৈধ ভেরিয়েবল, কিন্তুmy@var ,and My&Roll .




ভেরিয়েবল ঘোষণা স্থান 


প্রোগ্রামে ভেরিয়েবল ঘোষণা অপর একটি বিবেচ্য 

বিষয় হল স্থান নির্বাচন। সি প্রোগ্রামে সাধারণ ফাংশনের শুরুতে ভেরিয়েবল ঘোষণা করা হয় পরে প্রয়োজনীয় আনুযায়ী ব্যবহার করা হয়।

এতে অসুবিধা হল যে, প্রোগ্রামের কি ,কি, এবং কোন টাইপ কতগুলো ভেরিয়েবল আছে তা এক নজরে বলা যায়। 


       (অবৈধ উদাহরণ → কারণ→শুদ্ধরুপ )

 


[ int 5x,বণ দিয়ে শুরু হয় নাই– int 5x ;


 int "Roll"; কোটেশন হবে না– int Roll; 


 int " main", main ব্যবহার করা যাবে না int Main;


 int Roll–10 চিহ্নের ব্যবহার বৈধ নয়–int Roll–10;


 float.Marks– 10 মাঝে ফাঁকা থাকবে না।]




ব্যাকস্লাশ ক্যারেক্টারেক্টার 

আথাৎ বিশেষ কিছু ক্যারেক্টার আছে ( যেমন: \n,\ r\t ইত্যাদি) যেগুলার Printed ( ) ফাংশনের ডাবল কোটেশন (" ")মাধ্যে যেভাবে ব্যবহার ব্যবহার করা হয় হুবহু সেরূপ ফলাফল প্রদান করে

না। যেমন : 


/ CPO4–02 .C */


# include<studio.h >

# include<Conio. h>

 main ( )


{


Clrscr ( )


Printf (" Welcome to \ne Programming ")

getch ( );


}


উপরোক্ত প্রোগ্রামেটি লিখে নির্বাহ করলে আউটপুট উইন্ডোতে নিম্নরূপ ফলাফল প্রদশিত

হবে।

Welcome to


C programming


নিম্নে এরূপ আরও একটি প্রোগ্রাম (CPO4_ 03.C)

দেয়া হল।

/* CPO4_03.C */


# include<Studio.h>

# include<Conio.h>

main ( )



{



Clear ( );


Printf ("W\ e\1\c\o\m\e\t\c\p\r\o\g\r\ a\m\m\i\n\g");


getch ( );



}


ফলাফল: উপরোক্ত প্রোগ্রামেটি নির্বাহ করলে আউটপুট উইন্ডোতে নিম্নরূপ ফলাফল প্রদশিত হবে। 


Welcome to CP

Og

mmi

g



নিম্নে একই Printf( ) ফাংশন ব্যবহার করে প্রোগ্রামের ফলাফল একাধিক লাইনে প্রদশনের

জন্য নিউ–লাইন (\ n ) ব্যাকস্লাশ ক্যারেক্টার ব্যবহার করে একটি প্রোগ্রাম( CPO4_04.C)

দেয়া হল:

 \ *CPO4_04.C */

 

# include<Studio.h>

# include<Conio.h>

main ( ) 


{


Clrscr ( );

Printf(" Welcome\Ho\nc\tprogramming ");


getch ( );


}


Output:


Welcome to


C Programming .



উপরোক্ত প্রোগ্রামে ব্যবহার 

Printf(" Welcome\Ho\nc\tprogramming "); 

স্টেটমেন্টে Welcomeও nc এবংto ও programming . 


দূরে দূরে ( এক ট্যাব পরিমাণ ) প্রদশিত হয়েছে ।

অনুরূপ ভাবে একটি নিউ লাইন ( n ) ক্যারেক্টার

ব্যবহারের ফলে ফলাফল পরপর দুই লাইনে প্রদশিত হয়েছে। অর্থাৎ  



Printf(" Welcome\tto\nc\tprogramming "); স্টেটমেন্টে Printf(" Welcome\to\nc\")


Printf(" C tprogramming ")



Printf(" Welcome to")


Printf("In ");



Printf(" C programming ")



Printf(" Welcome to");


Printf(" In programming ");



স্টেটমেন্টে সমূহের অনুরূপ 

নিম্নে কয়েকটি ব্যাকস্লাশ ক্যারেক্টার ব্যবহার করে একটি প্রোগ্রাম (CPO4_04.C) দেয়া হল ।


/*CPO4_04.C */


/*Using Backslash Characters */


# include<studio.h>


main ( )


{



Printf(" Welcome to \ * C Programming ")


}


Output : 


Welcome to "C Programming ".




Printf(" Welcome\Ho\nc\tprogramming ") 

লেখা সঠিক 

Printf(" Welcome\Ho\nc\tprogramming ")

লেখা ভুল । তবে 


Printf(" Welcome\Ho\nc\tprogramming ")

লেখা সঠিক 


# কিছু গুরুত্বপূর্ণ কথাশিখী ।


1, Printf ( ) বা এরূপ কোন ফাংশ দ্ধারা এসব ক্যারেকক্টার হুবহু প্রদশনের একটি ফাংশন দ্ধারা একটি ব্যাকস্লাশ ( / ) প্রদশন করতে চাইলে একজন্য ক্যারেক্টারগুলো ব্যাকস্লাস ক্যারেক্টার 

নাম পরিচিত।



2, যেমন Printf ( ) ফাংশন দ্ধারা ব্যাকস্লাশ (\) 

প্রদর্শন করতে চাইল পরপর দুই ব্যাকস্লাস (\\) দিতে হয় , পরপর দুটো ব্যাকস্লাশ (\\\\) দিতে হয়।



3| o\ লাশ (Nu11) ক্যারেকক্টার প্রদশিত জন্য ।



\\ → ব্যাকস্লাশ( \ ) প্রদশিত জন্য ।


\ → বাল কোটেশন ( " ) ক্যারেক্টার প্রদশিত জন্য।


\a → সংকেত ( Alarm) দানের জন্য।


\b→ আউটপুট ( পেছনে বামে ) একঘরে সরানোর


\f→ আউটপুট নিচের লাইনে প্রদশনের জন্য ।


\n→ আউটপুট পরবর্তী (নতুন) লাইনে শুরুতে প্রদশনের।


\r→ আউটপুট পূবতী 


\t→ ট্যাব দূরুত


\xN→ হেক্সাডেসিমল কনস্ট্যান্ট 


\N→ অক্টাল কনস্ট্যান্ট 




নিম্নে Printf ( ) ফাংশন দ্ধারা int ডেটার মান প্রদশনের জন্য একটি প্রোগ্রাম (CPO4_04.C) দেয়া হল।


 \ *CPO4_04.C */

# include<Studio.h>

# include<Conio.h>

main ( ) 


{

Clear ( )



Printf(" You are %d years Old ;65 ");


getch ( )


}


Output : you are 65 years old.