Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Lógica de Programação Professor: Anderson Theobaldo Aula: 15 Objetivo: Aprender a trabalhar com estrutura de dados homogênea. Conteúdo: Matriz Estruturas de Dados Homogêneas (Matriz) Introdução Matriz é um vetor com mais de uma dimensão. Imagine uma tabela de 10 linhas e 5 colunas; cada intersecção entre a linha e a coluna terá um endereço (ex.: linha 3, coluna 2) e nesse endereço será armazenado um dado do tipo definido pela matriz. Assim como no vetor, a matriz terá sempre dados de um mesmo tipo; e o número de elementos que ele poderá armazenar é limitado na declaração da variável do tipo matriz. Observe, que tanto no vetor quanto na matriz, um espaço é alocado na memória para o armazenamento de todos os elementos da estrutura, independente do usuário utilizar ou não todos os elementos. Agora, você verá como funciona a declaração de uma matriz, a leitura e a escrita de dados neste tipo de estrutura. Uma matriz 10X5 (50 elementos) do tipo inteiro: MX= Uma matriz 5X5 (25 elementos) do tipo caractere: MY = Uma matriz 3X3 (9 elementos) do tipo caractere: MZ = Declaração de matrizes VARIÁVEIS MX: ARRANJO [1..10 , 1..5] DE INTEIRO MY: ARRANJO [1..5 , 1..5] DE CARACTERE MZ: ARRANJO [0..2 , 0..2] DE CARACTERE Atribuições As atribuições de valores em uma matriz é semelhante à atribuição de valores a um vetor, com a diferença de que no índice deverá conter dois números separados por uma vírgula, sendo o primeiro referente à linha e o segundo referente à coluna do elemento. Você sabe como deve ser solicitado ao usuário o valor dos 50 números inteiros da matriz MX? Observe o exemplo a seguir: PARA i ← 1 ATÉ 10 FAÇA PARA j ← 1 ATÉ 5 FAÇA ESCREVA(“Digite o valor do elemento ”, i, “X”, j, “da matriz”) LEIA(MX[i,j]) FIMPARA FIMPARA Leitura Vamos imprimir todos os dados da matriz MZ na tela do computador. PARA i ← 0 ATÉ 2 FAÇA PARA j ← 0 ATÉ 2 FAÇA ESCREVA(MZ[i,j]) FIMPARA ESCREVA {para pular uma linha} FIMPARA Exemplo 1: Algoritmo para armazenar a temperatura dos últimos dez dias e depois calcular a média das temperaturas armazenadas: ALGORITIMO “EX01” VAR acct, media : REAL i : INTEIRO temp : ARRANJO[1..10] DE REAL INÍCIO PARA i ← 1 ATÉ 10 FAÇA {armazenamento das dez temperaturas} ESCREVA(“Digite a temperatura:”) LEIA(temp[i]) FIMPARA {cálculo da média das dez temperaturas armazenadas} Acct ← 0 PARA i ← 1 ATÉ 10 FAÇA acct ← acct + temp[i] media ← acct / 10 ESCREVA (“A média das temperaturas armazenadas é :”, media) FIMPARA FIMALGORITMO Exemplo 2: Este algoritmo escreve 15 números inteiros dentro de um vetor de 15 elementos e depois: Copia todo o seu conteúdo para um segundo vetor (vet2). Copia os elementos na ordem inversa para um terceiro vetor (vet3). Copia os números negativos para um quarto vetor vet(4). ALGORITMO “EX02 VAR i,j : INTEIRO vet1, vet2, vet3, vet4 : ARRANJO[1..15] DE INTEIRO INÍCIO PARA i ← 1 ATÉ 15 FAÇA {armazenamento dos valores no vetor1} ESCREVA(“Digite a temperatura:”) LEIA(vet1[i]) FIM_PARA PARA i ← 1 ATÉ 15 FAÇA {cópia do vetor1 para o vetor2} vet2[i] ← vet1[i] FIMPARA j = 15 {cópia do vetor1 para o vetor3 com os elementos invertidos} PARA i ← 1 ATÉ 15 FAÇA VET3[J]← VET1[i] j ← j-1 FIM_PARA; J = 1 {cópia dos números negativos do vetor1 para o vetor4} PARA i ← 1 ATÉ 15 FAÇA SE vet1[i] < 0 ENTÃO Vet4[j] ← vet1[i] j ← j + 1 FIMSE FIMPARA PARA i ← 1 ATÉ 15 FAÇA ESCREVA(“Vetor1 ”, vet1[i], “ Vetor2 ”, vet2[i], “ Vetor3 ”,vet3[i], Vetor4 ”, vet4[i]) FIMPARA FIMALGORITIMO Exemplo 3: Este exemplo explora algumas operações sobre uma matriz 10 X 10 de números reais. Inicialmente, a matriz é declarada e depois os dados são inseridos nela; seguidamente, teremos um trecho do algoritmo, que retornará a somatória de todos os elementos da matriz, e outros trechos que retornarão: a somatória da diagonal principal; a somatória da diagonal secundária e a impressão de toda a matriz no monitor de vídeo. ALGORITMO “EX03” VAR i,j : INTEIRO dp, ds, s : REAL matriz : ARRANJO[1..10 , 1..10] DE REAL INÍCIO PARA i ← 1 ATÉ 10 FAÇA {armazenamento dos valores na matriz} PARA j ← 1 ATÉ 10 FAÇA ESCREVA(“Digite o elemento ”, i, “X”, j, “da matriz”) LEIA(matriz[i,j] FIMPARA FIMPARA {somatória dos elementos da matriz} S← 0 PARA i ← 1 ATÉ 10 FAÇA PARA j ← 1 ATÉ 10 FAÇA s ← s + matriz[i,j] FIMPARA FIMPARA ESCREVA(“A somatória dos elementos da matriz é: ”,s) dp ← 0 {somatória dos elementos da diagonal principal da matriz} PARA i ← 1 ATÉ 10 FAÇA dp ← dp + matriz[i,i] FIMPARA ESCREVA(“A somatória dos elementos da diagonal principal da matriz é: ”,dp) {somatória dos elementos da diagonal secundária da matriz} ds ← 0 j ← 10 PARA i ← 1 ATÉ 10 FAÇA ds ← ds + matriz[i,j] j ← j - 1 FIMPARA ESCREVA(“A somatória dos elementos da diagonal secundária da matriz é:”,ds) {Impressão da matriz no monitor de vídeo} PARA i ← 1 ATÉ 10 FAÇA PARA j ← 1 ATÉ 10 FAÇA ESCREVA(matriz[i,j]) FIMPARA FIMPARA FIMALGORITIMO
Compartilhar