Dimensões de matriz no Visual Basic

Uma dimensão é uma direção na qual você pode variar a especificação dos elementos de uma matriz. Uma matriz que contém o total de vendas para cada dia do mês tem uma dimensão (o dia do mês). Uma matriz que contém o total de vendas por departamento para cada dia do mês tem duas dimensões (o número do departamento e o dia do mês). O número de dimensões de uma matriz é chamado de classificação.

Observação

Você pode usar a propriedade Rank para determinar quantas dimensões uma matriz tem.

Trabalhando com Dimensões

Especifique um elemento de uma matriz fornecendo um índice ou um subscrito para cada uma das dimensões dela. Os elementos são contíguos ao longo de cada dimensão do índice 0 até o índice mais alto para essa dimensão.

As ilustrações a seguir mostram a estrutura conceitual de matrizes com diferentes classificações. Cada elemento nas ilustrações mostra os valores de índice que o acessam. Por exemplo, você pode acessar o primeiro elemento da segunda linha da matriz bidimensional especificando índices (1, 0).

Diagram that shows a one-dimensional array.

Diagram that shows a two-dimensional array.

Diagram that shows a three-dimensional array.

Uma Dimensão

Muitas matrizes têm apenas uma dimensão, como o número de pessoas de cada idade. O único requisito para especificar um elemento é a idade para a qual esse elemento contém a contagem. Portanto, essa matriz usa apenas um índice. O exemplo a seguir declara uma variável para conter uma matriz unidimensional de contagens etárias de 0 a 120 anos.

Dim ageCounts(120) As UInteger

Duas Dimensões

Algumas matrizes têm duas dimensões, como o número de escritórios em cada andar de cada prédio em um campus. A especificação de um elemento requer o número do edifício e o piso e cada elemento contém a contagem para essa combinação de construção e piso. Portanto, essa matriz usa dois índices. O exemplo a seguir declara uma variável para manter uma matriz bidimensional de contagens de escritórios, para edifícios de 0 a 40 e pisos de 0 a 5.

Dim officeCounts(40, 5) As Byte

Uma matriz bidimensional também é chamada de matriz retangular.

Três Dimensões

Algumas matrizes têm três dimensões, como valores no espaço tridimensional. Essa matriz usa três índices, que, nesse caso, representam as coordenadas x, y e z do espaço físico. O exemplo a seguir declara uma variável para manter uma matriz tridimensional de temperaturas do ar em vários pontos em um volume tridimensional.

Dim airTemperatures(99, 99, 24) As Single

Mais de Três Dimensões

Embora uma matriz possa ter até 32 dimensões, é raro ter mais de três.

Observação

Quando você adiciona dimensões a uma matriz, o armazenamento total necessário pela matriz aumenta consideravelmente, portanto, use matrizes multidimensionais com cuidado.

Usando Dimensões Diferentes

Suponha que você queira acompanhar os valores de vendas para cada dia do mês presente. Você pode declarar uma matriz unidimensional com 31 elementos, um para cada dia do mês, como mostra o exemplo a seguir.

Dim salesAmounts(30) As Double

Agora suponha que você queira acompanhar as mesmas informações não apenas para cada dia de um mês, mas também para todos os meses do ano. Você pode declarar uma matriz bidimensional com 12 linhas (para os meses) e 31 colunas (para os dias), como mostra o exemplo a seguir.

Dim salesAmounts(11, 30) As Double

Agora, suponha que você decida ter suas informações de retenção de matriz por mais de um ano. Se você quiser acompanhar os valores de vendas por cinco anos, poderá declarar uma matriz tridimensional com 5 camadas, 12 linhas e 31 colunas, como mostra o exemplo a seguir.

Dim salesAmounts(4, 11, 30) As Double

Observe que, como cada índice varia de 0 ao máximo possível, cada dimensão de salesAmounts é declarada como uma a menos do que o comprimento necessário para essa dimensão. Observe também que o tamanho da matriz aumenta com cada nova dimensão. Os três tamanhos nos exemplos anteriores são 31, 372 e 1.860 elementos, respectivamente.

Observação

Você pode criar uma matriz sem usar a instrução Dim ou a cláusula New. Por exemplo, você pode chamar o método CreateInstance ou outro componente pode passar ao código uma matriz criada dessa maneira. Essa matriz pode ter um limite inferior diferente de 0. Você sempre pode testar o limite inferior de uma dimensão usando o método GetLowerBound ou a função LBound.

Confira também