You are on page 1of 74

Vetor com Java

Professor Alan Alves Oliveira


Ateno:
Este material de apoio no deve ser utilizado como nica fonte de
informao pelo aluno, que sempre deve buscar contedo nas
obras (livros, peridicos e outros) citados como referncias para a
sua disciplina/curso.

2
1. Conceitos iniciais

3
Vetores
Um vetor, tambm conhecido como array,
uma estrutura especial disponibilizada pela
maioria das linguagens de programao.
Os vetores podem ser unidimensionais ou
multidimensionais. Neste ltimo caso
geralmente chamamos de matrizes.
Uma varivel normal aloca um espao em
memria para armazenar o seu valor.

4
Vetores
A figura abaixo ilustra como feita a alocao
de memria para variveis comuns (considere
variveis a, b, c e d):
Cada variveil possui seu prprio espao e
armazena um nico valor de cada vez.

a c

d b

5
Vetores
Os vetores permitem a alocao de vrios
espaos de memria sequenciais sob um
mesmo identificador.
Dessa forma, podemos armazenar em um
vetor diversos valores diferentes.
Veja a representao abaixo:
meuVetor

a c

d b
6
Vetores
A varivel meuVetor ocupa quatro posies
sequenciais de memria.
Isso significa que poderemos armazenar quatro
valores diferentes na mesma varivel.
Observao:
Os valores que podem ser armazenados em um
vetor devem ser do mesmo tipo.
Ou seja, se um vetor foi declarado como inteiro,
pode armazenar valores diferentes, porm, inteiros.

7
Vetores
Mas temos um problema:
Se um vetor possui diversos valores diferentes e o
seu identificador como varivel nico, como
acessar um valor especfico?
a que entra um conceito extremamente
importante em se tratando de vetores, o ndice.
O ndice permite que faamos referncia a uma
posio especfica dentro do vetor.
Desta forma podemos armazenar ou recuperar
um valor em uma posio determinada.
8
Vetores
Ento, poderamos representar melhor o vetor
da seguinte forma:
O valor entre colchetes representa o ndice de cada
posio no vetor.

meuVetor
[0] [1] [2] [3]

a c

d b

9
Vetores
Exemplo:
Considere o seguinte vetor a:
Trata-se de um vetor de 10 posies com ndices que
vo de 0 a 9.
O identificador do vetor (nome da varivel) a.
a[0] vale 10, a[1] vale 0, a[2] vale 12 e assim por diante.

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
a
10 0 12 35 8 7 0 4 21 4

10
Vetores
Por ora, vamos nos concentrar em vetores
unidimensionais.
Um vetor unidimensional tem uma linha e n
colunas.
As colunas, como j vimos, so indexadas, ou
seja, cada uma possui um ndice nico.
O valor de uma coluna o seu contedo,
aquilo que ela armazena.

11
2. Manipulao de vetores com
Java

12
Declarao de vetores
Para declarar uma varivel que representa um
vetor em Java, utilizamos a sintaxe tradicional
(tipo seguido do nome da varivel).
Porm, para que o Java entenda que
queremos um vetor e no uma varivel comum,
acrescentamos os colchetes:
Os colchetes podem ser acrescentados tanto aps
o tipo como aps o nome da varivel.

13
Declarao de vetores
Exemplo:
Veja abaixo alguns exemplos de declarao de
vetores:
...
01 int a[];
...

...
01 String[] b;
...

...
01 float c[];
...
14
Inicializao de vetores
No possvel utilizar vetores sem antes
inicializ-los.
Inicializar um vetor significa informar para o
Java quantas posies o vetor ter, para que o
espao em memria possa ser alocado.
Vetores, ento, so estruturas de dados
estticas. Isso significa que uma vez
inicializado no possvel redimension-lo.

15
Inicializao de vetores
Um vetor com 100 posies, por exemplo,
sempre ter 100 posies.
Se for necessrio um vetor maior temos que
fazer uma nova inicializao, perdendo o
contedo do vetor original.
Podemos inicializar os vetores em Java de trs
formas:
Declarao e inicializao juntas.
Declarao e inicializao separadas.
Declarao e inicializao com atribuio. 16
Inicializao de vetores
Declarao e inicializao juntas:
Abaixo segue o exemplo da declarao e
inicializao de um vetor para nmeros inteiros que
com 10 posies:

...
01 int a[] = new int[10];
...

17
Inicializao de vetores
Declarao e inicializao separadas:
Abaixo segue o exemplo da declarao e
inicializao de um vetor para nmeros inteiros que
com 10 posies:

...
01 int a[];
02 a = new int[10];
...

18
Inicializao de vetores
Declarao e inicializao com atribuio:
Abaixo segue o exemplo da declarao e
inicializao de um vetor para nmeros inteiros que
com 10 posies, com os valores iniciais atribudos.

...
01 int a[] = {1, 3, 6, 8, 2, 10, 21, 5, 7, 0};
...

19
Inicializao de vetores
Quando inicializamos um vetor em Java sem
atribuir valores, a linguagem atribui valores
padro s posies do vetor.
A tabela abaixo mostra esses valores em
relao aos tipos com os quais estamos
trabalhando:
Tipo Valor padro
int 0
float 0
boolean false
String null
20
ndices de vetores
No Java, a indexao de vetores feita pela
prpria linguagem, no podendo o
programador interferir nos ndices.
O primeiro ndice sempre 0 (zero). Os demais
so sequenciais.
O ltimo ndice sempre n 1, onde n o
tamanho do vetor.
Ento, um vetor de 10 posies possui ndices
de 0 a 9. Um vetor de 100 posies possui
ndices de 0 a 99 e assim por diante.
21
Acesso s posies do vetor
O acesso ao contedo de posies especficas
de um vetor feito utilizando-se o identificador
da varivel seguido de colchetes e a posio
desejada.
Exemplo:

...
01 int a[] = new int[10];
02 a[2] = 20; //Atribuindo o valor 20 para a posio 2 do vetor
03 a[5] = 10; //Atribuindo o valor 10 para a posio 5 do vetor
04 //Recuperando os valores das posies 2 e 5 do vetor para somar
05 System.out.print(a[2] + a[5]);
...

22
Acesso s posies do vetor
Dessa forma, no possvel atribuir um valor
diretamente a um vetor sem informar a
posio.
O cdigo abaixo invlido (gera erro), pois,
tenta inserir o valor 20 ao vetor, sem informar a
posio que receber este valor:
...
01 int a[] = new int[10];
02 a = 20; //Linha com erro
...

23
A faixa de ndices
Um erro comum na manipulao de vetores
tentar acessar uma posio que no existe.
Chamamos esta tentativa de acesso de ndice
fora da faixa.
No Java, o erro gerado por esse tipo de
situao chama-se:
ArrayIndexOutOfBoundsException.

24
A faixa de ndices
No Java, qualquer ndice menor que zero um
ndice fora da faixa.
Da mesma forma, qualquer ndice maior ou
igual a n tambm est fora da faixa.

25
Manipulando vetores
A utilizao de vetores s faz sentido se for
possvel manipul-los.
Manipular um vetor significa poder percorr-lo.
Precorremos um vetor, entre outras coisas,
para:
Preencher o vetor.
Ler os dados do vetor.
Fazer uma pesquisa.
Ordenar o vetor.
26
Manipulando vetores
Os ndices do vetor so valores inteiros e
sequenciais.
Portanto, a forma mais simples de manipul-los
atravs de uma estrutura de repetio.

27
Manipulando vetores
Exemplo 1:
Vamos comear com um exemplo simples.
Nosso objetivo fazer com que cada elemento de
um vetor de inteiros de 10 posies possua um
valor igual ao seu ndice.
Lembre-se que ao ser declarado em Java um vetor
de inteios preenchido com zeros.
Queremos que ele fique conforme abaixo:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
a
0 1 2 3 4 5 6 7 8 9
28
Manipulando vetores
Exemplo 1:
Temos que definir uma estratgia para fazer esta
operao. Vamos fazer o seguinte:
Utilizaremos uma estrutura de repetio controlada por
varivel. A varivel de controle ser i.
A varivel i ter o valor inicial igual a 0 (zero) e seu valor
mximo ser 9. O incremento ser 1.
Perceba que a varivel i ir variar exatamente conforme
os ndices do vetor.
A cada iterao da estrutura de repetio vamos acessar
a posio i do vetor. O valor colocado nesta posio
tambm ser o valor de i.
29
Manipulando vetores
Exemplo 1:
Vamos ao cdigo:
01 public class ExemploVetor1 {
02
03 public static void main(String[] args) {
04 int i = 0;
05 int a[] = new int[10];
06 for (i = 0; i < 10; i++)
07 a[i] = i;
08 }
09
10 }

30
Manipulando vetores
Exemplo 1:
Ainda nesse primeiro exemplo, vamos acrescentar
o cdigo necessrio para percorrer o vetor
imprimindo os valores do seu contedo:
01 public class ExemploVetor1 {
02
03 public static void main(String[] args) {
04 int i = 0;
05 int a[] = new int[10];
06 for (i = 0; i < 10; i++)
07 a[i] = i;
08 for (i = 0; i < 10; i++)
09 System.out.println("Posio " + i + " = " + a[i]);
10 }
11
12 }
31
Manipulando vetores
Exemplo 1:
Se quisermos escrever os valores na ordem
inversa basta ajustar a estrutura de repetio para
que comece no ndice final:
01 public class ExemploVetor1 {
02
03 public static void main(String[] args) {
04 int i = 0;
05 int a[] = new int[10];
06 for (i = 0; i < 10; i++)
07 a[i] = i;
08 for (i = 9; i >= 0; i--)
09 System.out.println("Posio " + i + " = " + a[i]);
10 }
11
12 }
32
Manipulando vetores
Exemplo 2:
Nosso segundo exemplo vai ler o nome de dez
pessoas e armazenar em um vetor.
Depois de feita a leitura de todos os nomes o
programa vai mostrar o contedo do vetor na tela.
Ateno para a forma de armazenamento dos
valores lidos.
Ao invs de usar uma varivel comum para
armazenar o valor lido, vamos usar uma posio do
vetor.

33
Manipulando vetores
Exemplo 2:
Cdigo:
01 import java.util.Scanner;
02
03 public class ExemploVetor2 {
04
05 public static void main(String[] args) {
06 Scanner e = new Scanner(System.in);
07 int i = 0;
08 String nomes[] = new String[10];
09 System.out.print("Digite dez nomes: ");
10 for (i = 0; i < 10; i++)
11 nomes[i] = e.next();
12 for (i = 0; i < 10; i++)
13 System.out.println(nomes[i]);
14 }
15
16 } 34
Manipulando vetores
Exemplo 3:
Nosso exemplo 2 ficou bom, porm, podemos
melhor-lo dando ao usurio a possibilidade de
escolher quantos nomes ele quer digitar.
Para fazer isso, precisamos primeiramente ler uma
varivel onde o usurio vai informar a quantidade
de nomes.
Esta varivel vai indicar o tamano do vetor,
portanto, ela deve ser utilizada na inicializao do
mesmo.

35
Manipulando vetores
Exemplo 3:
Esta varivel tambm ser utilizada para limitar a
estrutura de repetio.
O restante do programa funciona da mesma forma
como o exemplo anterior.
O cdigo est no prximo slide:

36
Manipulando vetores
Exemplo 3:
01 import java.util.Scanner;
02
03 public class ExemploVetor3 {
04
05 public static void main(String[] args) {
06 Scanner e = new Scanner(System.in);
07 int i = 0, quantos = 0;
08 String nomes[];
09 System.out.print("Quantos nomes vo ser digitados? ");
10 quantos = e.nextInt();
11 nomes = new String[quantos];
12 System.out.print("Digite os " + quantos + " nomes: ");
13 for (i = 0; i < quantos; i++)
14 nomes[i] = e.next();
15 for (i = 0; i < quantos; i++)
16 System.out.println(nomes[i]);
17 }
18 37
19 }
Manipulando vetores
Exemplo 4:
Neste ltimo exemplo vamos permitir que o usurio
digite 10 inteiros nmeros aleatrios.
Os nmeros digitados sero armazenados em um
vetor.
Quando o usurio terminar a digitao o programa
deve mostrar a soma e a mdia de todos os
nmeros digitados.
Para isso precisamos percorrer o vetor para
calcular a soma, que um acumulador.
Cdigo no prximo slide: 38
Manipulando vetores
Exemplo 4:
01 import java.util.Scanner;
02
03 public class ExemploVetor4 {
04
05 public static void main(String[] args) {
06 Scanner e = new Scanner(System.in);
07 int i = 0, soma = 0;
08 int num[] = new int[10];
09 System.out.print("Digite dez nmeros: ");
10 for (i = 0; i < 10; i++)
11 num[i] = e.nextInt();
12 for (i = 0; i < 10; i++)
13 soma = soma + num[i];
14 System.out.println("Soma dos nmeros: " + soma);
15 System.out.println("Mdia dos nmeros: " + (soma/10));
16 }
17
18 } 39
O atributo length
Nos exemplos que vimos at aqui o tamanho
do vetor sempre era conhecido.
Esse tamanho ou era um valor esttico (como
10, por exemplo) ou uma varivel.
Conhecer esse tamanhopermitiu que a
estrutura de repetio percorresse o vetor todo,
sem problemas de ndices fora da faixa.
Porm, suponha que voc tenha um mtodo
para somar os valores de um vetor de inteiros.
40
O atributo length
O objetivo desse mtodo calcular a soma de
todos os nmeros em um vetor, independente
de seu tamanho.
O vetor recebido como parmetro pelo
mtodo.
Nesse caso, como saber o tamanho do vetor
para montar a estrutura de repetio?
Todas as variveis do tipo vetor em Java
possuem um atributo chamado length, que
corresponde justamente ao tamanho do vetor.
41
O atributo length
Podemos acessar este atributo com a seguinte
sintaxe:
01 <varivel_vetor>.length

42
O atributo length
Exemplo:
Neste exemplo vamos escrever um mtodo que
calcula a soma dos nmeros em vetores de
inteiros.
O mtodo deve receber o vetor como parmetro e
retornar a soma.

43
O atributo length
Exemplo:
Cdigo:
...
01 public int somarVetor(int vetor[]) {
02 int tamanho = vetor.length, soma = 0;
03 for (int i = 0; i < tamanho; i++)
04 soma += vetor[i];
05 return soma;
06 }
...

44
O atributo length
Exemplo:
Usando o mtodo criado aqui no exemplo 4 visto
anteriormente (cdigo no prximo slide):

45
O atributo length
01 import java.util.Scanner;
02
03 public class ExemploVetor4 {
04 public static int somarVetor(int vetor[]) {
05 int tamanho = vetor.length, soma = 0;
06 for (int i = 0; i < tamanho; i++)
07 soma += vetor[i];
08 return soma;
09 }
10
11 public static void main(String[] args) {
12 Scanner e = new Scanner(System.in);
13 int i = 0, soma = 0;
14 int num[] = new int[10];
15 System.out.print("Digite dez nmeros: ");
16 for (i = 0; i < 10; i++)
17 num[i] = e.nextInt();
18 soma = somarVetor(num);
19 System.out.println("Soma dos nmeros: " + soma);
20 System.out.println("Mdia dos nmeros: " + (soma/10));
21 }
22 46
23 }
Usando o for-each
Um vetor uma coleo de valores.
Nos slides anteriores aprendemos a percorrer
vetores usando a estrutura de repetio for.
O mesmo poderia ser feito com as estruturas
de repetio while e do-while.
Porm, o Java possui uma estrutura de
repetio que permite a manipulao de
colees de forma mais simples.
Esta estrutura o for-each (para-cada).
47
Usando o for-each
O for-each permite que o vetor seja percorrido
para a leitura dos seus valores.
A sintaxe a seguinte:
01 for (<tipo de dado do vetor> <varivel> : <vetor>) [{]
//comandos de manipulao do vetor
[}]

48
Usando o for-each
Abaixo seguem dois exemplos, um usando o
for tradicional e outro usando o for-each.
O objetivo das estruturas de deciso
percorrer um vetor de nmeros inteiros e fazer
a soma do seu contedo:
...
01 for (int i = 0; i < num.length; i++)
02 soma += num[i];
...

...
01 for (int valor : num)
02 soma += valor;
...
49
Usando o for-each
importante estar atento a um detalhe: a
varivel que representa cada elemento do vetor
no pode ser declarada fora do for-each.

50
3. Matrizes conceitos e
manipulao com Java

51
Matrizes
Tecnicamente, matrizes e vetores representam
o mesmo tipo de estrutura.
Para efeitos de nosso estudo, consideraremos
vetores as estruturas unidimensionais
estudadas at agora.
Chamaremos de matrizes os vetores
bidimensioais que estudaremos adiante.
Na verdade, matrizes podem ser
multidimensionais, porm, nosso foco aqui so
estruturas de duas dimenses.
52
Matrizes
Exemplos:
Um vetor (uma dimenso):
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
a

53
Matrizes
Exemplos:
Uma matriz (duas dimenses):

[0] [1] [2] [3] [4]


[0]

[1]
b
[2]

[3]

54
Matrizes
Como podemos ver no exemplo, uma matriz
bidimensional composta por linhas e colunas.
A combinao de ndices (linha, coluna) que
identifica qual a posio da matriz queremos
acessar.
Matrizes so muito teis para o
armazenamento de dados relacionados.
Veja um exemplo no pximo slide.

55
Matrizes
Exemplo de dados relacionados em uma
matriz:
Cada linha armazena os dados de um produto
diferente.
Cada coluna armazena uma informao especfica
do produto (cdigo, descrio, preo e estoque).
[0] [1] [2] [3]
[0] 001 Mouse ptico 20.00 80
[1] 002 Pendrive 16 GB 50.00 20

[2] 006 Disco rgido externo 1 TB 380.00 15

[3] 010 Teclado 20.00 50


56
Matrizes
Exemplo de dados relacionados em uma
matriz:
Para ler ou alterar, por exemplo, o preo do teclado
temos que acessar a posio (3, 2) da matriz.

57
Matrizes
Assim como em estruturas unidimensionais, os
ndices so extremamente importantes para
manipular matrizes.
Porm, agora teremos pares de ndices (duas
dimenses) e, para efeitos do nosso estudo,
consideraremos dessa forma:
O primeiro ndice representa a linha da matriz.
O segundo ndice representa a coluna da matriz.
Portanto, o par (4, 8) indica a linha 4, coluna 8
de uma matriz.
58
Declarao de matrizes
A declarao de matrizes no Java segue o
mesmo padro da declarao de vetores.
Porm, como se trata de uma estrutura
bidimensional, utilizaremos agora um par de
colchetes.
Exemplos:
...
01 int a[][];
...

...
01 String[][] b;
...
59
Inicializao de matrizes
Assim como os vetores, antes de serem
utilizadas as matrizes devem ser inicializadas.
A inicializao segue as mesmas regras dos
vetores, porm, agora com valores que vo
indicar a quantidade de linhas e colunas.

60
Inicializao de matrizes
Exemplos:
...
01 //Inicializando uma matriz de inteiros 10 x 20
02 int a[][] = new int[10][20];
...

...
01 //Inicializando uma matriz de texto 5 x 5
02 String b[][];
03 b = new String[5][5];
...

...
01 //Inicializando uma matriz de texto 3 x 2
02 String b[][] = {{"Joo", "8"}, {"Jos", "6"}, {"Maria", "10"}};
...
61
ndices em matrizes
A indexao de uma matriz bidimensional no
Java feita com base no ndice inicial zero.
Portanto, o ltimo ndice de uma dimenso
sempre n - 1, onde n o tamanho da
dimenso.
Em uma matriz 10 x 20, por exemplo, teremos:
Faixa de ndices da dimenso 1: 0 a 9.
Faixa de ndices da dimenso 2: 0 a 19.
A tentativa de acesso a um ndice inexistente
causa ArrayIndexOutOfBoundsException. 62
Acesso s posies da matriz
Para acessar posies especficas em uma
matriz bidimensional so necessrios dois
pares colchetes aps o identificador da
varivel.
O primeiro par de colchetes deve conter o
ndice da primeira dimenso. O segundo par, o
ndice da segunda dimenso.

63
Acesso s posies da matriz
Exemplo:
...
01 int a[][] = new int[10][10];
02 a[2][1] = 20; //Atribuindo o valor 20 para a posio (2, 1)
03 a[9][9] = 10; //Atribuindo o valor 10 para a posio (9, 9)
04 //Recuperando os valores das posies (2, 1) e (9, 9)
05 System.out.print(a[2][1] + a[9][9]);
...

64
Manipulando matrizes
Assim como em um vetor, temos que ter a
habilidade de percorrer matrizes para, entre
outras coisas:
Preencher com dados.
Ler os dados.
Fazer uma pesquisa.
Ordenar.
No caso de estruturas unidimensionais
fazemos isso geralmente utilizando uma
estrutura de repetio.
65
Manipulando matrizes
A lgica a mesma com matrizes, porm,
nesse caso temos duas dimenses para
percorrer.
Qual seria ento a lgica para percorrer uma
matriz toda?

66
Manipulando matrizes
Vamos pensar da seguinte forma:
Uma matriz composta por n linhas e m colunas.
Para percorr-la por completo, temos que acessar
todas as colunas da linha 0, todas as colunas da
linha 1 e assim por diante at a linha n - 1.
Portanto, para cada linha, temos que percorrer
todas as colunas.
Ento, temos que ter uma estrutura de repetio
que percorra todas as linhas e, dentro dela, outra
estrutura de repetio que percorra todas as
colunas de cada linha.
67
Manipulando matrizes
Exemplo 1:
Para exemplificar, vamos desenvolver um
programa que crie uma matriz 4 x 4.
O contedo de cada posio deve ser igual soma
dos ndices dessa posio.
Veja abaixo como deve ficar a matriz:
[0] [1] [2] [3]
[0] 0 1 2 3
[1] 1 2 3 4
[2] 2 3 4 5
[3] 3 4 5 6 68
01 public class ExemploMatriz1 {
02
03 public static void main(String[] args) {
04 // Declarando e inicializando a matriz
05 int matriz[][] = new int[4][4];
06 // O for abaixo percorre as linhas da matriz
07 for (int i = 0; i < 4; i++) {
08 // O for abaixo percorre cada coluna de uma linha
09 for (int j = 0; j < 4; j++)
10 matriz[i][j] = i + j;
11 }
12 // Imprimindo a matriz
13 for (int i = 0; i < 4; i++) {
14 if (i > 0) // Salta uma linha
15 System.out.println();
16 for (int j = 0; j < 4; j++) {
17 if (j > 0) // D um espao entre os dados
18 System.out.print(" ");
19 System.out.print(matriz[i][j]);
20 }
21 }
22 }
23 }

69
Manipulando matrizes
Exemplo 2:
No segundo exemplo vamos fazer algo mais
complexo.
Vamos armazenar em uma matriz os dados de n
alunos: nome, notas de trs provas e resultado
(aprovado ou reprovado).
O critrio para aprovao aproveitamento de 60%
na mdia das provas, considerando que cada uma
delas vale 10 pontos.
A princpio no vamos nos preocupar com a
validao dos dados, vamos apenas desenvolver a
lgica. 70
Manipulando matrizes
Exemplo 2:
Veja como deve ficar a nossa matriz:
[0] [1] [2] [3] [4]
[0] Zezinho 7 6 9 Aprovado

[1] Joozinho 6 5 5 Reprovado

[2] Uguinho 3 5 8 Reprovado

[3] Luizinho 10 8 9 Aprovado

... ... ... ... ... ...

71
Manipulando matrizes
Exemplo 2:
Primeiramente vamos ler os dados (nome, nota 1,
nota 2 e nota 3) armazenando-os na matriz.
Depois vamos calcular os resultados e coloc-los
na matriz.
Finalmente, vamos imprimir a matriz.

72
01 import java.util.Scanner;
02
03 public class ExemploMatriz2 {
04
05 public static void main(String[] args) {
06 Scanner e = new Scanner(System.in);
07 int qt = 0, r = 0;
08 float media = 0;
09 String m[][];
10 System.out.print("Quantos alunos? ");
11 qt = e.nextInt();
12 // Inicializando a matriz
13 m = new String[qt][5];
14 // for para percorrer as linhas da matriz
15 for (int i = 0; i < qt; i++) {
16 System.out.print("Digite o nome do aluno: ");
17 m[i][0] = e.next();
18 System.out.print("Digite as trs notas: ");
19 m[i][1] = String.valueOf(e.nextInt());
20 m[i][2] = String.valueOf(e.nextInt());
21 m[i][3] = String.valueOf(e.nextInt());
22 }

73
23 // for para calcular o resultado
24 for (int i = 0; i < qt; i++) {
25 r = Integer.parseInt(m[i][1]) +
26 Integer.parseInt(m[i][2]) +
27 Integer.parseInt(m[i][3]);
28 media = (float) r / 3;
29 if (media >= 6)
30 m[i][4] = "Aprovado";
31 else
32 m[i][4] = "Reprovado";
33 }
34 // Imprimindo a matriz
35 for (int i = 0; i < qt; i++) {
36 if (i > 0) // Salta uma linha
37 System.out.println();
38 for (int j = 0; j < 5; j++) {
39 if (j > 0) // D um espao entre os dados
40 System.out.print(" ");
41 System.out.print(m[i][j]);
42 }
43 }
44 }
45 }

74

You might also like