matrizes (vetores bidimensionais) -...
Post on 07-Nov-2018
236 Views
Preview:
TRANSCRIPT
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Matrizes (Vetores Bidimensionais)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Objetivos Conceituação de Vetores Bidimensionais
Manipulação de Vetores Bidimensionais
Entender a diferença entre uso dos diferentes
vetores
Entender como manipular entrada, saída e
índices de vetores bidimensionais
Saber solucionar problemas de indexação de
matrizes bidimensionais
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Permite a declaração de variáveis do tipo CONJUNTO Uma variável do tipo CONJUNTO pode armazenar mais de um valor.
No ato da declaração da variável deve-se informar o seu tamanho.
Para o problema de armazenar 10 notas, pode-se definir uma variável de tamanho 10 do tipo real.
Declaração:
real nota[ 10 ]
Vetores (No Portugol Studio)
nota
conteúdo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
índice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Declaração:
real nota[ 10 ]
A declaração acima cria em memória uma variável chamada NOTAcom 10 posições do tipo REAL
As 10 posições são numeradas de 0 a 9 (índice)
Vetores (No Portugol Studio)
• Acesso a variável:
Para acessar cada posição deve-se usar o nome da variável e a
sua posição ou índice (entre colchetes)
A instrução abaixo imprime O TERCEIRO ELEMENTO da variável NOTA.
• escreva(“ A TERCEIRA NOTA = ” , nota [ 2 ] )
O índice pode ser uma variável:
Ex. nota [ x ]
nota
conteúdo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
índice 0 1 2 3 4 5 6 7 8 9
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
? ? ? ? ? ? ? ? ? ?
0 1 2 3 4 5 6 7 8 9
Mostrar as notas acima da média da turma
Lê as notas via teclado e guarda
no vetor
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Vetor no Portugol Studio
Verifica se cada nota armazenada está acima da média
nota
conteúdo 5.5 6.5 8.0 3.0 7.5 2.5 7.5 6.0 4.5 10.0
índice 0 1 2 3 4 5 6 7 8 9
media
6.1
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Problema
Escreva um programa para armazenar as notas de 20 alunos em 5 disciplinas.
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Escreva um programa para armazenar as notas de 20 alunos em 5 disciplinas.
ALUNOS DISC01 DISC02 DISC03 DISC04 DISC05
1 5,5 8,3 6,5 10,0 9,5
2 8,0 7,5 8,5 6,5 10,0
3 ... ... ... ... ...
4 ... ... ... ... ...
5 ... ... ... ... ...
6 ... ... ... ... ...
7 7,5 8,0 9,0 8,0 8,5
... 6,5 3,5 6,5 4,5 9,0
18 ... ... ... ... ...
19 ... ... ... ... ...
20 8,0 9,0 8,0 10,0 9,0
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Escreva um programa para armazenar as notas de 20 alunos em 5 disciplinas.
ALUNOS DISC01 DISC02 DISC03 DISC04 DISC05
1 5,5 8,3 6,5 10,0 9,5
2 8,0 7,5 8,5 6,5 10,0
3 ... ... ... ... ...
4 ... ... ... ... ...
5 ... ... ... ... ...
6 ... ... ... ... ...
7 7,5 8,0 9,0 8,0 8,5
... 6,5 3,5 6,5 4,5 9,0
18 ... ... ... ... ...
19 ... ... ... ... ...
20 8,0 9,0 8,0 10,0 9,0
Poderíamos enxergar essa
estrutura como:
• 5 vetores de 20 posições
• 20 vetores de 5 posições
Ou
1 matriz de 20 x 5
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
MATRIZES
Matrizes são estruturas
MULTIDIMENSIONAIS (mais de uma
dimensão) capazes de armazenar dados
A figura abaixo representa uma matriz
BIDIMENSIONAL de números inteiros
10 5 33 41
53 20 -10 0
29 17 30 8
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Declaração de uma variável matriz
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
• tipo identificador [ linhas ] [ colunas];
• Exemplo:– inteiro A [ 3 ] [ 4] // declara a matriz A : 3 linhas e 4 colunas
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Acesso a elementos da matriz
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
• escreva ( A [ 2 ] [ 1 ]) // imprime o valor 17
A
• inteiro i = 0, j = 2
• escreva ( A [ i ] [ j ] ) // imprime o valor 33
• escreva ( A [ j ] [ i ] ) // imprime o valor 29
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Matrizes Bidimensionais Para acessar TODOS os elementos da matriz é necessário que os índices assumam todas as combinações possíveis
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
A
• (i, j)
• (0,0, (0,1) (0,2), (0, 3) i = 0 e j = 0, 1, 2, 3
• (1,0, (1,1) (1,2), (1, 3) i = 1 e j = 0, 1, 2, 3
• (2,0, (2,1) (2,2), (2, 3) i = 2 e j = 0, 1, 2, 3
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Matrizes Bidimensionais
Declaração de uma variável matriz (Java)
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
• Tipo <nome_var> [ linhas ] [ colunas];
• Exemplo:– int A [ ][ ] = new int [ 3 ] [ 4]; matriz A : 3 linhas e 4 colunas
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Acesso a elementos da matriz (Java)
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
• System.out.print( A [ 2 ] [ 1 ]); imprime o valor 17
A
• i = 0, j = 2;
• System.out.print ( A [ i ] [ j ] ); imprime o valor 33
• System.out.print ( A [ j ] [ i ] ); imprime o valor 29
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Problema
Escreva um programa para LER (via teclado) uma matriz de 3 x 4
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Declaração de Constantes
A vantagem de declarar
CONSTANTES quando se
usa vetores ou matrizes é
poder redimensionar
facilmente o conjunto
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
0 1 2 3
0
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
0 1 2 3
0 10
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1
0 1 2 3
0 10
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1
0 1 2 3
0 10 5
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
12
0 1 2 3
0 10 5
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
12
0 1 2 3
0 10 5 33
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
123
0 1 2 3
0 10 5 33
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
123
0 1 2 3
0 10 5 33 41
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1234
0 1 2 3
0 10 5 33 41
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1234
1 0
0 1 2 3
0 10 5 33 41
1
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1234
1 0
0 1 2 3
0 10 5 33 41
1 53
2
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Entrada de Dados l c0 0
1234
1 01234
2 01234
A0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8... e assim por diante ....
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Problema
Escreva um programa para EXIBIR na tela uma matriz de 3 x 4. Considere que a matriz já está na memória.
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Saída de Dados0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
Al c0 0
1234
1 01234
2 01234
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Saída de Dados: Para - Até
0 1 2 3
0 10 5 33 41
1 53 20 -10 0
2 29 17 30 8
A
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
• MATRIZ permite declarar vetores BIDIMENSIONAIS (multidimensionais)
Coisas para não esquecer:
• Sintaxe para declaração de matriz (bidimensional):tipo identificador [quantidade linhas] [ quantidade colunas]
• Sintaxe para acesso ao vetor:identificador [indice_linha] [indice_coluna]
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Exemplo : Soma de Matrizes
+ =
+ =
Escreva uma função chamada Soma_Matrizes para obter a
soma de duas matrizes , armazenando o resultado numa
terceira matriz
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Extra: imagem = matrizConsidere a seguinte imagem “ufabc.pgm” no formatoPGM, onde na linha 1 mostra o tipo PGM, linha 2, dimensão da imagem (col x lin), linha 3 o valor máximo de cada pixel -:
P2
30 7
9
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 0 0 3 0 0 4 4 4 4 0 0 5 5 5 5 0 0 7 7 7 7 0 0 9 9 9 9 0
0 3 0 0 3 0 0 4 0 0 0 0 0 5 0 0 5 0 0 7 0 0 7 0 0 9 0 0 0 0
0 3 0 0 3 0 0 4 4 4 0 0 0 5 5 5 5 0 0 7 7 7 0 0 0 9 0 0 0 0
0 3 0 0 3 0 0 4 0 0 0 0 0 5 0 0 5 0 0 7 0 0 7 0 0 9 0 0 0 0
0 3 3 3 3 0 0 4 0 0 0 0 0 5 0 0 5 0 0 7 7 7 7 0 0 9 9 9 9 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Ler imagem do disco
saída
Usando Matriz
Bacharelado em Ciência e Tecnologia
Processamento da Informação
MatrizesExercício 1
Dada uma matriz MAT de 4x5 elementos, faça um
algoritmo para somar os elementos de cada linha
gerando o vetor SOMALINHA. Em seguida, somar os
elementos do vetor SOMALINHA na variável TOTAL,
que deve ser impressa no final.
48
5
1
)4,3,2,1(j
iji iMATSOMALINHA
4
1
i
i
TOTAL SOMALINHA
1 0 2 -1 3
4 3 2 1 0
1 -2 3 4 5
8 5 1 3 2
5
10
11
19
45
Exemplo:
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Exercício 2
Escreva um algoritmo capaz de ler um conjunto
de números inteiros e preencher uma matriz de
10x10. A partir daí, gere um vetor com os
maiores elementos de cada linha e outro vetor
com os menores elementos de cada coluna.
49
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Exercício 3
Escreva um algoritmo para a transposição de
matrizes.
Ele deve ser capaz de ler número inteiros para uma
matriz 10x10 e depois girar seus elementos 90º no
sentido horário, ou seja, a primeira coluna passa a
ser a primeira linha e assim por diante.
50
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
11 21 31 41
12 22 32 42
13 23 33 43
14 24 34 44
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Matrizes
Desafio: Multiplicação de matrizes!!
Dadas duas matrizes 3x3, determinar seu produto
R1,1 = A1,1*B1,1+A1,2*B2,1+A1,3*B3,1
R1,2 = A1,1*B1,2+A1,2*B2,2+A1,3*B3,2
R2,1 = A2,1*B1,1+A2,2*B2,1+A2,3*B3,1
R3,1 = A3,1*B1,1+A3,2*B2,1+A3,3*B3,1
R3,2 = A3,1*B1,2+A3,2*B2,2+A3,3*B,32
R3,3 = A3,1*B1,3+A3,2*B2,3+A3,3*B3,3
51
top related