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)
.
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
.