সি প্রোগ্রামিং এর সহজ পাঠ (Chapter 1) | Variable, Variable Data Type, Constants, Keyword, Comments, New Line

সি প্রোগ্রামিং এর সহজ পাঠ এই সিরিজে আমরা ধাপে ধাপে সি প্রোগ্রামিং এর সকল বিষয়গুলো শিখব। বেসিক থেকে শুরু করে আমরা সি প্রোগ্রামিং এর Porblem Solving এর দিকে আগাবো। সি প্রোগ্রামিং এর আজকের এই প্রথম পাঠে আমরা নিচের বিষয়গুলো সম্পর্কে জানব। আজকের তালিকায় আমরা জানব, Variable, Variable Data Type, Constants, Keyword, Comments এবং New Line সম্পর্কে।

Variable

Variable is the name of a memory location that stores some data.

ভেরিয়েবল হচ্ছে মেমোরি লোকেশনের নাম, যেখানে ডাটা স্টোর হয়ে থাকে।

আমরা যখনই কোন তথ্য স্টোর করব, তার জন্য নিশ্চয়ই আমাদের কোন জায়গা দরকার! উদাহরণ স্বরূপ, আপনি একটি জুতার দোকানে গিয়েছেন। সেই দোকানে প্রতিটি জুতার জন্য নিশ্চয় আলাদা আলাদা করে একেকটি বক্স রয়েছে?

প্রত্যেক জুতার জন্য রয়েছে আলাদা আলাদা বক্স। এখানে জুতাজোড়াগুলোকে আমরা তুলনা করতে পারি একেকটি ডাটার সাথে। আর জুতোজোড়াগুলোর জন্য যে বক্সগুলো ছিল, এগুলোকে আমরা বলতে পারি একেকটি ভেরিয়েবল (Variable)।

রান্নাঘরে আমরা বিভিন্নরকম মশলার বাক্স দেখি। একেক বাক্সে একেকরকম মশলা থাকে। কোন বাক্সে হলুদের গুড়া, কোন বাক্সে মরিচের গুড়া। এই যে একেকটি উপাদান! এগুলোকে আমরা বলতে পারি ডাটা বা তথ্য। আর এই সব তথ্য জমা থাকছে, যে বাক্সে……সেগুলো হচ্ছে একেকটি Variable।

#include
int main() {

int number = 20;
char star = '*';
int age = 22;
float pi = 3.14;

return 0;
}

Some Rules of Variables

  1. Variables are case sensitive
  2. 1st character is an alphabet or ‘_’
  3. No comma/blank space
  4. No other symbol other than ‘_’

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

int a = 30;
int A = 40;

ভেরিয়েবল অবশ্যই অক্ষরমালা কিংবা আন্ডারস্কোর হবে। ভেরিয়েবলে কোনরকম নাম্বার থাকবেনা। অর্থাৎ ভেরিয়েবলের নামে শুরুতে হয় কোন ইংরেজি বর্ণমালা হবে নতুবা আন্ডারস্কোর হবে। এই বাইরে ভেরিয়েবলে অন্য কোনরকম ক্যারেক্টার যুক্ত হতে পারবে না।

//Correct Variable Name
int age = 22;
int _age = 22;
//Wrong Variable Name
int 1age = 22;
int -age = 22;

ভেরিয়েবলে কোন ফাকা স্থান কিংবা কিবোর্ডের স্পেস থাকবেনা। ভেরিয়েবলের নামের মধ্যে ফাকা স্থান থাকলে সেটি ভেরিয়েবল হিসেবে গণ্য হবেনা।

//Right Variable With UnderScore
final_ammount = 2000;
//Wrong Variable With Other Stuffs
final ammount = 2000;
final - ammount = 2000;

ভেরিয়েবল সবসময় এমন নাম হওয়া উচিত যাকে সহজে বুঝতে পাওয়া যায়। আপনি যে টাইপের ডাটা নিয়ে কাজ করবেন, চেষ্টা করবেন আপনার ভেরিয়েবলের নামও যেন সেই ধরনের হয়। এতে করে প্রোগ্রামার হিসেবে আপনার কিংবা অন্য প্রোগ্রামারদের সেই প্রোগ্রামটি বুঝতে কিংবা রিভিশন দিতে সুবিধা হবে।

Data Types in Variable

Variable এর মধ্য রয়েছে অনেক ধরনের ডেটা টাইপ। ভেরিয়েবলের ডেটা টাইপ হচ্ছে এমন একটি বিষয়, যার মানে দাড়ায় আপনি ভেরিয়েবলের মধ্যে ঠিক কোন ধরনের ডেটা স্টোর করতে চাচ্ছেন। C Programming এর মধ্যে Variable এর অনেক ধরনের ডেটা টাইপ রয়েছে, সকল ধরনের ডেটা টাইপ বা ডাটা টাইপ আপনার মনে রাখার দরকার নেই শুরুতে! প্রোগ্রামিং করতে করতে সেগুলো পরবর্তীতে এমনিই মনে রাখতে পারবেন।

ভেরিয়েবলের একেক ডেটা টাইপের আবার একটি ইউনিক বৈশিষ্ট্য রয়েছে। আর এই বৈশিষ্ট্যটা তাদের স্টোরেজ দখল করার বিষয়ে। একেক ধরনের ডেটা টাইপের মধ্যে একটি মাত্রা নির্ধারণ করে দেয়া থাকে যে, তারা ঠিক সেই পরিমাণ স্টোরেজই দখল করবে।

আপনি যখন পেনড্রাইভ কিংবা মেমোরি কার্ড কেনেন, তখন কিন্তু দেখেন সেটি হয় ১৬ জিবি, ৩২ জিবি না হয় ৬৪ জিবি। একটি স্টোরেজ লিমিট স্পেসিফাইড করা থাকে! ঠিক তেমনি ভেরিয়েবলের একেক রকমের ডেটা টাইপে একটি নির্দিষ্ট পরিমাণ স্টোরেজ লিমিট স্পেসিফাইড করা থাকে।

যেমন, ভেরিয়েবলের ক্যারেক্টার ডাটা টাইপ (Char) ১ বাইট স্টোরেজ দখল করে। আবার, int টাইপের ডাটা টাইপ ২ বাইটের মেমোরি দখল করে। float ডাটা টাইপ ৪ বাইট মেমোরি স্টোরেজ দখল করে।

ভেরিয়েবলে অনেক টাইপের ডেটা টাইপ রয়েছে, তবে শুরুতে C Programming শেখার আগে আমাদের সকল ভেরিয়েবল ডেটা টাইপ শেখার প্রয়োজন নেই। আমরা এখন গুরুত্বপূর্ণ কিছু Variable Data Types গুলোর সাথে পরিচিত হবো।

প্রথমে পরিচিত হই, int ডাটা টাইপের সাথে

Data Type int stores all kinds of integer values.

এই টাইপের ডাটা টাইপে সকল নেগেটিভ এবং পজিটিভ সংখ্যা স্থান পায়। +1, -1, -2, +4 এই সকল ধরনের সংখ্যা int ডাটা টাইপে স্থান পায়।

ধরুন আমরা একজনের বয়সের ডাটা স্টোর করব। সেক্ষেত্রে আমরা প্রোগ্রাম লিখব নিচের মতন,

int age = 22;

এখানে আমরা তিনটি জিনিস লক্ষ্য করতে পাচ্ছি। প্রথম বিষয় হচ্ছে এখানে যে বয়সে ডাটা আমরা স্টোর করেছি, সেটি হচ্ছে ২২। আমরা বয়সের ডাটা স্টোর করার জন্য ভেরিয়েবলের নাম দিয়েছি age। আর এখানে ভেরিয়েবলের ডাটা টাইপ আমরা দিয়েছি int (for integar value)।

এখন যদি আমরা পাই (Pi) এর মান স্টোর করতে চাই, সেক্ষেত্রে কি করব? পাই এর মান স্টোর করবার জন্য তো আমরা int টাইপের ডেটা টাইপ নিতে পারব না! কেননা, পাই এর মানের ভেতর তো ডেসিমাল value রয়েছে! আর এই ক্ষেত্রে আমাদেরকে float ডাটা টাইপ ব্যবহার করে পাই এর মান স্টোর করতে হবে।

Data Type float stores all kinds of decimal values.

float pi = 3.14;

প্রথম বিষয় হচ্ছে এখানে যে পাইয়ের ডাটা আমরা স্টোর করেছি, সেটি হচ্ছে 3.14। আমরা পাই এর মান স্টোর করার জন্য ভেরিয়েবলের নাম দিয়েছি pi । আর এখানে ভেরিয়েবলের ডাটা টাইপ আমরা দিয়েছি float (for decimal value)।

এখন যদি আপনি প্রোগ্রামে কোন রকম স্পেশাল ক্যারেক্টার যেমন, #,@,* ইত্যাদি স্টোর করাতে চান, তবে কোন ডাটা টাইপ ব্যবহার করবেন? তখন যে ডাটা টাইপটি ব্যবহার করতে হবে, তার নাম হচ্ছে char ডাটা টাইপ। char ডাটা টাইপ ব্যবহার করে যদি আমরা হ্যাশট্যাগের মতন স্পেশাল ক্যারেকটার স্টোর করতে চাই, তবে আমদেরকে নিচের মতন করে লিখতে হবে,

Data Type char stores all kinds of character/special character values.

char hashtag = '#';

এখানে অবশ্যই একটা বিষয় মাথায় রাখতে হবে যে, স্পেশাল ক্যারেক্টারের আগে-পরে কোটেশন চিহ্ন দিতে হবে।

int age = 22;
float pi = 3.14;
char hashtag = '#';

এভাবে আমরা ইন্টিজার, ফ্লোট এবং ক্যারেক্টার তিন ধরনের ভেরিয়েবল ডাটা টাইপে কিভাবে ইনপুট নিব তা সম্পর্কে ধারণা পেয়ে গেলাম! আমাদের C Progamming শুরু করতে শুরুতে এই কয় ধরনের ডেটা টাইপই লাগে, আস্তে আস্তে আমরা ডাটা টাইপ সম্পর্কে ধারণা পেতে থাকব। তবে শুরুতে এগুলোর কনসেপ্ট ক্লিয়ার হলেই চলবে!

Constants

Constant means its value is fixed

Variable এর ক্ষেত্রে আমরা জানলাম যে, ভেরিবলের মান পরিবর্তন হতে পারে। তবে C Progamming এর ক্ষেত্রে Constant এমন একটি বিষয় যেখানে মান পরিবর্তন হবেনা, এখানে fixed কোন মান সেইভ হয়ে থাকবে।

কোন সফটওয়্যার, ওয়েবসাইট কিংবা সফটওয়্যারের এডমিন প্যানেল তৈরি করার সময়, টেস্টিং এর প্রয়োজনে আমরা একটি ইমেইল এবং একটি পাসওয়ার্ড সেইভ করে রাখতে পারি। এটা এমন হবে যে, প্রতিসময়ই আমরা এই ইমেইল এবং পাসওয়ার্ড ব্যবহার করেই সেই সফটওয়্যার, ওয়েবসাইটের এডমিন প্যানেলে প্রবেশ করব। এই জন্য আমরা একটি email variable এবং password variable ঠিক করে তাকে সেইভ করে রাখতে পারি।

C programming এ এরকম সব মান যা কখনও পরিবর্তন হবেনা বা কন্সট্যান্ট থাকবে, তাদেরকে বলা হচ্ছে Constant। Constant এর মধ্যে সর্বদা যে মান থাকবে সেই মান কখনও পরিবর্তন হবেনা, যে মান থাকবে সেটিই প্রোগ্রামে সবসময়ের জন্য ফিক্সড।

C Programming এ Constant ৩ ধরনের হয়ে থাকে। এগুলো হচ্ছে;

  • Integer Constant : 1,2,3,-4,-6,-33,23
  • Real Constant : 1.0, 2.0, 3.14, -2.4
  • Char Constant : ‘a’, ‘A’, ‘*’, ‘@’

Integer Constant এর ক্ষেত্রে আমরা তো বুঝলাম এখানে সকল নেগেটিভ এবং পজিটিভ ধরনের সংখ্যা Constant ডাটা হিসেবে সেইভ হয়ে থাকবে।

Real Constant এর ক্ষেত্রে আমরা দেখতে পাচ্ছি যে, এখানে ডেসিমাল টাইপের ডাটা Constant হিসেবে সেভ হয়ে আছে। 2 এর সাথে কিংবা 1 এর সাথে .0 আছে বলে ভয় পাওয়ার কিছু নেই! এখানে 1 কিংবা 2 এর মতন মানের সাথে .0 বসানো আছে মানে বুঝাচ্ছে যে, এটি আসলেই 1 কিংবা 2। আর যদি .0 না থাকত তবে এটি integar constant হত।

অন্যদিকে, আমরা আগে জেনে এসেছি char ভেরিয়েবল ডাটা টাইপ সম্বন্ধে। char constant ঠিক সেইরকমই। এখানে constant ডাটা গুলো স্টোর করার জন্য অবশ্যই first কোটেশন চিহ্ন ব্যবহার করতে হবে।

Keywords

Reserved words that have reserved meaning to the compiler.

ডিকশনারির মধ্যে আমরা কি দেখি? হাজার হাজার ওয়ার্ড, আর প্রতিটা ওয়ার্ডের কিছু ফিক্সড মানে থাকে তাইনা? সি প্রোগ্রামিং ভাষার মধ্যেও কিছু ফিক্সড ওয়ার্ড বা শব্দ থাকে, যাদের মানে একদম ফিক্সড। আর সি প্রোগ্রামিং এর মধ্যে এই সকল ফিক্সড মানের ওয়ার্ডগুলোকে বলা হয় Keyword।

সি প্রোগ্রামিং ভাষায় ৩২ রকমের keyword রয়েছে, আর এসকল keyword আপনি কখনও variable name হিসেবে ব্যবহার করতে পারবেন। অর্থাৎ ৩২ টি যে reserved শব্দ রয়েছে এগুলোকে আপনি মন চাইলেও কোন ভেরিয়েবলের নাম হিসেবে লিখতে পারবেন না।

Int, float, char,double সহ আরো ২৮ টি মিলে মোট ৩২টি keyword রয়েছে। আমরা সামনে প্রোগ্রামিং করতে করতে আরো বিভিন্নরকম keyword এর সাথে পরিচিত হব।

auto double int struct
break else long switch
case enum register typedef
char extern return union
continue for signed void
do if static while
default goto sizeof volatile
const float short unsigned

Structure of C Language

প্রতিটা প্রোগ্রামের একটা বেসিক স্ট্রাকচার থাকে। আমরা যদি সেই স্ট্রাকচারটিকে feel করতে না পারি তাহলে আমরা সেই প্রোগ্রামকে ভালোবাসতেই পারবনা! Fellings ছাড়া কি ভালোবাসা হয়? সি প্রোগ্রামেরও একটি বেসিক স্ট্রাকচার রয়েছে, আমাদেরকে সি শুরু করতে হলে সেই স্ট্রাকচার সম্পর্কে জানতে হবে।

#include
int main() {
printf("Hello World");
return 0;
}

এটি হচ্ছে Hello World এর কোড যা সবার শুরুতে আমরা শিখি। এখানে আমরা শুরুতেই দেখতে পাচ্ছি,

#include

প্রথমে #include তারপর angular bracket তার মাঝে দেখতে পাচ্ছি stdio.h। এখানে stdio.h হচ্ছে Preprocessive Directive। এই Preprocessive Directive এর মধ্যে সি প্রোগ্রামের সকল ইনপুট আউটপুটের স্ট্যান্ডার্ড ফাইলগুলো সেইভ থাকে, যা কম্পাইলার জানে। উপরে উল্লেখিত লাইন যদি আপনি আপনার সি কোডের উপরে না লিখেন; তবে নিঃসন্দেহে আপনার কোডটি চলবে না।

int main()

এই লাইনটা থেকে প্রোগ্রামের এক্সিকিউশন হওয়া শুরু হয়। এখানে main() ফাংশন দ্বারা বুঝায় যে, {opening bracket এবং closing bracket} এর মধ্যে যতকিছু থাকবে…সেগুলো লাইন বাই লাইন এক্সিকিউট হবে।

বাংলা আমরা কোন লাইন শেষ করার পর দাড়ি দেই, ইংরেজিতে দেই ফুলস্টপ! তেমনি সি প্রোগ্রামেও প্রতি লাইন শেষে, সেই লাইনটি যে শেষ, সেটা বুঝানোর জন্য লাইনের শেষে একটি করে সেমিকোলন ( ; ) দিতে হবে।

return 0;

প্রোগ্রামের শেষে আমরা উপরের মত মতন return 0; লাইন দেখতে পাই। এর মানে হচ্ছে আমদের প্রোগ্রাম একদম ০ ইররের সাথে এক্সিকিউট হয়েছে, কোনরকম ইরর আসেনি। এই জন্য আমরা প্রোগ্রামের শেষে return 0; লাইন যুক্ত করে দেই।

Comments

Comment সি প্রোগ্রামের কোন আবশ্যিক অংশ নয়। Comment আপনার প্রোগ্রামের মধ্যে ছোট ছোট নোট করার জন্য, যেন আপনার প্রোগ্রামটি বুঝতে সুবিধা হয়। আপনি কোন লাইনটি কি কারনে লিখেছেন, সেটি আপনি পরেও ভুলে যেতে পারেন; অথবা অন্য কেউ নাও বুঝতে পারে। আর সেই কারনে সি প্রোগ্রাম লেখার সময় Comment ব্যবহার করা হয়। Comment এর মধ্যে কি লেখা থাকে তা কম্পাইলার বুঝতে পারেনা।

#include
int main() {
// This code shows different types of Data Types

/*
Multiple Line Code
Here Multiple Line Code
*/

int age = 22;
float pi = 3.14;
char hashtag = '#';
return 0;
}

সিঙ্গেল লাইনের কমেন্ট লেখার জন্য // ব্যবহার করা হয়। আর অনেক লাইন কমেন্ট লেখার জন্য /* */ চিহ্ন ব্যবহার করা হয়। এখানে Multiple Line Comment এর opening চিহ্ন হচ্ছে /* আর closing চিহ্ন হচ্ছে
*/

New Line Output

#include

int main() {

printf("Hello World");
printf("Hello World");

return 0;
}

উপরের কোডে আমরা দেখতে পাচ্ছি যে পর পর দুটি লাইনে printf ফাংশন দিয়ে Hello World প্রিন্ট করানো হয়েছে। উপরের এই কোডের output আসবে নিচের মতন,

Hello WorldHello World

এখন আপনার মনে প্রশ্ন আসতে পারে যে, কোড লিখেছি দুই লাইনে, প্রিন্ট কেন এক লাইনে হলো? এটার কারন হচ্ছে ‘ব্যাকস্ল্যাশ এন’ দেয়া নেই।প্রতিটা নতুন লাইনে প্রোগ্রামের আউটপুটের জন্য printf এর কোটেশন চিহ্নের ভেতর \n লিখতে হয়। আমরা যখন প্রতিটি প্রোগ্রাম লেখব, printf এর প্রতিটা লাইনের ভেতর এই \n দিব।

#include

int main() {

printf("Hello World\n");
printf("Hello World\n");

return 0;
}

আমরা যখন উপরের একই কোড \n সহকারে লেখব, তখন প্রোগ্রামের আউটপুট হবে নিচের মতন,

Hello World
Hello World

You're reading eProjonmo, the versatile technology news portal of bd.

Related Posts

Leave a Reply

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