Conteudo 05 - Matrizes - JAVA

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 41

CONTEÚDO 05

MATRIZES
Disciplina: Algoritmos e POO
Professora: Alba Lopes

[email protected]
http://docente.ifrn.edu.br/albalopes
MATRIZES
 O que é uma matriz?
 Uma estrutura de dados que contém várias variáveis do
mesmo tipo
 Qual a diferença de vetores para matrizes?
 Vetores são, na verdade, matrizes de uma única dimensão:

Matrizes
Vetores
1 3 M J K 1.1 7.5 9.2 8.8
1 3 4 6
40 4 G A C 9.0 1.3 5.5 7.9
a maria jota 6 12 L Z H
MATRIZES
 As matrizes são, comumente referenciadas através de
suas dimensões (quantidade de linhas e colunas)
 A notação comum é: MxN, onde
 M é a dimensão vertical (quantidade de linhas)
 N é dimensão horizontal (quantidade de colunas)
 Exemplo:

3x3 3x2 2x3 4x1 1x3

Vetores: a
quantidade de linhas
é sempre 1!
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1
As colunas
0 variam de 0
até 1
As linhas 1
variam de 0
até 2
2
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1

Linha 0
0
0,0 Coluna 0
Para acessar esse
elemento, devemos
observar qual 1
cruzamento linha x
coluna da matriz ele
representa 2
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1
Linha 0
0 Coluna 1
0,0 0,1

2
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1

0
Linha 1 0,0 0,1
Coluna 0
1 1,0

2
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1

0
0,0 0,1 Linha 1
Coluna 1
1 1,0 1,1

2
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1

0
0,0 0,1

1 1,0 1,1

Linha 2 2 2,0
Coluna 1
MATRIZES
 Notação
 Como referenciar um elemento específico da matriz?
 Exemplo: Matriz 3x2 (três linhas e duas colunas)
 Em Java, as posições começam a ser contadas a partir do
0.
0 1

0
0,0 0,1

1 1,0 1,1

2 Linha 2
2,0 0,0
Coluna 2
SINTAXE NO VISUALG
 Declaração:
<tipo> [] <nome_da_variavel>
<nome_variavel>: = new
vetor [li..lf, <tipo>[<linhas>][<colunas>];
ci..cf] de <tipo>

 Exemplo:
int [][] matriz = new int[5][5];
SINTAXE NO VISUALG
 Preenchendo e acessando uma matriz
 As posições das matrizes são identificados pelos
índices das linhas e colunas

 Atribuição
<nome_variavel> [<linha>][<coluna>] = <valor> ;
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
inteiros
public static void main(String [] args){
Scanner teclado = new Scanner(System.in);
int [] numeros = new int[3][2];

numeros[0][0] = 3;
numeros[0][1] = 8;
numeros[1][0] = teclado.nextInt();
numeros[2][1] = teclado.nextInt();
}
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
inteiros
public static void main(String [] args){
Scanner teclado = new Scanner(System.in);
int [] numeros = new int[3][2];

numeros[0][0] = 3;
numeros[0][1] = 8;
numeros[1][0] = teclado.nextInt();
numeros[2][1] = teclado.nextInt();
}

0 1
0 3

2
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
inteiros
public static void main(String [] args){
Scanner teclado = new Scanner(System.in);
int [] numeros = new int[3][2];

numeros[0][0] = 3;
numeros[0][1] = 8;
numeros[1][0] = teclado.nextInt();
numeros[2][1] = teclado.nextInt();
}

0 1
0 3 8

2
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
inteiros
public static void main(String [] args){
Scanner teclado = new Scanner(System.in);
int [] numeros = new int[3][2];

numeros[0][0] = 3;
numeros[0][1] = 8;
numeros[1][0] = teclado.nextInt();
numeros[2][1] = teclado.nextInt();
}

0 1
0 3 8

1 5

2
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
inteiros
public static void main(String [] args){
Scanner teclado = new Scanner(System.in);
int [] numeros = new int[3][2];

numeros[0][0] = 3;
numeros[0][1] = 8;
numeros[1][0] = teclado.nextInt();
numeros[2][1] = teclado.nextInt();
}

0 1
0 3 8

1 5

2 7
SINTAXE NO VISUALG
 Exemplo
 Preenchendo alguns elementos de uma matriz de
String

public static void main(String [] args){


Scanner teclado = new Scanner(System.in);
int [] nomes = new String[3][2];

nomes[1][1] = “Maria”;
nomes[2][0] = “João”;
nomes[0][1] = teclado.next();
}
SINTAXE NO VISUALG
 Exemplo:
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
exMatriz[1,1]  10
leia(exMatriz[1,2])
exMatriz[3,1] := 4
fimalgoritmo

1 2

1 10

exMatriz
SINTAXE NO VISUALG
 Preenchendo uma matriz
 Se quisermos atribuir valores a todas as posições da
matriz, podemos fazer:
SINTAXE NO VISUALG
 Preenchendo uma matriz
 Entretanto, à medida que a quantidade de elementos da
matriz aumenta, fica complicado fazermos
manualmente para todas as posições.

 O melhor caminho é utilizar laços de repetição!


SINTAXE NO VISUALG
 Preenchendo uma matriz
 Podemos criar um laço de repetição para variar pelas
linhas, por exemplo:
SINTAXE NO VISUALG
 Preenchendo uma matriz
 E podemos ainda incluir um laço de repetição para
variar pelas colunas também, por exemplo:
SINTAXE NO VISUALG
 Preenchendo uma matriz
 Saída:
SINTAXE NO VISUALG
 Exibindo o conteúdo de uma matriz:
...
SINTAXE NO VISUALG
 Exibindo o conteúdo de uma matriz
 Ou podemos utilizar um laço de repetição para facilitar
a exibição dos valores de uma matriz
 Criando um laço para percorrer as linhas:
 Exemplo:
SINTAXE NO VISUALG
 Exibindo o conteúdo de uma matriz
 E podemos ainda incluir um laço de repetição para
variar pelas colunas também, por exemplo:
EXEMPLO 1
 Criar um algoritmo que leia uma matriz 3x3 e exiba
a matriz preenchida:
EXEMPLO 1
 Saída:
EXEMPLO 2
 Criar um algoritmo que leia uma matrizes 3x3. Em
seguida, exiba a som dos elementos de cada uma
das linhas. Ex:

1 2 2 Soma Linha 1 = 5
3 2 3 Soma Linha 2 = 8
4 1 1 Soma Linha 3 = 6
EXEMPLO 2
 Resolução:
EXEMPLO 2
 Saída:
EXEMPLO 3
 Escreva um algoritmo que leia uma matriz 4x3. Em
seguida, receba um novo valor do usuário e
verifique se este valor se encontra na matriz. Caso
o valor se encontre na matriz, escreva a
mensagem “O valor se encontra na matriz”. Caso
contrário, escreva a mensagem “O valor NÃO se
encontra na matriz”.
EXEMPLO 3
EXEMPLO 3
 Saída:
EXERCÍCIOS
1. Crie um algoritmo que leia uma matriz 5x5. Em seguida,
conte quantos números pares existem na matriz.

2. Crie um algoritmo que leia uma matriz 3x3 e calcule a soma


dos valores das colunas da matriz. Ex:

1 2 2
3 2 3
4 1 1

Soma Coluna 1 = 8
Soma Coluna 2 = 5
Soma Coluna 3 = 6
EXERCÍCIOS
3. Crie um algoritmo que calcule a média dos elementos de
uma matriz 5x2.

4. Crie um algoritmo informe qual o maior e qual o menor


elemento existente em uma matriz 6x3.

5. Crie um algoritmo que leia uma matriz 3x3 e crie uma


segunda matriz que inverta as linhas e colunas da primeira
matriz. Ex:
Matriz Matriz Invertida
1 2 3 1 4 7
4 5 6 2 5 8
7 8 9 3 6 9
EXERCÍCIOS
6. Crie um algoritmo que leia duas matrizes 2x5 e crie uma
terceira matriz também 2x5 com o valor da soma dos
elementos de mesmo índice. Ex:
Matriz1 + Matriz2 = Matriz3

1 2 2 4 3 6
3 2 5 3 8 5
4 1 7 7 11 8
5 5 4 4 9 9
1 2 1 9 2 11
EXERCÍCIOS
7. Crie um algoritmo que calcule a soma dos valores da
diagonal principal de uma matriz 5x5. Veja a diagonal
principal da matriz destacada no exemplo abaixo:
1 2 5 1 4
3 2 4 2 3
4 1 2 3 7
5 5 2 4 9
1 2 4 5 1

SOMA = 10
EXERCÍCIOS
8. Crie um algoritmo que verifique se uma matriz é triangular
superior. Uma matriz é triangular superior se todos os
elementos abaixo da diagonal principal são iguais a 0.

1 2 5 1 4
0 2 4 2 3
0 0 2 3 7
0 0 0 4 9
0 0 0 0 1
EXERCÍCIOS
9. Crie um algoritmo que verifique se uma matriz é triangular
inferior. Uma matriz é triangular inferior se todos os
elementos abaixo da diagonal principal são iguais a 0.

1 0 0 0 0
3 2 0 0 0
4 1 2 0 0
5 5 2 4 0
1 2 4 5 1

Você também pode gostar