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

Nota

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

Trabalhando com dimensões

Você especifica 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, desde o índice 0 até ao índice mais elevado 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 detém a contagem. Portanto, tal matriz usa apenas um índice. O exemplo a seguir declara uma variável para manter uma matriz unidimensional de contagens de idade para idades de 0 a 120.

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 de um campus. A especificação de um elemento requer o número do edifício e o piso, e cada elemento detém a contagem para essa combinação de edifício e andar. Portanto, tal matriz usa dois índices. O exemplo a seguir declara uma variável para conter 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. Tal matriz usa três índices, que neste 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.

Nota

Quando você adiciona dimensões a um array, o armazenamento total necessário para o array aumenta consideravelmente, portanto, use arrays multidimensionais com cuidado.

Usando dimensões diferentes

Suponha que você queira acompanhar os valores de vendas para cada dia do mês atual. 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 todos os dias 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 manter suas informações de armazenamento de matriz por mais de um ano. Se quiser controlar os valores de vendas por 5 anos, você pode 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 seu máximo, cada dimensão de é declarada salesAmounts como uma a menos do 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.

Nota

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 seu código uma matriz criada dessa maneira. Tal 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