সি/সি++ প্রোগ্রামিং টিউটোরিয়াল (পর্ব ২) স্ট্রাকচার

0
194

স্ট্রাকচার : প্রোগ্রাম চলার সময় সব ডাটাই মেমরিতে সেভ করা থাকে। অন্যান্য হাই লেভেল ল্যাঙ্গুয়েজের মতো সি-তেও ডাটা নিয়ে কাজ করার জন্য ভেরিয়েবল ব্যবহার করা হয়। আমরা জানি একই টাইপের অনেকগুলো ভেরিয়েবল নিয়ে যদি কাজ করার দরকার হয় তাহলে অ্যারে ব্যবহার করলে প্রোগ্রামের জটিলতা অনেক কমে যায়। কিন্তু এমন অনেক সময় আসতে পারে যখন একাধিক টাইপের একাধিক ভেরিয়েবলের দরকার হচ্ছে, সে ক্ষেত্রে কাস্টম ডাটা টাইপ খুবই সাহায্য করে। এবার আগের দেয়া উদাহরণকে এখানে আরেকটু বিসত্মারিতভাবে দেয়া হলো। ধরা যাক, উক্ত ১০০টি স্কুলের ছাত্রের যেসব তথ্য ইনপুট নেয়া হবে তা হলো :

student name
department name
id
gpa
total credits
total course

Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

এখন কাস্টম ডাটা টাইপ ব্যবহার না করলে প্রতিটি ভেরিয়েবলের জন্য আলাদা অ্যারে ডিক্লেয়ার করতে হবে। যেমন :

char name[30], dept_name[10];
long int id;
double gpa;
int credit, course;

লক্ষ করলে দেখা যাবে এখানে যেভাবে ভেরিয়েবলগুলো ডিক্লেয়ার করা হয়েছে, তাতে একটি স্কুলের ছাত্রদের সব তথ্য নেয়া সম্ভব। কিন্তু ১০০টি স্কুলের ছাত্রদের তথ্য নিতে বলায় এভাবে তা ইনপুট নেয়া সম্ভব হবে না।
আবার ধরা যাক, এই প্রোগ্রামে অনেকগুলো ফাংশন আছে, যারা এই ডাটাগুলো নিয়ে বিভিন্ন ধরনের কাজ করেন। ফলে প্রতিবার ফাংশনগুলোতে এই ডাটাগুলো নির্দিষ্ট ক্রমানুসারে আর্গুমেন্ট হিসেবে পাঠানো হয়। কিন্তু ফাংশনে বেশিসংখ্যক আর্গুমেন্ট পাঠাতে গেলে প্রোগ্রামের জটিলতা অনেকাংশে বেড়ে যাবে। আর ভুল হওয়ার সম্ভাবনা তো থাকেই। এখন এখানে স্ট্রাকচার ব্যবহার করা মানে হলো সব ভেরিয়েবলগুলোকে গ্রুপ করে দেয়া। এরপর ইউজার এই ভেরিয়েবলগুলোকে সেই গ্রুপের মেম্বার হিসেবে ব্যবহার করতে পারবেন। আবার ইউজার ইচ্ছে করলে সেই গ্রুপ পের অ্যারেও তৈরি করতে পারবেন। এবার উপরের উদাহরণটিই স্ট্রাকচারের মাধ্যমে দেয়া হলো :

struct student
{
char name[30];
char dept_name[10];
long int id;
double gpa;
int credit;
int course;
};

এখানে স্টুডেন্ট নামে নতুন একটি ডাটা টাইপ তৈরি করা হলো। যার মোট ৬টি মেম্বার ভেরিয়েবল আছে। এখন ইউজার যদি স্টুডেন্ট টাইপের অ্যারে ডিক্লেয়ার করেন তাহলেই ১০০টি স্কুলের জন্য প্রোগ্রামটি লেখা যাবে।
স্ট্রাকচার ডিক্লেয়ার : কোনো ভেরিয়েবল কিংবা অ্যারেকে যেভাবে ডিক্লেয়ার করা হয়, প্রোগ্রামে একটি স্ট্রাকচারকেও অবশ্যই সেভাবে ডিক্লেয়ার করতে হবে। এটি ডিক্লেয়ারের নিয়ম হলো :

struct tag
{
member1;
member2;
……..
……..
memberN;
};

লক্ষ রাখতে হবে ডিক্লেয়ারের শেষে একটি সেমিকোলন দিতে হয়।
উপরের ডিক্লেয়ারের নিয়ম থেকে দেখা যাচ্ছে এতে মূলত তিনটি অংশ আছে। যেমন : struct, tag, member ।
struct হলো একটি কিওয়ার্ড। এর মাধ্যমে প্রোগ্রামকে জানিয়ে দেয়া হয় যে একটি স্ট্রাকচার ডিক্লেয়ার করা হচ্ছে। tag হচ্ছে স্ট্রাকচারটির নাম। খেয়াল করতে হবে এটি কিন্তু কাস্টম ভেরিয়েবলের নাম নয়, বরং কাস্টম ডাটা টাইপের নাম। এখানে ভেরিয়েবলের নাম লেখার নিয়ম অনুযায়ী যেকোনো নাম লেখা যাবে, যা পরে একটি ডাটা টাইপ হিসেবে ব্যবহার হবে। অর্থাৎ tag-এর জায়গায় যদি student লেখা হয়, তাহলে ডিক্লেয়ারের পর বলা যাবে সেটিং tudent টাইপ ভেরিয়েবল, ঠিক যেভাবে বলা হয় int টাইপ ভেরিয়েবল।

টিউনারপেজের নতুন টিউন আপনাকে ইমেইল করব?
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

একটি উত্তর ত্যাগ

Please enter your comment!
Please enter your name here

eighteen − 4 =