Baixe o app para aproveitar ainda mais
Prévia do material em texto
Matrizes Capacitar para trabalhar com matrizes, dado o acúmulo de conhecimento suficiente para declarar matrizes de diferentes dimensões e tipos, como inicializar matrizes, como referenciar um elemento particular da matriz e como passar uma matriz para uma função. Na aula passada foi apresentado o uso de vetores. Uma matriz pode ser definida como uma cadeia de vetores de mesmo tipo, ou seja, para ser uma matriz, a estrutura dela deve possuir ao menos 2 linhas e duas colunas de dados. Como veremos nesta aula, o estudo de matrizes é análogo ao de vetores. Definindo uma matriz Com dois pares de colchetes, obtemos uma matriz de duas dimensões e, com cada par de colchetes adicionais, obtemos matrizes com uma dimensão a mais. Um bom exemplo para o uso de uma matriz é a geração de jogos para a loteria. Veja o código a seguir: Inicialização de matrizes de duas dimensões Matrizes de duas dimensões são inicializadas da mesma forma que os vetores, isto é, os elementos são colocados entre as chaves depois do sinal de igual e separados por vírgulas. Como cada elemento de uma matriz de duas dimensões é por sua vez uma matriz, então, cada elemento deve estar entre chaves e os elementos internos devem ser separados por vírgulas. Veja o exemplo a seguir. Matrizes como argumentos de funções Até o momento vimos que quando uma função é chamada, devemos especificar quais variáveis serão transferidas para a função. As matrizes também podem ser passadas como argumento para uma função. Veja o programa a seguir: O método de passagem de endereço da matriz para a função consiste em informar no protótipo o segundo elemento da matriz, ou seja, o elemento de colunas. Se esse elemento não for informado, será impossível saber onde estão os valores. Por que é feito dessa maneira? As matrizes são consideradas um tipo de dado bastante grande, pois são formadas por diversas variáveis. Por causa disso, em linguagem C, determina-se ser mais eficiente existir uma única cópia da matriz na memória, sendo, portanto, irrelevante o número de funções que a acessam. Assim, não são passados os valores contidos na matriz, somente o seu endereço de memória. Vetores são passados da mesma forma? Não, mas de uma forma muito similar. Veja o exemplo: Como a função usa o endereço para acessar os elementos da matriz original, significa que as alterações que a função efetuar nos elementos da matriz afetarão a matriz original. Referências DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos; VAZIRANI, Umesh. Algoritmos. São Paulo: McGraw Hill, 2009. HEINEMAN, George T.; POLLICE, Gary; SELKOW, Stanley. Algoritmos: o guia essencial. Rio de Janeiro: Alta Books, 2009. MANZANO, André Luiz N. G.; MANZANO, Maria Izabel N. G. Estudo dirigido de informática básica. São Paulo: Érica, 2008. MANZANO, José Augusto N. G. Estudo dirigido de linguagem C. São Paulo: Érica, 2009. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de Oliveira. Algoritmos, Lógica para desenvolvimento de programação de computadores. São Paulo: Érica, 19 ed., 2006. MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Pearson, 2008. 2v. SCHILDT, Herbert. Mayer. C completo e total. São Paulo: Pearson, 2006. VILARIM, Gilvan. Algoritmos de programação para Iniciantes. São Paulo: Ciência Moderna, 2004.
Compartilhar