বেসিক সি প্রোগ্রামিং ৩ – ডাটা টাইপ এবং ভ্যারিয়েবল

সি প্রোগ্রামিং টিউটোরিয়ালের ২য় পোষ্টে আমরা কিওয়ার্ড এবং আইডেন্টিফায়ার সম্পর্কে শিখেছিলাম ( পোষ্টটা এখানে পাবেন )। আজকে আমরা সি প্রোগ্রামিং ল্যাঙ্গুয়েজের ডাটা টাইপ এবং ভ্যারিয়েবল নিয়ে কিভাবে কাজ করতে হয় তা শিখব।

ডাটা টাইপঃ প্রোগ্রামিং ল্যাঙ্গুয়েজে ডাটা টাইপ হল অনেকগুলো ডাটার এমন একটা সেট যেখানে ডাটাগুলোর কিছু নির্দিষ্ট মান, সাইজ এবং বৈশিষ্ট্য থাকে।
মনেকরুন, কোন একটা প্রোগ্রামে আমাদেরকে পূর্ণসংখ্যা ব্যবহার করতে বলা হল তখন আমাদেরকে অবশ্যই এমন একটা ডাটা টাইপ দিয়ে কাজ করতে হবে যেটা পূর্ণসংখ্যা ব্যবহার করার জন্য তৈরি করা হয়েছে, ঠিক একইভাবে দশমিক সংখ্যা ব্যবহার করতে বলা হলে দশমিক সংখ্যা ব্যবহার করার জন্য যে ডাটা টাইপ আছে আমাদেরকে সেটা ব্যবহার করতে হবে।
সি প্রোগ্রামিং এ ৫ রকম ডাটা টাইপ আছে। সেগুলো হলঃ Integer, Character, Floating Point, Double, এবং, Void. নিচের ছবিতে ডাটা টাইপগুলোর নাম এবং সেগুলো প্রোগ্রামে ব্যবহার করার জন্য কোন কিওয়ার্ডটা ব্যবহার করতে হবে এবং ডাটা টাইপ গুলোর সাইজ দেখানো হয়েছে।
Data type in C Programming Language
সি প্রোগ্রামিং এর ডাটা টাইপগুলো ভাল করে শিখে রাখতে পারলে পরবর্তিতে নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখার সময় ভাল কাজ দে।
উপরে আমরা যে ডাটা টাইপগুলো দেখলাম সেগুলো ছিল মৌলিক ডাটা টাইপ। এই ডাটা টাইপগুলো ছাড়া আরো কিছু ডাটা টাইপ আছে যেগুলো মৌলিক ডাটা টাইপগুলো ব্যবহার করার সুবিধার্তে তৈরি করা হয়েছে। সেগুলো হলঃ long, short, signed, unsigned।
মৌলিক ডাটা টাইপগুলো থাকতে নতুন ডাটা টাইপগুলো কেন তৈরি করা হল?
– কারন সবগুলো ডাটাটাইপের একটা নির্দিষ্ট সীমা (range) আছে। মনেকরুন, আমরা কিছু নাম্বার নিয়ে কাজ করছি এবং ডাটা টাইপ হিসেবে Integer ব্যবহার করছি। Integer ডাটাটাইপের সীমা হলঃ -৩২৭৬৮ থেকে ৩২৭৬৭, এখন আমাদের ডাটাতে যদি কোন নাম্বার এই সীমার বাইরে হয় (-৩২৭৬৮ থেকে ছোট অথবা ৩২৭৬৭ থেকে বড়) তখন ঐই নাম্বারটার জন্য Integer ডাটাটাইপ কাজ করবে না। তখন ঐই নাম্বারটার জন্য এমন কোন ডাটা টাইপ ব্যবহার করতে হবে যেটা পূর্ণসংখ্যা দিয়ে কাজ করার জন্য তৈরি এবং Integer এর সীমা থেকে বড় নাম্বার কে প্রসেস করতে পারে। আমাদের সুবিধার জন্য এগুলো আগে থেকেই তৈরি করা আছে।
সবগুলো ডাটা টাইপের সাইজ এবং সীমা কত?
– নিচের ছবিতে সবগুলো ডাটা টাইপের সাইজ এবং সীমা দেওয়া হলঃ
Data type size and range in c programming language

ভ্যারিয়েবলঃ ভ্যারিয়েবল হল একপ্রকার আইডেন্টিফায়ার যেটি কম্পিউটার প্রোগ্রামের কোন একটা নির্দিষ্ট অংশের কিছু নির্দিষ্ট রকম তথ্য দেখানোর জন্য ব্যবহার করা হয়। সহজভাবে বলা যায়, কম্পিউটার প্রোগ্রামে কোন ডাটা কিংবা তথ্যের মেমোরী লোকেশন দেখানোর জন্য ভ্যারিয়েবল ব্যবহার করা হয়।
মনেকরুন একটা কম্পিউটার প্রোগ্রামের মাধ্যমে আপনি আপনার নাম, বয়স, এবং শখ সংরক্ষন করে রাখলেন। মনেকরুন আপনার নামটা মেমোরীর ৭৮ তম পজিশনে, বয়স ৮৪৮ তম পজিশনে এবং শখ ১২৯৩ তম পজিশনে আছে। এখন আপনার পক্ষে কি মেমোরীর পজিশনগুলো মনে রাখা সম্ভব? মোটেও সম্ভব না। কারন মাত্র তিনটা ডাটা থাকবে অথবা মেমোরী পজিশনগুলো এত সহজ হবে তার কোন নিশ্চয়তা নাই। এখন এই সব পজিশনের ডাটা দেখতে চাইলে আপনাকে অবশ্যই এগুলোর পজিশন মনে রাখতে হবে, যেহেতু এই কাজটা আপনি কিংবা সাধারন মানুষের পক্ষে সম্ভব নয় সেহেতু আপনাকে ঐই তথ্যগুলো এমন কোন কিছুতে রাখতে হবে যাতে সেগুলো যখন ইচ্ছা তখন ব্যবহার করতে পারবেন। এ কাজটা করার জন্য ভ্যারিয়েবল ব্যবহার করা হয়। এখন AA ভ্যারিয়েবলে আপনার নাম, BB ভ্যারিয়েবলে বয়স এবং CC ভ্যারিয়েবলে শখ রাখলেন। এখন আপনার নাম অথবা বয়স অথবা শখ দেখতে চাইলে শুধু ভ্যারিয়েবলটা কল করলে হবে। কত সহজ তাই না?
ভ্যারিয়েবল কিভাবে ডিক্লায়ার করতে হয়?
– ভ্যারিয়েবলের একটা সিনট্যাক্স আছেঃ
datatype variable_name;
datatype এ আমরা সি প্রোগ্রামিং এর যেকোন ডাটা টাইপ ব্যবহার করতে পারব, এবং variable_name এ যা ইচ্ছা তাই লিখতে পারব। তবে ভ্যারিয়েবলের নাম ডিক্লায়ার করার কয়েকটা নিয়ম আছে। যেমনঃ
   – ভ্যারিয়েবলের নাম A-Z অথবা a-z, underscore ( _ ) দিয়ে শুরু করতে হবে।
   – ভ্যারিয়েবলের নাম 1-9 কিংবা অন্য কোন কিছু দিয়ে শুরু করা যাবে না (A-Z, a-z, _ ছাড়া)। ১ম পজিশন ছাড়া বাকী যেকোন পজিশনে 1-9 ব্যবহার করা যাবে।
   – ভ্যারিয়েবলে hypen ( – ) ব্যবহার করা যাবে না।
   – ভ্যারিয়েবলের নামের মাঝে কোন ফাঁকা (blank space) রাখা যাবে না।
   – ভ্যারিয়েবলের নাম হিসেবে কোন কিওয়ার্ড ব্যবহার করা যাবে না।

কয়েকটা সঠিক ভ্যারিয়েবলের নামঃ
int abc, float ab_cd, double a1, long int b1, unsigned long int A1, int B1, int _abc;
কয়েকটা ভুল ভ্যারিয়েবলের নামঃ
int 1ab, float as-sdf, float err rtt, double rf-r, double if, long int return;

আশা করি আপনার আজকের পোষ্টটা বুঝতে পেরেছেন। পরবর্তী পোষ্টে আমরা সি প্রোগ্রামিং ল্যাঙ্গুয়েজের ইনপুট-আউটপুট ফাংশন সম্পর্কে শিখব।

বেসিক সি প্রোগ্রামিং ২ – কিওয়ার্ড এবং আইডেন্টিফায়ার

সি প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউটোরিয়ালে আপনাদেরকে আবারো স্বাগতম। আজকে আমরা কিওয়ার্ড এবং আইডেন্টিফায়ার সম্পর্কে শিখব।
সি প্রোগ্রামিং ল্যাঙ্গুয়েজের কিওয়ার্ডগুলো জেনে রাখা উচিত। কারন এইগুলোর একটা নির্দিষ্ট অর্থ আছে এবং একটা নির্দিষ্ট কাজে ব্যবহার করার জন্য তৈরি করা হয়েছে। তাই আমরা এই কিওয়ার্ডগুলো অন্য কোন কিছুতে (যেমন – ভ্যারিয়েবলের নাম, ফাংশনের নাম, …) ব্যবহার করতে পারব না। এই পোষ্টের মূল উদ্দেশ্য হল আপনাদেরকে কিওয়ার্ড এবং আইডেন্টিফায়ারের সাথে পরিচিত করা।
সি প্রোগ্রামিং ল্যাঙ্গুয়েজে মূলত ৩২ টা কিওয়ার্ড আছে। নিচের ছবিতে সি প্রোগ্রামিং ল্যাঙ্গুয়েজের কিওয়ার্ডগুলো দেওয়া হলঃ

Keywords in C

কিওয়ার্ড


কিছু কিওয়ার্ডের কাজঃ
int
if
else
while
এখানে int একটা কিওয়ার্ড, এটি হল একটা ডাটাটাইপ যেটা ইন্টিজার ভ্যারিয়েবল ডিক্লায়ার করতে ব্যবহার করা হয়। if, else, while এগুলো ও কিওয়ার্ড, এগুলো মূলত কন্ডিশন সম্পর্কিত কোড লেখার জন্য ব্যবহার করা হয়। একইভাবে বাকী কিওয়ার্ডগুলো একটা নির্দিষ্ট কাজ করার জন্য ব্যবহার করা হয়।

আবার ভ্যারিয়েবলের নাম, ফাংশনের নাম এবং অ্যারের নাম হিসেবে আমরা যা ব্যবহার করি তা হল আইডেন্টিফায়ার। যেমনঃ
int abc;
double tumi;
int arr[100];
int bee[300];
void Foo();
int func(int a);

উপরে আমরা কিছু ভ্যারিয়েবল, অ্যারে এবং ফাংশন ডিক্লায়ার করেছি।
এখানে abc হল একটা ইন্টিজার টাইপের ভ্যারিয়েবল, এক্ষেত্রে abc একটা আইডেন্টিফায়ার। আবার tumi নামে একটা ডাবল ডাটা টাইপের ভ্যারিয়েবল ডিক্লায়ার করেছি, সেক্ষেত্রে tumi একটা আইডেন্টিফায়ার।
একইভাবে arr, bee নামে দুইটা অ্যারে ডিক্লায়ার করেছি, এবং Foo, func নামে দুইটা ফাংশন ডিক্লায়ার করেছি। এগুলো ও আইডেন্টিফায়ার।

আশাকরি আপনারা কিওয়ার্ড এবং আইডেন্টিফায়ার কি এবং কি কাজে ব্যবহার করা হয় তা বুঝাতে পেরেছেন। পরবর্তী পোষ্টে আমরা ডাটাটাইপ এবং ভ্যারিয়েবল কি, ভ্যারিয়েবল কিভাবে ডিক্লায়ার করা হয় তা শিখব।

বেসিক সি প্রোগ্রামিং – শুরুর কথা

বর্তমান সময়ের জনপ্রিয় এবং বহুল ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজের মধ্যে সি অন্যতম। আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজের যাত্রা শুরু হয় সি দিয়ে। বর্তমানে যেসব প্রোগ্রামিং ল্যাঙ্গুয়েজ জনপ্রিয়তার শীর্ষে আছে সেসব গুলোর কোন না কোন অংশ সি থেকে নেওয়া হয়েছে। যেমনঃ সি++, পিএইচপি, জাভা, সি#…
ড্যানিস রিচি (১৯৬৯ – ১৯৭২ সালের মধ্যে)AT&T ল্যাবরেটরীতে সি ডেভেলপ করেন। সি প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করার প্রধান উদ্দেশ্য ছিল ইউনিক্স অপারেটিং সিস্টেম। সি প্রোগ্রামিং এর সম্পর্কে আরো বিস্তারিত জানতে চাইলে এখানে দেখতে পারেন

এই পোষ্ট থেকে আমি নিয়মিত সি প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে আপনাদের ধারনা দেওয়ার চেষ্টা করব। আশাকরি সবগুলো পোষ্ট শেষ হলে আপনারা সি প্রোগ্রামিং সম্পর্কে ভাল একটা ধারনা পাবেন এবং সি প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে নিজ থেকে প্রোগ্রাম লিখতে পারবেন।
সি প্রোগ্রামিং শুরু করার আগে আপনাদেরকে কে একটা কম্পাইলার ডাউনলোড করতে হবে। সি প্রোগ্রামিং এর জন্য কয়েকটা ভাল কম্পাইলার আছে, নিচে আমি দুইটা কম্পাইলারের ডাউনলোড লিংক দিলাম, আপনাদের পছন্দ অনুযায়ী যে কোন একটা কম্পাইলার ডাউনলোড করতে পারেনঃ আমি দুইটা কম্পাইলারে কিভাবে সোর্সকোড কম্পাইল করতে হয় বলে দিব।
১। Code::Blocks
২। Orwell Dev C++

কম্পাইলার কি এবং কেন লাগে?
কম্পাইলার হল একটা সফটওয়্যার যেটা প্রোগ্রামিং ল্যাঙ্গুয়েজের সোর্সকোডকে মেশিন লেভেল কোডে কনভার্ট করে।
প্রোগ্রাম কম্পাইল না করলে কি হয়?
আপনি যখন একটা প্রোগ্রাম লিখবেন তখন মেশিনকে অবশ্যই বুঝতে হবে আপনার কোডটা কি কাজ করবে। মেশিন যদি আপনার কোড না বুঝে তাহলে কোড লিখে লাভটাই কি!!
মেশিন 0 এবং 1 ছাড়া আর কিছু বুঝে না। এখন আপনার কোডটা মেশিনকে বুঝাতে হলে মেশিন যেভাবে বুঝে ঠিক ঐইভাবে আপনার কোড কনভার্ট করতে হবে। আপনার হয়ে সে কাজটা করার জন্য কম্পাইলার ব্যবহার করতে হবে।

সিনট্যাক্সঃ প্রতিটি প্রোগ্রামিং ল্যাঙ্গুয়েজের একটা নির্দিষ্ট সিনট্যাক্স থাকে। সি প্রোগ্রামিং এর জন্য একেবারে সহজ সিনট্যাক্স হলঃ

<header files>
int main()
{
	//your task goes here
	return 0;
}

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

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

সি প্রোগ্রামিং এ তোমার আপনার প্রথম প্রোগ্রামঃ
আশাকরি আপনারা কম্পাইলার ডাউনলোড করেছেন। যারা Dev C++ ডাউনলোড করেছেন তারা File > New > Source File এ ক্লিক করুন অথবা শর্টকাট ctrl + N প্রেস করুন। তাহলে আপনার নিচের ছবির মত একটা ট্যাব পাবেন।

Dev C++

Dev C++


যারা Code::Blocks ডাউনলোড করেছেন তারা File > New > Empty File এ ক্লিক কর অথবা শর্টকাট ctrl + shift + N প্রেস করুন। তাহলে আপনার নিচের ছবির মত একটা ট্যাব পাবেন।
Codeblocks

Codeblocks


এরপর নিচের কোডটা লিখুন এবং ফাইলের ফরম্যাট .c দিয়ে সেইভ করুন।
*.c [উদাহরনঃ mycode.c program.c abcdef.c, … …]
কোডঃ

#include <stdio.h>
int main()
{
	printf("Hello World!! This is my first C Program\n");
return 0;
}

উপরের কোডটা লেখা হলে তোমার কোড এবার কম্পাইল করতে হবেঃ
যারা Dev C++ ব্যবহার করছেন তারা কম্পাইল করার জন্য Execute > Compile & Run এ ক্লিক করুন অথবা শর্টকাট F11 প্রেস করুন।
যারা Code::Blocks ব্যবহার করছেন তারা কম্পাইল করার জন্য Build > Build & Run এ ক্লিক করুন অথবা শর্টকাট F9 প্রেস করুন।
এরপর আপনার নিচের ছবির মত আউটপুট স্ক্রীন এবং আউটপুট দেখতে পাবেন।
Output Screen
উপরের কোডটা বুঝতে পারলে এবার আপনি নিজের নাম প্রিন্ট করার জন্য একটা কোড লেখার চেষ্টা করুন।
আশাকরি আপনারা এই পোষ্টটি বুঝতে পেরেছেন।