Compartilhar via


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 que uma matriz tem é chamado de classificação.

Observação

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

Trabalhando com dimensões

Especifique um elemento de uma matriz fornecendo um índice ou subscrito para cada uma de suas dimensões. 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).

Diagrama que mostra uma matriz unidimensional.

Diagrama que mostra uma matriz bidimensional.

Diagrama que mostra uma matriz tridimensional.

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 manté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 andar, e cada elemento mantém a contagem para essa combinação de edifício e andar. 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 andares 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 cada mês 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 que seu array armazene informações por mais de um ano. Se você quiser acompanhar os valores de vendas por 5 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 a seu máximo, cada dimensão salesAmounts é declarada como uma menor que o comprimento necessário para essa dimensão. Observe também que o tamanho da matriz aumenta a 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 Dim instrução ou a New cláusula. Por exemplo, você pode chamar o CreateInstance método 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 GetLowerBound método ou a LBound função.

Consulte também