Multidimensional Arrays এর ব্যবহার

Arrays এবং Strings (অ্যারে এবং স্ট্রিংস) - ডি প্রোগ্রামিং (D Programming) - Computer Programming

396

Multidimensional Arrays এর ব্যবহার


Multidimensional Arrays হল এমন অ্যারে যা একাধিক ডাইমেনশন বা মাত্রা ধারণ করে। সাধারণত একটি অ্যারে এক মাত্রার (1D) হয়, তবে যখন অ্যারেকে একাধিক মাত্রায় প্রসারিত করা হয়, তখন সেটি multidimensional array হিসেবে পরিচিত। ডি প্রোগ্রামিং ভাষায় multidimensional arrays ব্যবহৃত হয় জটিল ডেটা স্ট্রাকচার তৈরির জন্য, যেমন ম্যাট্রিক্স (matrices), টেবিল (tables), এবং গ্রিড (grids) এর মতো ডেটা সংরক্ষণে।

ডি ভাষায় multidimensional arrays খুবই সহজ এবং সোজা ভাবে ব্যবহৃত হতে পারে। এখানে ২ বা তার অধিক মাত্রার অ্যারে ব্যবহার করে কিভাবে ডেটা সংরক্ষণ এবং অ্যাক্সেস করা যায়, তা আলোচনা করা হলো।


1. ডি ভাষায় 2D অ্যারে

2D অ্যারে হলো এমন একটি অ্যারে, যার মধ্যে দুটি মাত্রা রয়েছে—সারি (row) এবং কলাম (column)। এটি একটি ম্যাট্রিক্সের মতো দেখতে হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট সারি এবং কলামে সংরক্ষিত থাকে।

উদাহরণ:

import std.stdio;

void main() {
    int[3][3] matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];  // 2D অ্যারে

    // অ্যারের উপাদান প্রিন্ট করা
    foreach (i; 0 .. 3) {
        foreach (j; 0 .. 3) {
            write(matrix[i][j], " ");
        }
        writeln();
    }
}

এখানে:

  • int[3][3] matrix একটি ৩x৩ আকারের 2D অ্যারে।
  • প্রথম foreach লুপটি সারি অনুযায়ী অ্যারে লুপ করবে, আর দ্বিতীয় foreach কলাম অনুযায়ী উপাদানগুলো প্রিন্ট করবে।

আউটপুট:

1 2 3 
4 5 6 
7 8 9 

2. ডি ভাষায় 3D অ্যারে

3D অ্যারে একটি অ্যারে, যার তিনটি মাত্রা থাকে: সারি (row), কলাম (column), এবং স্তম্ভ (depth)। এটি সাধারণত ত্রি-মাত্রিক গ্রিড বা ভলিউম ডেটা রেপ্রেজেন্টেশনের জন্য ব্যবহৃত হয়।

উদাহরণ:

import std.stdio;

void main() {
    int[2][3][2] grid = [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]];  // 3D অ্যারে

    // 3D অ্যারে উপাদান প্রিন্ট করা
    foreach (i; 0 .. 2) {
        foreach (j; 0 .. 3) {
            foreach (k; 0 .. 2) {
                write(grid[i][j][k], " ");
            }
            writeln();
        }
    }
}

এখানে:

  • int[2][3][2] grid একটি ২x৩x২ আকারের 3D অ্যারে।
  • তিনটি foreach লুপ ব্যবহার করে ৩টি মাত্রা দিয়ে অ্যারে প্রিন্ট করা হয়েছে।

আউটপুট:

1 2 3 4 5 6 
7 8 9 10 11 12 

3. ডি ভাষায় অ্যারে ইনডেক্সিং এবং অ্যাক্সেস

ডি ভাষায়, আপনি সাধারণ অ্যারের মতো multidimensional arrays-এর উপাদানগুলোতে সরাসরি ইনডেক্সিং করে অ্যাক্সেস করতে পারেন। তবে মনে রাখতে হবে যে, ইনডেক্সিং শূন্য থেকে শুরু হয়।

উদাহরণ:

import std.stdio;

void main() {
    int[2][2] arr = [[1, 2], [3, 4]];

    writeln("Element at arr[0][1]: ", arr[0][1]);  // আউটপুট: 2
    writeln("Element at arr[1][0]: ", arr[1][0]);  // আউটপুট: 3
}

এখানে:

  • arr[0][1] হলো প্রথম সারির দ্বিতীয় কলামের মান, অর্থাৎ 2
  • arr[1][0] হলো দ্বিতীয় সারির প্রথম কলামের মান, অর্থাৎ 3

4. অ্যারে মেমরি আলোকন

ডি ভাষায় multidimensional arraysকে সরাসরি দুটি বা তার অধিক মাত্রায় তৈরি করা যায়, কিন্তু আপনি যদি dynamic array ব্যবহার করতে চান, তাহলে এর আকার runtime এ পরিবর্তনশীল হতে পারে।

উদাহরণ:

import std.stdio;

void main() {
    int[][] dynamicArray = [[1, 2], [3, 4], [5, 6]];  // Dynamic 2D array

    foreach (i; 0 .. dynamicArray.length) {
        foreach (j; 0 .. dynamicArray[i].length) {
            write(dynamicArray[i][j], " ");
        }
        writeln();
    }
}

এখানে:

  • dynamicArray হলো একটি dynamic 2D অ্যারে, যা runtime এ তৈরি করা হয়।

5. Multidimensional Arrays এর ব্যবহার

Multidimensional arrays সাধারণত ব্যবহার করা হয়:

  • ম্যাট্রিক্স এবং গাণিতিক অপারেশন: ২D বা ৩D অ্যারে ম্যাট্রিক্স গাণিতিক অপারেশন (যেমন গুণ, যোগফল) করার জন্য ব্যবহৃত হয়।
  • গ্রিড বা টেবিল: ডেটাবেসের টেবিল বা স্প্রেডশীটের মতো ডেটা স্ট্রাকচারগুলো সংরক্ষণ করতে।
  • ভলিউম ডেটা: ৩D গ্রিড বা ভলিউম ডেটা সঞ্চয় করতে।
  • ছবি বা ইমেজ প্রসেসিং: ২D বা ৩D ইমেজ রেপ্রেজেন্টেশনের জন্য।

সারসংক্ষেপ

ডি প্রোগ্রামিং ভাষায় multidimensional arrays অনেকগুলো আর্গুমেন্ট বা উপাদান ধারন করার জন্য ব্যবহৃত হয়। এই অ্যারে ডেটাকে বিভিন্ন মাত্রায় (যেমন 2D, 3D) সঞ্চয় করে এবং এগুলোকে অ্যাক্সেস করা সহজ হয় ইনডেক্সিংয়ের মাধ্যমে। এই ধরনের অ্যারে ম্যাট্রিক্স, গ্রিড, টেবিল এবং ভলিউম ডেটা রেপ্রেজেন্টেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...