বহুমাত্রিক তালিকা (Multi-Dimensional Arrays)
যখন আমাদের ডাটা বা তথ্য একটি টেবিল বা গ্রিড আকারে সাজানোর প্রয়োজন হয় (যেমন- ক্লাসের সিট প্ল্যান বা গেমের বোর্ড), তখন আমরা বহুমাত্রিক তালিকা ব্যবহার করি। এটি মূলত একটি তালিকার ভেতরে অন্য একটি তালিকা।
নোট
2D তালিকার ক্ষেত্রে প্রথম ব্র্যাকেট [সারির নম্বর] এবং দ্বিতীয় ব্র্যাকেট [কলামের নম্বর] নির্দেশ করে।
১. 2D তালিকা ঘোষণা ও অ্যাক্সেস
নিচে ২ সারি এবং ২ কলামের একটি তালিকা দেখানো হলো:
// ২x২ আকারের তালিকা
পূর্ণসংখ্যা ম্যাট্রিক্স[২][২];
ম্যাট্রিক্স[০][০] = ১;
ম্যাট্রিক্স[০][১] = ২;
ম্যাট্রিক্স[১][০] = ৩;
ম্যাট্রিক্স[১][১] = ৪;
দেখাও "সারি ০, কলাম ১ এর মান: " >> ম্যাট্রিক্স[০][১];
২. নেস্টেড লুপ দিয়ে তালিকা পড়া
বহুমাত্রিক তালিকার সব উপাদান দেখার জন্য লুপের ভেতরে অন্য একটি লুপ ব্যবহার করতে হয়।
পূর্ণসংখ্যা গ্রিড[২][২] = {{১, ২}, {৩, ৪}};
পূর্ণসংখ্যা i;
পূর্ণসংখ্যা j;
জন্য (i=০; i<২; i++) {
জন্য (j=০; j<২; j++) {
দেখাও গ্রিড[i][j] >> " ";
}
নতুনলাইন;
}
৩. বাস্তব উদাহরণ: ক্লাসের রেজাল্ট শিট
৩ জন ছাত্রের ২ টি বিষয়ের নম্বর সংরক্ষণ ও দেখানোর লজিক:
পূর্ণসংখ্যা রেজাল্ট[৩][২] = {
{৮০, ৮৫}, // ছাত্র ১
{৭৫, ৯০}, // ছাত্র ২
{৯৫, ৯৮} // ছাত্র ৩
};
দেখাও "২য় ছাত্রের ২য় বিষয়ের নম্বর: " >> রেজাল্ট[১][১];
টিপ: ডাইনামিক গেম বা ডাটাবেস তৈরিতে 2D অ্যারে অত্যন্ত শক্তিশালী ভূমিকা পালন করে।
৪. ইন-ডেপথ উদাহরণ: টিক-ট্যাক-টো বোর্ড
একটি ৩x৩ গ্রিড তৈরি করে গেমের বোর্ড প্রদর্শন করা:
বাক্য বোর্ড[৩][৩] = {
{"X", "O", "X"},
{"O", "X", "O"},
{"X", "O", "X"}
};
পূর্ণসংখ্যা r;
পূর্ণসংখ্যা c;
জন্য (r=০; r<৩; r++) {
জন্য (c=০; c<৩; c++) {
দেখাও board[r][c] >> " | ";
}
নতুনলাইন;
দেখাও "---------";
নতুনলাইন;
}