250 likes | 363 Views
Algoritmos. Escher. Agenda. Estruturas Homogêneas; Matrizes; Exercícios. Matrizes. Estrutura Homogênea - Matriz :
E N D
Algoritmos Escher
Agenda • Estruturas Homogêneas; • Matrizes; • Exercícios.
Matrizes • Estrutura Homogênea - Matriz: • Uma matriz é uma coleção homogênea bidimensional, cujos elementos são distribuídos em linhas (m) e colunas (n). Se A é uma matriz mn, então suas linhas são indexadas de 0 a m1 e suas colunas de 0 a n1. Amxn =
Matrizes • Estrutura Homogênea - Matriz: • Uma Matrizé um conjunto que contém um número fixo de elementos. • Todos elementos da matriz devem ser do mesmo tipo. • Armazenam vários elementos (valores) de uma só vez. • Significa dizer: • Em uma mesma estrutura de dados, é possível ter diversas variáveis de tipos de dados simples do mesmo tipo agrupadas.
linha coluna A[1][3] Matrizes • Para acessar um elemento particular de A, escrevemos Aij, sendo i o número da linha e j o número da coluna que o elemento ocupa. A[0][0] 10 8 5 1 5 7 7 7 8 0 0 10 A3x4 = A [i][j] NOME ÍNDICES
Matrizes • Estrutura Homogênea - Matriz: • Sintaxe: tiponomematriz[linhas] [colunas]; onde: deve ser especificado o tipo dos elementos do conjunto, ou seja, int, string, real, etc. O nomematriz é o nome da variável, em linhas deve ser especificado o número máximo de linhas do conjunto e em colunas deve ser especificado o número máximo de colunas do conjunto.
Matrizes • Estrutura Homogênea - Matriz: • Exemplo: Número máximo de linhas do conjunto Nome da Variável int MAT [200][300]; Número máximo de colunas do conjunto Tipo dos elementos do conjunto
Matrizes • Estrutura Homogênea - Matriz: • Cada variável indexada é associada à uma posição de memória, como acontece com variáveis simples. • Exemplo: real A[2][2]; • MP A[0][0] A[0][1] A[1][0] A[1][1] ...
Matrizes • Estrutura Homogênea - Matriz: • Atribuição: • - Além do nome da variável deve-se fornecer os índices do componente onde será armazenado o valor da expressão. • Exemplos: • NUMEROS[2][2] 10; • strcopia (NOME[10][20], “Joao”); • SALARIOS[3][5] 100.00;
Matrizes • Estrutura Homogênea - Matriz: • Leitura utilizando uma Matriz: • - Feita passo a passo, um componente por vez. Sempre informando o nome da variável e o índice da linha e coluna a ser lido. • Exemplo: • intmat[10][5], i, j; • para (i <- 0 ; i < 10; i ++ ) { • para (j <- 0 ; j < 5; j ++) { • imprima “numero: "; • leia mat[i][j]; } }
Matrizes • Estrutura Homogênea - Matriz: • Escrita utilizando uma Matriz: • - Semelhante a leitura, feita passo a passo, um componente por vez. Sempre informando o nome da variável e os índices para manipular o elemento. • Exemplo: • intmat[10][5], i, j; • para (i <- 0 ; i < 10; i ++) { • para (j<- 0 ; j < 5; j ++) { • imprima "num: ", mat[i][j], "\n"; • } }
Matrizes • Estrutura Homogênea - Matriz: • Analogia:
Matrizes • Estrutura Homogênea - Matriz: • Exemplo 1: Ler uma matriz, TAB, de valores inteiros com 3 linhas e 3 colunas.
prog matriz1 int I, J, TAB[4][3]; para (I <- 0; I < 4; I++) para (J <- 0; J < 3; J++) leia TAB[I][J]; fimprog MATRIZ - Exemplo 1 I J 0 0 leia TAB[0][0]; 1 leia TAB[0][1]; 2 leia TAB[0][2]; 1 0 leia TAB[1][0]; 1 leia TAB[1][1]; 2 leia TAB[1][2]; ... 3 0 leia TAB[3][0]; 1 leia TAB[3][1]; 2 leia TAB[3][2]; Teste de mesa, em relação a I e J.
Matrizes • Estrutura Homogênea - Matriz: • Exemplo 2: Ler uma tabela de M linhas e N colunas, o M e N deverão ser informados pelo usuário, armazenando-as em uma matriz A. Calcular a soma de todos os elementos da matriz A
prog matriz2 int S, I ,J, M, N, A[100][100]; imprima “Digite o nr de linhas e colunas:”; leia M; #recebe qtd linhas leia N; #recebe qtd colunas para (I <- 0; I < M; I++) { para (J <- 0; J < N; J++) { leia A[I][J]; } } S <- 0; para (I <- 0; I < M; I++) { para (J <- 0; J < N; J++) { S <- S + A[I][J]; } } imprima “TOTAL: ”, S; fimprog Leitura da Tabela Calculo da soma dos elementos Impressão da soma dos elementos Número de máx. linhas MATRIZ - Exemplo 2 Número de máx. colunas
Matrizes • Estrutura Homogênea - Matriz: • Exemplo 3: Ler uma matriz M3x4 e mostrar a soma da 2ª linha da matriz. 10 8 5 1 5 7 7 7 8 0 0 10 26 S = A3x4 =
prog matriz3 int I,J,LINHA,COLUNA, M[100][100], S; LINHA <- 3; COLUNA <- 4; para(I <- 0; I < LINHA; I++) { para (J <- 0; J < COLUNA; J++) { imprima "FORNECA O ", I+1, " ", J+1, ": "; leia M[I][J]; imprima "\n"; } } imprima "\n"; S <- 0; para(J <- 0; J < COLUNA; J++) { S <- S + M[1][J]; } imprima "Soma da linha 2: ",S, "\n"; fimprog Declarações Leitura da matriz Cálculo da soma da 2ª linha Escrita da Soma 18
Referências • Lopes, A. & Garcia, G. – Introdução a Programação. • Schildt – C Completo e Total.
E Agora??? • Exercícios!!!
Exercícios Propostos 1 - Faça o programa para preencher os elementos de uma matriz (5 x 3) com o valor 6. Imprimir a matriz. 2 - Faça um programa para ler uma matriz (3 x 4) e multiplique os elementos pares por 3 (três) e os elementos ímpares por 2 (dois). Imprimir a matriz resultado. 3 - Faça o programa para preencher os elementos de uma matriz quadrada (6 x 6) com o valor 0 quando o valor da linha é igual ao valor da coluna, e com 1 para os demais elementos. Imprimir a matriz.
Matrizes • Estrutura Homogênea - Matriz: • Exercício 4: Ler uma matriz M3x4 e gerar um vetor V cujos elementos são a soma de cada uma das linhas da matriz. Escrever o vetor V. 10 8 5 1 5 7 7 7 8 0 0 10 ( 24, 26, 18 ) V = A3x4 =
prog matriz4 int I,J,LINHA,COLUNA, M[100][100], V[100]; LINHA <- 3; COLUNA <- 4; para(I <- 0; I < LINHA; I++) { para (J <- 0; J < COLUNA; J++) { imprima "FORNECA O ", I+1, " ", J+1, ": "; leia M[I][J]; imprima "\n"; } } imprima "\n"; para(I <- 0; I < LINHA; I++) { V[I] <- 0; para (J <-0; J < COLUNA; J++) { V[I] <- V[I] + M[I][J]; } } imprima "Vetor Resultante\n”; para (I <- 0; I < LINHA; I++) { imprima "Vetor Soma[", I+1,"]: ", V[I], "\n";} fimprog Declarações Leitura da matriz Cálculo do vetor soma das linhas Escrita do vetor 24 MATRIZ - Exemplo 4