Beruflich Dokumente
Kultur Dokumente
*/
1. Arrays Unidimensionais
S�o arrays com uma dimens�o, possuem apenas um �ndice para acessar seu conte�do.
Exemplos:
. int N[]=new int [100]; - cria um array de nome N que cont�m 100 elementos do
tipo int e seu �ndice varia de 0 a 99.
. String mes[]=new String[12]; - cria um array de nome mes que cont�m 12 elementos
do tipo string e seu �ndice varia de 0 a 11.
N[0] = 100;
N[52] = 38;
mes[0] = �Janeiro�;
mes[11] = �Dezembro�;
import java.io.*;
import java.text.DecimalFormat;
class C10EX01 {
public static void main(String args[]) {
System.out.println();
MEDIA = SOMA / 8;
System.out.println();
System.out.println("Media Geral = " + df.format(MEDIA));
}
}
Este novo programa tem por objetivo fazer a leitura de dez elementos de um arranjo
A unidimensional e construir um arranjo B do mesmo tipo observando que: se o valor
do �ndice for par, o valor deve ser multiplicado por 5; e se for �mpar, deve ser
somado com 5.
Ao final mostra os conte�dos dos 2 arranjos.
import java.io.*;
class C10EX02 {
public static void main(String args[]) {
int I;
// Entrada de dados
System.out.println();
for (I = 0; I <= 9; I++) {
System.out.print("Entre o " + (I + 1) + "o. elemento: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = Integer.parseInt(br.readLine()); }
catch (Exception e) {
A[I] = 0;
}
}
System.out.println();
for (I = 0; I <= 9; I++)
System.out.println("A[" + (I + 1) + "] = " + A[I]);
System.out.println();
for (I = 0; I <= 9; I++)
System.out.println("B[" + (I + 1) + "] = " + B[I]);
}
}
import java.io.*;
class C10EX03 {
public static void main(String args[]) {
// Entrada de dados
System.out.println();
for (I = 0; I <= 4; I++) {
System.out.print("Entre o " + (I + 1) + "o. elemento: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = Integer.parseInt(br.readLine()); }
catch (Exception e) {
A[I] = 0;
}
}
System.out.println();
System.out.println("Soma = " + SOMA);
}
}
Ordena��o de Arrays
import java.io.*;
class C10EX04 {
public static void main(String args[]) {
// Entrada de dados
System.out.println();
for (I = 0; I <= 4; I++) {
System.out.print("Entre o " + (I + 1) + "o. elemento: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = Integer.parseInt(br.readLine()); }
catch (Exception e) {
A[I] = 0;
}
}
// Processamento ordenacao
System.out.println();
for (I = 0; I <= 4; I++)
System.out.println((I + 1) + "o. valor = " + A[I]);
}
}
import java.io.*;
class C10EX05 {
public static void main(String args[]) {
String A[] = new String[5], X;
int I, J;
// Entrada de dados
System.out.println();
for (I = 0; I <= 4; I++) {
System.out.print("Entre o " + (I + 1) + "o. nome: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = br.readLine(); }
catch (Exception e) {
A[I] = "";
}
}
// Processamento ordenacao
System.out.println();
for (I = 0; I <= 4; I++)
System.out.println((I + 1) + "o. nome = " + A[I]);
}
}
Pesquisa em Arrays
import java.io.*;
class C10EX06 {
public static void main(String args[]) {
System.out.println();
for (I = 0; I <= 9; I++) {
System.out.print("Entre o " + (I + 1) + "o. elemento: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = Integer.parseInt(br.readLine()); }
catch (Exception e) {
A[I] = 0;
}
}
// Pesquisa de dados
do {
System.out.println();
System.out.print("Entre o valor a ser pesquisado: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
PESQ = Integer.parseInt(br.readLine()); }
catch (Exception e) {
PESQ = 0;
}
I = 0;
ACHA = 0;
while (I <= 9 & ACHA == 0)
if (PESQ == A[I])
ACHA = 1;
else
I++;
if (ACHA == 1)
System.out.print(PESQ + " localizado na posicao " + (I + 1));
else
System.out.print(PESQ + " nao foi localizado");
System.out.println();
System.out.println();
System.out.println("Continua? [S]im / [N]ao + <Enter>.");
System.out.print("Ou <Enter> para 'Nao': ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
RESP = br.readLine(); }
catch (Exception e) {
RESP = "";
}
RESP = RESP.toUpperCase(); }
}
}
M�todo de Pesquisa Bin�ria
Este m�todo exige que o array esteja previamente ordenado, divide o array em 2
partes e procura saber se a informa��o a ser pesquisada est� na posi��o que marca
o meio da divis�o.
Se estiver, ent�o achou e encerra o processo. Mas caso n�o esteja, o modelo
verifica se o conte�do da busca est� acima ou abaixo da linha que marca a divis�o
da tabela.
Vejamos como exemplo o programa abaixo que usa este m�todo de pesquisa para
localizar um nome em um array de 10 elementos.
import java.io.*;
class C10EX07 {
public static void main(String args[]) {
// Entrada de dados
System.out.println();
for (I = 0; I <= 9; I++) {
System.out.print("Entre o " + (I + 1) + "o. nome: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
A[I] = br.readLine(); }
catch (Exception e) {
A[I] = "";
}
}
// Processamento ordenacao
for (I = 0; I <= 8; I++)
for (J = I + 1; J <= 9; J++)
if (A[I].compareTo(A[J]) > 0) {
X = A[I];
A[I] = A[J];
A[J] = X;
}
System.out.println();
System.out.print("Entre o valor a ser pesquisado: ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
PESQ = br.readLine(); }
catch (Exception e) {
PESQ = "";
}
COMECO = 0;
FINAL = 9;
MEIO = 0;
ACHA = 0;
while (COMECO <= FINAL & ACHA == 0) {
MEIO = (COMECO + FINAL) / 2;
if (PESQ.compareTo(A[MEIO]) == 0)
ACHA = 1;
else
if (PESQ.compareTo(A[MEIO]) < 0)
FINAL = MEIO - 1;
else
COMECO = MEIO + 1;
}
if (ACHA == 1)
System.out.print(PESQ + " esta na posicao " + (MEIO + 1));
else
System.out.print(PESQ + " nao foi localizado");
System.out.println();
System.out.println();
System.out.println("Continua? [S]im / [N]ao + <Enter>.");
System.out.print("Ou <Enter> para 'Nao': ");
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
RESP = br.readLine(); }
catch (Exception e) {
RESP = "";
}
RESP = RESP.toUpperCase(); }
}
}
ARRAY Bidimensional
Uma estrutura de dados do tipo array pode tamb�m ser composta por mais de uma
coluna. Neste caso, este ser� um array bidimensional, ou seja, uma tabela que pode
ser formada por v�rias linhas e colunas.
import java.io.*;
import java.text.DecimalFormat;
class C10EX08 {
public static void main(String args[]) {
System.out.println();
System.out.println("Aluno Nota1 Nota2 Nota3 Nota4");
System.out.println("-----------------------------");
System.out.println();
}
}
ARRAY de Argumentos
Observe o c�digo de programa: public static void main(String args[]) que estamos
usando em todos os programas desenvolvidos.
import java.io.*;
class C10EX09 {
public static void main(String args[]) {
int F = 1, I = 1, N;
N = Integer.parseInt(args[0]);
for (I = 1; I <= N; I++)
F *= I;
System.out.println(F);
}
}
O pr�ximo programa tem por finalidade passar com par�metro 4 valores representando
as notas escolares de um aluno para ent�o o programa calcular a m�dia do aluno e
indicar se ele foi aprovado ou reprovado.
import java.io.*;
import java.text.DecimalFormat;
class C10EX10 {
public static void main(String args[]) {
float N1, N2, N3, N4, MD;
DecimalFormat df = new DecimalFormat("0.00");
N1 = Float.parseFloat(args[0]);
N2 = Float.parseFloat(args[1]);
N3 = Float.parseFloat(args[2]);
N4 = Float.parseFloat(args[3]);
MD = (N1 + N2 + N3 + N4) / 4;
if (MD >= 5)
System.out.print("Aluno Aprovado com Media ");
else
System.out.print("Aluno Reprovado com Media ");
System.out.println(df.format(MD));
}
}
Obs: para usar o BlueJ os par�metros dever�o ser passados como
{(�5�,�6�,�7.5�,�8.3�)}
Neste caso podemos tratar esta exce��o com um bloco try / catch. Vejamos o
programa abaixo:
import java.io.*;
import java.text.DecimalFormat;
class C10EX11 {
public static void main(String args[]) {
try {
N1 = Float.parseFloat(args[0]);
N2 = Float.parseFloat(args[1]);
N3 = Float.parseFloat(args[2]);
N4 = Float.parseFloat(args[3]);
MD = (N1 + N2 + N3 + N4) / 4;
if (MD >= 5)
System.out.print("Aluno Aprovado com Media ");
else
System.out.print("Aluno Reprovado com Media ");
System.out.println(df.format(MD)); }
catch (ArrayIndexOutOfBoundsException aioobe) {
System.out.println();
System.out.println("Forneca: C10EX10 A B C D");
System.out.println("Onde, A B C D sao notas escolares.");
}
}
}
Exerc�cios de Fixa��o:
a) Ler 2 arrays A e B com valores inteiros cada uma de duas dimens�es com 5
linhas e 3 colunas. Construir um array C de mesma dimens�o, a qual � formada pela
soma dos elementos do array A com os elementos do array B. Apresentar os elementos
do array C.