Baixe o app para aproveitar ainda mais
Prévia do material em texto
13 – Vetores ou arrays e matrizes Você já deve ter ouvido falar sobre vetores e matrizes na escola. Em programação também se lida com esses elementos, que são conhecidos como array unidimensional (vetores), bidimensional (matrizes) e multidimensional. Aprenda um pouco sobre cada um deles: Em C#, os arrays são objetos cuja classe-base é System.Array. Vetores ou arrays são estruturas de dados capazes de armazenar múltiplos valores. Cada valor pode ser localizado por uma “chave”; no caso dos arrays, seria o índice correspondente à sua posição. 13.1 – Declarando arrays Para armazenar uma sequência de 10 números, até o momento foi conhecida apenas uma maneira: Mas, dessa forma, o código não ficará muito legível... Então, a melhor solução seria assim: Pronto, este é um array em C#! Existem outras formas de inicializar um array quando a declaração é feita: ou... ou... Como você pode notar, quando se declara um array é necessário utilizar os colchetes []. Por exemplo: Sendo que se pode, no momento da declaração, informar o número de elementos: Note que é necessário utilizar o new. Se ele não fosse utilizado, ocorreria um erro de compilação, pois nosso vetor ou array estaria declarado de maneira errada. 13.2 – Definindo o número de elementos do array e acessando seus elementos Quando se inicializa o array na declaração não é obrigatório informar o número de elementos. Também não é obrigatório quando ele é só declarado. Mas, para utilizá-lo depois da declaração, é preciso informar o número de elementos, que pode ser feito da seguinte maneira: Com a declaração acima, você tem um array chamado arrInt do tipo int e que pode armazenar até 10 elementos do tipo int. Para se acessar os elementos dentro de nosso array, você deve utilizar o índice correspondente à cada posição. O primeiro elemento dentro de um array é identificado pelo índice 0, o segundo pelo índice 1, e assim sucessivamente. Repare no código abaixo. Repare que, para fazermos a atribuição de um valor para uma posição do array de inteiros, nós precisamos especificar o índice entre colchetes e utilizar o sinal de atribuição como se fossemos fazer a atribuição à uma variável “normal”. Na hora de pegar o conteúdo presente, também devemos especificar o índice da posição da qual precisamos recuperar o valor. Também podemos utilizar como se fosse uma variável inteira “convencional”. Não se esqueça: as posições dos vetores em C# (e na maioria das linguagens) começa com a posição 0. No exemplo do arrInt, temos um vetor de 10 posições, onde a primeira posição é a posição 0 (não a posição 1) e a última é a posição 9 (não a posição 10). 13.3 – Arrays como objetos No C#, arrays são objetos e não apenas regiões endereçáveis de memória contígua como em C e C++. Isso nos permite utilizar as propriedades, e outros membros da classe Array. Um exemplo disso é a propriedade Length para obter o comprimento de uma matriz: A classe System.Array fornece vários outros métodos e propriedades, como: Rank: Propriedade que retorna o número de dimensões de um array multidimensional (que veremos a frente). Exemplo: Length: Propriedade que retorna o número total de elementos de todas as dimensões de um array multidimensional. Exemplo: GetLenght: O método retorna o número total de elementos de uma dimensão específica do array. Recebe como parâmetro um número inteiro que corresponde ao número da dimensão da qual se deseja saber o total de elementos. A numeração das dimensões começa por zero. Exemplo: Reverse: É um método estático cujo objetivo é inverter a ordem dos elementos do array. Essa inversão pode ser completa ou parcial, indicando o índice inicial e final para a inversão do array. Exemplo: Sort: Ordena o array passado como parâmetro. Exemplo: IndexOf: Retorna a posição de um elemento no array, se não for encontrado é retornado -1. Exemplo: Matrizes multidimensionais Matrizes podem ter mais de uma dimensão. Por exemplo, a declaração a seguir cria uma matriz bidimensional de quatro linhas e duas colunas: Você pode inicializar a matriz na declaração conforme mostrado no exemplo a seguir: 13.4 – Matrizes ou arrays multidimensionais Uma matriz é um “vetor de vetores”. Ou seja, é como se fosse um vetor que possui vários vetores dentro. Um bom exemplo de matriz é uma planilha Excel. Repare em uma planilha Excel: cada linha é como se fosse um vetor. A planilha em si também pode ser considerada um vetor: um vetor que contém vários outros vetores internamente (que é cada linha da planilha). Matrizes, assim como vetores, também tem seus elementos localizados pela especificação dos índices do elemento. Uma matriz convencional (matriz regular) é declarada da seguinte forma: Nesse caso, criamos uma matriz quadrada, que possui duas linhas e duas colunas. É como se ela possuísse dois vetores de duas posições “um embaixo do outro”. O processo para acessar as posições e atribuir valores a elas é bem similar ao processo para vetores. Observe o código: Não se esqueça: assim como nos vetores, os índices de linha e coluna de uma matriz também começam em zero! 13.5 – Matrizes irregulares Uma matriz irregular é uma matriz cujos elementos são vetores diferentes entre si. Os elementos de uma matriz irregular podem ser de dimensões e tamanhos diferentes. A seguir, há uma declaração de uma matriz dimensional única que tenha três elementos, cada um deles é uma matriz dimensional única (outro nome para vetores) de inteiros: Antes de usar mi, seus elementos devem ser inicializados. É possível inicializar os elementos desta forma: Cada um dos elementos é uma matriz dimensional única de inteiros. O primeiro elemento é uma matriz de 2 inteiros, o segundo é uma matriz de 4 inteiros, e o terceiro é uma matriz de 6 inteiros. Também é possível usar inicializadores para preencher os elementos da matriz com valores, caso em que não precisa informar o tamanho de matriz. Por exemplo: E também podemos inicializar a matriz na declaração da forma abaixo: Uma matriz irregular é uma matriz de vetores e, portanto, seus elementos são tipos de referência e são inicializados para null. O método Length retorna o número de matrizes contidas na matriz irregular. Por exemplo, supondo que tenhamos declarado a matriz anterior, esta linha: Retornará um valor de 3. Para saber o tamanho de uma linha: Retornará um valor de 2. Vídeo Aula 1 Vídeo Aula 2
Compartilhar