Capítulo 7 Matriz Licenciatura em Computação Fundamentos de Lógica para Programação Prof. Nícolas Trigo nicolas.trigo@ifsertao-pe.edu.br http://professor.ifsertao-pe.edu.br/nicolas.trigo Roteiro Definição da matriz Declaração da matriz Atribuindo valores a matriz Preenchendo a matriz Mostrando os valores da matriz Exemplos Exercícios 2 1
Definição de matriz [1 3] Vetor é uma variável composta homogênea unidimensional porque tem somente uma dimensão, ou seja, cresce somente em um sentido. Já uma matriz corresponde a uma variável composta homogênea multidimensional, pois ela pode crescer em vários sentidos. Ela pode variar de matriz bidimensional até N- dimensional, ou seja, projeta de 2 ou mais direções. 3 Definição de matriz [2 3] 4 2
Definição de matriz [3 3] Fazendo outra comparação para haver uma melhor compreensão, iremos utilizar novamente o cenário de um edifício, só que, agora, cada andar terá vários apartamentos. Digamos que um edifício tenha três apartamentos por andar, sendo quatro andares. Neste caso, o edifício corresponde a uma matriz com quatro linhas e três colunas, conforme a figura ao lado. 5 Declaração de matriz DECLARE nome1[dimensão1,dimensao2] tipo nome2[dimensão1,dimensao2,dimensao3] tipo nome3[dimensão1,dimensao2,] tipo Onde: nome é o nome da variável, é o identificador. dimensãon é o tamanho de cada dimensão que a matriz tem. tipo é o tipo básico de dados que serão armazenados na matriz. Exemplo: DECLARE X[3,5] NUMERICO No exemplo acima é declarado uma matriz X na memória com duas linhas e 3 colunas para números. 6 3
Atribuindo valores na matriz Após a devida declaração da matriz, a atribuição de um valor em uma das posições desta matriz exige que seja informada as coordenadas da posição onde valor será armazenado. Por exemplo: X[1,1] <- 45 X[2,4] <- 23 7 Preenchendo uma matriz [1 3] Preencher uma matriz é atribuir valores para todas as posições desta matriz. Desta forma, a idéia inicial de preenchimento da matriz consiste da forma ao lado. E se a matriz tiver 1000 linhas e 1000 colunas? Neste caso terá 1 milhão de valores. Não é interessante repetir o comando LEIA um milhão de vezes! LEIA X[0,0] LEIA X[0,1] LEIA X[0,2] LEIA X[1,0] LEIA X[1,1] LEIA X[1,2] 8 4
Preenchendo uma matriz [2 3] O uso de uma estrutura de repetição para o preenchimento de uma matriz é a forma mais eficiente de preencher da matriz. Para cada dimensão, é necessário uma variável para controlar o deslocamento na matriz. Para cada variável de controle é necessário uma estrutura de repetição. Por exemplo, uma matriz bidimensional, tem que ter duas estrutura de repetição com variável de controle cada. PARA I <- <- 0 ATE 42 PASSO 1 FAÇA INICIO PARA ESCREVA J <- Digite 0 ATE 4 um PASSO número: 1 FAÇA LEIA X[I] INICIO ESCREVA Digite um valor: LEIA X[I,J] 9 Preenchendo uma matriz [3 3] PARA I <- 0 ATE 1 PASSO 1 FAÇA INICIO PARA J <- 0 ATE 1 PASSO 1 FAÇA INICIO ESCREVA Digite um valor: LEIA X[I,J] 10 5
Mostrando os valores da matriz Para mostrar todos os valores de uma matriz deve-se utilizar estruturas de repetição, semelhante ao preenchimento da matriz. Deve-se ter cuidado quanto ao intervalo numérico da repetição, pois este deve estar dentro do intervalo numérico das posições da matriz. PARA I <- 0 ATE 2 PASSO 1 FAÇA INICIO PARA J <- 0 ATE 2 PASSO 1 FAÇA INICIO ESCREVA X[I,J] RESULTADO NO MONITOR 23 45 12 107 11 Exercícios Livro: ASCENCIO; CAMPOS. Fundamentos da Programação de Computadores. Editora Pearson. 3ª EDIÇÃO 1. Leia, estude, faça o teste de mesa dos exercícios resolvidos do Capítulo 7 (entre as páginas 220 e 249). 2. Após a resolução do item 1 (acima), elabore os algoritmos dos exercícios propostos do Capítulo 7 (entre as páginas 249 e 251). Livro: ASCENCIO; CAMPOS. Fundamentos da Programação de Computadores. Editora Pearson. 2ª EDIÇÃO 1. Leia, estude, faça o teste de mesa dos exercícios resolvidos do Capítulo 7 (entre as páginas 198 e 227). 2. Após a resolução do item 1 (acima), elabore os algoritmos dos exercícios propostos do Capítulo 7 (entre as páginas 227 e 229). 12 6
Exercícios Extras 1. Capture do teclado valores para preenchimento de uma matriz M 3x3. Após a captura imprima a matriz criada e encontre a quantidade de números pares, a quantidade de números ímpares. 2. Gere e imprima uma matriz M 4x4 com valores aleatórios entre 0-9. Após isso determine o maior número da matriz e a sua posição (linha, coluna). 3. Gere e imprima uma matriz M 10x10 com valores aleatórios entre 0-9. Após isso indique qual é o maior e o menor valor da linha 5 e qual é o maior e o menor valor da coluna 7. 4. Capture do teclado valores para preenchimento de uma matriz M 4x4. Após a captura imprima a matriz de forma invertida. Depois substitua os valores da diagonal principal pelo valor 0. 5. Gere e imprima uma matriz M 4x4. Após isso: Determine a soma dos elementos da diagonal principal de M. Colocar os elementos da diagonal principal de M em um vetor V. Imprima o vetor V. 13 7