Els arrays multidimensionals són una extensió dels arrays unidimensionals que permeten emmagatzemar dades en més d'una dimensió. En C++, els arrays multidimensionals es poden utilitzar per representar matrius, taules, o qualsevol estructura de dades que requereixi més d'una dimensió.

Conceptes Clau

  1. Definició d'Arrays Multidimensionals: Un array multidimensional és essencialment un array d'arrays. Per exemple, un array bidimensional es pot veure com una matriu de files i columnes.
  2. Declaració i Inicialització: La sintaxi per declarar i inicialitzar arrays multidimensionals.
  3. Accés als Elements: Com accedir i modificar els elements d'un array multidimensional.
  4. Iteració: Com utilitzar bucles per recórrer arrays multidimensionals.

Declaració i Inicialització

Arrays Bidimensionals

Un array bidimensional es declara especificant el nombre de files i columnes. Per exemple:

int matriu[3][4]; // Declara una matriu de 3 files i 4 columnes

També es poden inicialitzar en el moment de la declaració:

int matriu[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

Arrays Tridimensionals

Els arrays tridimensionals es declaren de manera similar, especificant el nombre de "capas", files i columnes:

int cub[2][3][4]; // Declara un array tridimensional de 2 capes, 3 files i 4 columnes

També es poden inicialitzar:

int cub[2][3][4] = {
    {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20},
        {21, 22, 23, 24}
    }
};

Accés als Elements

Per accedir a un element d'un array multidimensional, es fa servir la notació d'índexs múltiples. Per exemple, per accedir a l'element de la segona fila i tercera columna d'una matriu:

int valor = matriu[1][2]; // Recorda que els índexs comencen en 0

Per modificar un element:

matriu[1][2] = 42;

Iteració

Per recórrer un array multidimensional, es poden utilitzar bucles aniuats. Per exemple, per recórrer una matriu bidimensional:

for (int i = 0; i < 3; ++i) {
    for (int j = 0; j < 4; ++j) {
        cout << matriu[i][j] << " ";
    }
    cout << endl;
}

Exemple Pràctic

A continuació, es mostra un exemple complet que declara, inicialitza, accedeix i recorre un array bidimensional:

#include <iostream>
using namespace std;

int main() {
    // Declaració i inicialització
    int matriu[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    // Accés i modificació
    matriu[1][2] = 42;

    // Iteració i impressió
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 4; ++j) {
            cout << matriu[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

Exercicis Pràctics

  1. Exercici 1: Declara un array tridimensional de dimensions 2x2x2 i inicialitza'l amb valors de la teva elecció. Imprimeix tots els elements de l'array.

  2. Exercici 2: Escriu un programa que llegeixi una matriu de 3x3 d'entrada de l'usuari i calculi la suma de tots els elements.

Solucions

Solució Exercici 1:

#include <iostream>
using namespace std;

int main() {
    int cub[2][2][2] = {
        {
            {1, 2},
            {3, 4}
        },
        {
            {5, 6},
            {7, 8}
        }
    };

    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << cub[i][j][k] << " ";
            }
            cout << endl;
        }
        cout << endl;
    }

    return 0;
}

Solució Exercici 2:

#include <iostream>
using namespace std;

int main() {
    int matriu[3][3];
    int suma = 0;

    cout << "Introdueix els elements de la matriu 3x3:" << endl;
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> matriu[i][j];
            suma += matriu[i][j];
        }
    }

    cout << "La suma de tots els elements és: " << suma << endl;

    return 0;
}

Conclusió

Els arrays multidimensionals són una eina poderosa per emmagatzemar i gestionar dades en múltiples dimensions. Comprendre com declarar, inicialitzar, accedir i recórrer aquests arrays és fonamental per treballar amb estructures de dades més complexes en C++. Amb la pràctica, aquests conceptes esdevindran una part natural del teu repertori de programació.

© Copyright 2024. Tots els drets reservats