Documente Academic
Documente Profesional
Documente Cultură
MATRIZES
DEFINIO
Uma matriz uma varivel homognea, como um vetor, porm com mais de uma dimenso. Em
grande parte das vezes, trabalha-se com matrizes bidimensionais, ou seja, matrizes compostas por
linhas e colunas. Mas possvel ter uma matriz de dimenso n, onde n representa o nmero de
ndices da matriz.
Uma matriz composta por uma seqncia de variveis (todas do mesmo tipo), que so alocadas
seqencialmente na memria e so referenciadas pelos seus ndices.
Por exemplo: Seja a matriz M abaixo:
M=
34
45
45
33 111 334
124 76
66
99
180
55
Observe que em JAVA, para se obter um array multidimensional, necessrio declarar um array de
arrays.
DECLARAO
A declarao de uma matriz em JAVA pode ser feita da seguinte maneira:
int[][] matriz; // foi declarada uma matriz de duas dimenses
matriz = new int[3][4];
Ou ainda:
int matriz[][] = new int[3][4];
Observe que possvel manipular matrizes da mesma forma que se manipulava vetores, ou seja,
possvel acessar cada elemento individualmente e realizar operaes compatveis com a tipo de
cada elemento. No exemplo acima, como a matriz de inteiros, possvel realizar qualquer
operao sobre inteiros em cada elemento da matriz.
CARREGANDO UMA MATRIZ
Ainda tomando como exemplo a matriz 3X4 declarada acima, o processo de carregamento (leitura
do teclado) ser semelhante ao carregamento de um vetor, porm com dois comandos de repetio,
um para referenciar a linha e outro para referenciar a coluna em que o elemento se encontra.
for (lin = 0; lin < 3; lin++)
for (col = 0; col < 4; col++)
matriz[lin][col] = InOut.leInt (M[+lin+, +col+] = );
Exemplo:
1. Faa um programa que carregue uma matriz 2X2, calcule e mostre uma nova matriz gerada pela
multiplicao da matriz original pelo seu maior elemento.
package matrizes;
import io.*;
public class Exemplo1 {
public static void main (String[] args){
final int TAM = 2;
int mat[][] = new int[TAM][TAM];
int lin, col, maior;
String novaMatriz;
//Entrada dos dados
for (lin=0; lin < TAM; lin++)
for (col=0; col< TAM; col++)
mat[lin][col] = InOut.leInt("MAT["+lin+","+col+"] = ");
//Busca do maior elemento da matriz
maior = mat[0][0];
for (lin=0; lin < TAM; lin++)
for (col=0; col< TAM; col++)
if (mat[lin][col] > maior)
maior = mat[lin][col];
//Formando a String que representa a nova matriz
novaMatriz = "A nova Matriz ser:\n";
for (lin=0; lin < TAM; lin++){
for (col=0; col< TAM; col++){
novaMatriz += " | " + (mat[lin][col]*maior);
}
novaMatriz += " |\n";
}
//Mostrando na janela a nova matriz
InOut.MsgDeInformao("RESULTADO", novaMatriz);
System.exit(0);
}
}
Na verdade, constantes so variveis que, uma vez atribudo um valor para ela, esse valor no pode
ser alterado ao longo do programa. Pensando assim, possvel ler um valor inicial para uma
constante:
final byte LIN = InOut.leByte("QUANTIDADE DE LINHAS");
EXERCCIOS:
1. Implemente um programa que leia uma matriz (LxC) de inteiros. O programa dever verificar se
a matriz identidade. Se for a mensagem: MATRIZ IDENTIDADE deve ser exibida, seno NO
IDENTIDADE.
OBS: Exemplos de matriz identidade (somente para matrizes quadradas):
1 0 0
0 1 0
0 0 1
2. Implemente um programa que leia uma matriz (LxC) de inteiros. Este programa dever armazenar a transposta em uma outra matriz e mostrar a matriz no final bem como sua transposta:
a b c
a d g
t
A = d e f , logo, A = b e h
g h i
c f i
3. Faa um programa que carregue uma matriz 10X20 com nmeros inteiros e some cada uma das
linhas, armazenando o resultado das somas em um vetor. A seguir, multiplique cada elemento da
matriz pela soma da linha, armazenando este resultado em uma segunda matriz e mostre a matriz
resultante.
4. Faa um programa que carregue uma matriz 7X7 de nmeros inteiros e crie dois vetores de sete
posies cada um e que contenham, respectivamente, o maior elemento de cada uma das linhas e o
menor elemento de cada uma das colunas. Escreva, no final, a matriz e os dois vetores.
5. Faa um programa que carregue uma matriz quadrada (a dimenso deve ser dada pelo usurio) e,
em seguida, some os elementos da diagonal principal, os elementos abaixo da diagonal principal e
os elementos acima da diagonal principal e mostre todos esses resultados.
6. A tabela a seguir contm vrios itens que esto estocados em diversos armazns de uma
companhia. fornecido tambm o custo de cada um dos produtos armazenados.
Produto 1
(unidade)
Produto 2
(unidade)
Produto 3
(unidade)
Armazm 1
1200
3700
3737
Armazm 2
1400
4210
4224
2000
2240
2444
Custo (R$)
260
420
330