Tudo sobre Tecnologia da Informação

Vetores e Matrizes

Vetor (array uni-dimensional) é uma variável que armazena várias variáveis do mesmo tipo. No problema apresentado anteriormente, nós podemos utilizar um vetor de 50 posições para armazenar os nomes dos 50 alunos.

Matriz (array multi-dimensional) é um vetor de vetores. No nosso problema, imagine uma matriz para armazenar as 4 notas de cada um dos 50 alunos. Ou seja, um vetor de 50 posições, e em cada posição do vetor, há outro vetor com 4 posições.

Cada item do vetor ou matriz é acessado por um número chamado de índice.

Veja algumas diferenças entre vetores e matrizes em algumas linguagens:

Javascript


// Vetor em JS:

var vetJs = [0, 1, 2, 3];

for(l = 0; l < 4; l++) {
    document.write(vetJs[l] + " ");
}

document.write("<br/><br/>");

// Matriz em JS:

var matrJs = [[0, 1, 2, 3],[10, 11, 12, 13]];

for(l = 0; l < 2; l++) {
    for(c = 0; c < 4; c++) {
        if(c < 4 - 1) {
            document.write(matrJs[l][c] + " ");
        }
        else {
            document.write(matrJs[l][c] + "<br/>");
        }
    }
}

Em Javascript, as variáveis são arrays ao serem inicializadas assim. Ao colocar a variável do array diretamente sem colchetes no document.write, todos os elementos são exibidos divididos por vírgulas.

Para contar a quantidade de campos de um array em Javascript, usamos o length, por exemplo vetor.length.

Podemos usar em Javascript, o for it (foreach) dessa forma:


for(let l of vetJs) { // l fará a iteração com o vetor
    document.write(l + " ");
}

PHP


// Vetor em PHP:

$vetPhp = array(0, 1, 2, 3);

for($l = 0; $l < 4; $l++) {
    echo $vetPhp[$l] . " ";
}

echo "<br/><br/>";

// Matriz em PHP:

$matrPhp = array(array(0, 1, 2, 3), array(10, 11, 12, 13));

for($l = 0; $l < 2; $l++) {
    for($c = 0; $c < 4; $c++) {
        if($c < 4 - 1) {
            echo $matrPhp[$l][$c] . " ";
        }
        else {
            echo $matrPhp[$l][$c] . "<br/>";
        }
    }
}

Pode ver que no PHP, temos que declarar o array, e não podemos exibir diretamente o array apenas com a variável, e sim exibir ela usando a estrutura for (mas é possível exibir só com a variável usando algo como print_r($vetPhp). As matrizes são vetores dentro de vetores, nesse caso.

Para contar a quantidade de campos de um array em PHP, usamos o count(), por exemplo count($vetor).

Podemos usar em PHP, o for it (foreach) dessa forma:


foreach($vetPhp as $l) { // l fará a iteração com o vetor
    echo "$l ";
}

Java


// Vetor em Java:

int l, c;  
        
int vetJar[] = {0, 1, 2, 3};

for(l = 0; l < 4; l++) {
    System.out.print(vetJar[l] + " ");
}

System.out.print("\n\n");

// Matriz em Java:

int matrJar[][] = {{0, 1, 2, 3}, {10, 11, 12, 13}};

for(l = 0; l < 2; l++) {
    for(c = 0; c < 4; c++) {
        if(c < 4 - 1) {
            System.out.print(matrJar[l][c] + " ");
        }
        else {
            System.out.print(matrJar[l][c] + "\n");
        }
    }
}

Lembrando que no Java, arrays são considerados objetos, então se for declarar o array sem inicializar, deverá ser algo tipo int n[] = new int[4], nada vai dentro dos primeiros colchetes.

Para contar a quantidade de campos de um array em Java, usamos o length, por exemplo vetor.length.

Podemos usar em Java, o for it (foreach) dessa forma:


for(int l: vetJar) { // l fará a iteração com o vetor
    System.out.print(l + " ");
}

// Com Lambda:

vetJar.forEach(l -> System.out.print(l));

C/C++


// Vetor em C:

int l, c;  
        
int vetC[4] = {0, 1, 2, 3};

for(l = 0; l < 4; l++) {
    printf("%i ", vetC[l]);
}

printf("\n\n");

// Matriz em C:

int matrC[2][4] = {{0, 1, 2, 3}, {10, 11, 12, 13}};

for(l = 0; l < 2; l++) {
    for(c = 0; c < 4; c++) {
        if(c < 4 - 1) {
            printf("%i ", matrC[l][c]);
        }
        else {
            printf("%i\n", matrC[l][c]);
        }
    }
}

Pode ver que em C, as matrizes deverão ter na declaração a quantidade de linhas e colunas (por hábito, se faz isso nos vetores também). No C++ é praticamente a mesma coisa, podendo substituir o printf pelo cout.

Para contar a quantidade de campos de um array em C/C++, usamos o sizeof com uma operação com int, por exemplo sizeof(vetor) / sizeof(int) (mas ele pode deixar números vazios, caso a quantidade de casas seja indicada na declaração do array). O C++ permite usar a função size(), por exemplo vetor.size() em pilhas, listas, vector, etc., mas não em vetores comuns.

Podemos usar em C++, o for it dessa forma:


// Só funciona em C++

for(int l: vetC) { // l fará a iteração com o vetor
    cout << l << " ";
}

Python


# Vetor em Python:

vetPy = [0, 1, 2, 3]

for l in range(0, 4, 1):
    print(vetPy[l])

# Matriz em Python:

matrPy = [[0, 1, 2, 3], [10, 11, 12, 13]]

for l in range(0, 2, 1):
    for c in range(0, 4, 1):
        if c < 4 - 1:
            print(matrPy[l][c], end=" ")
        else:
            print(matrPy[l][c])

Pode ver que no Python, os arrays na verdade são listas. As matrizes são listas dentro de listas, nesse caso.

Para contar a quantidade de campos de um array em Python, usamos o len, por exemplo len(vetor).

Podemos usar em Python, o for it (foreach) dessa forma:


for l in vetPy: # l fará a iteração com o vetor
    print(l, end=" ")

C#


// Vetor em C#:

int l, c;

int[] vetCs = {0, 1, 2, 3};

for(l = 0; l < 4; l++) {
    Console.Write(vetCs[l] + " ");
}

Console.Write("\n\n");

// Matriz em C#:

int[,] matrCs = {{0, 1, 2, 3}, {10, 11, 12, 13}};

for(l = 0; l < 2; l++) {
    for(c = 0; c < 4; c++) {
        if (c < 4 - 1) {
            Console.Write(matrCs[l,c] + " ");
        }
        else {
            Console.Write(matrCs[l,c] + "\n");
        }
    }
}

Assim como no Java, em C# os arrays são considerados objetos, então se for declarar o array sem inicializar, deverá ser algo tipo int[] n = new int[4] (nesse caso os colchetes vai no tipo, e não na variável), nada vai dentro dos primeiros colchetes. E diferente das outras linguagens, as matrizes usam um colchete só, separados por vírgulas, tanto na declaração quanto na leitura.

Para contar a quantidade de campos de um array em C#, usamos o Length, por exemplo vetor.Length.

Podemos usar em C#, o for it (foreach) dessa forma:


foreach(int l in vetCs) { // l fará a iteração com o vetor
    Console.WriteLine("{0} ", l);
}