Академический Документы
Профессиональный Документы
Культура Документы
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
1
Entrada de dados
Um processo uma sequncia finita ordenada de passos que
transforma uma determinada matria prima. Quando a matria prima
usada no processo abstrata, isto , se apresenta na forma de valores
e quantidades, ento denomina-se de processamento de dados.
Quando o processamento realizado por um computador, a entrada
refere-se aos dados obtidos na forma bruta, que so colhidos do
mundo real atravs de um dispositivo de entrada, como por exemplo,
o teclado.
Classe Scanner
Em linguagens de programao estruturada, como C e Pascal, a
entrada de dados atravs do teclado realizada utilizando
subprogramas desenvolvidos para esta finalidade. Em C, por
exemplo, tem-se a funo scanf() e em Pascal, o procedimento
readln().
Na linguagem Java, a partir do Java 1.5 ou Java 5.0, o pacote de
classes java.util disponibilizou a classe Scanner, que implementa
operaes de entrada de dados pelo teclado.
A classe Scanner possui vrios mtodos que possibilitam a entrada
de dados de diferentes tipos, entre eles destacam-se:
String next() retorna uma cadeia de caracteres simples que no
usa o caractere espao em branco.
double nextDouble() retorna um nmero em notao de ponto
flutuante normalizada em preciso dupla de 64 bits (usado para
receber valores reais ou monetrios).
boolean hasNextDouble() retorna true se o prximo dado de
entrada pode ser interpretado como um valor double.
int nextInt() retorna um nmero inteiro de 32 bits.
boolean hasNextInt() retorna true se o prximo dado de entrada
pode ser interpretado como um valor int.
String nextLine() retorna uma cadeia de caracteres, por exemplo,
DevMedia - Canal Java.
long nextLong() retorna um nmero inteiro de 64 bits.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
2
Para utilizar a classe Scanner em uma aplicao Java deve-se
proceder da seguinte maneira:
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
3
cdigo desta classe foi implementado como usar o mtodo nextInt()
na entrada de dados numricos do tipo inteiro (int) utilizados na
realizao das operaes matemticas fundamentais.
System.out.printf("\nResultados:\n");
System.out.printf("%d + %d = %3d\n", a, b, (a + b));
System.out.printf("%d - %d = %3d\n", a, b, (a - b));
System.out.printf("%d * %d = %3d\n", a, b, (a * b));
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
4
objeto Scanner denominado ler e (3) entrada de dados (lendo um
valor inteiro); necessrias para utilizar a classe Scanner na entrada de
dados do tipo inteiro (int).
A Figura 2 ilustra a execuo da classe Exemplo1.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
5
Listagem 2. Esvaziando o buffer de entrada de dados.
import java.util.Scanner;
System.out.printf("\nResultado:\n");
System.out.printf("%s tem %d anos.\n", nome, idade);
}
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
6
Lendo um caractere
Diferentemente do que ocorre com os tipos base int e double, a
classe Scanner no oferece um mtodo especfico para a leitura de
dados do tipo caractere (char). Assim, para ler um caractere deve-se
utilizar o mtodo read() da classe System atravs do fluxo de entrada
de dados padro System.in, como implementado na classe Exemplo3,
apresentada na Listagem 3.
Listagem 3. Entrada de dados do tipo caractere.
import java.io.IOException;
import java.util.Scanner;
System.out.printf("Informe um nome:\n");
// entrada de dados (lendo uma String)
nome = ler.nextLine();
System.out.printf("\nResultado:\n");
if ((sexo == 'M') || (sexo == 'm'))
System.out.printf("Seja bem vindo Sr. \"%s\".\n", nome);
else System.out.printf("Seja bem vinda Sra. \"%s\".\n", nome);
}
}
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
7
A Figura 4 ilustra a execuo da classe Exemplo3.
char sexo;
double h, psIdeal;
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
8
O cdigo fonte, apresentado na Listagem 4, implementa comandos
de entrada de dados para efetuar a leitura do sexo e da altura (como
um valor em metros, varivel h) de uma pessoa. Estes dados sero
aplicados para calcular o peso ideal nas seguintes frmulas:
Para homens, peso ideal = (72,7 * h) - 58;
Para mulheres, peso ideal = (62,1 * h) - 44,7.
Sada de dados
Como j informado, no processamento de dados, a entrada refere-se
etapa em que os dados so colhidos do mundo real, externo ao
computador e o processo refere-se a uma srie finita de operaes
que so realizadas a partir destes dados, a fim de transform-los em
alguma informao desejada disponibilizada ao usurio final atravs
de um dispositivo de sada, por exemplo, o monitor de vdeo.
Mtodo printf()
Uma sada pode ser composta por informaes textuais individuais
e na forma de tabelas, valores numricos resultantes de clculos,
constantes e pelo contedo de variveis definidas no programa. Estas
informaes ou resultados so apresentados, principalmente, na tela
do computador e servem para verificar se o problema foi resolvido
corretamente.
A classe System oferece atributos e mtodos que possibilitam obter
uma referncia s operaes de entrada e sada. O atributo esttico
out, por exemplo, representa o fluxo padro de sada de dados. J o
mtodo printf(), incorporado a classe System a partir do Java 1.5,
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
9
permite exibir dados formatados de forma equivalente a funo de
sada printf da linguagem C.
O mtodo printf() utilizado para realizar uma sada de dados no
fluxo de sada padro System.out tem a seguinte forma geral:
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
10
contedo da prpria cadeia deve-se transform-lo em um caractere de
escape, alterando assim sua finalidade inicial. A Tabela 2 mostra os
principais caracteres de escape, que so sempre iniciados por uma
barra invertida (\).
Caractere de
escape Significado
\n Nova linha.
\t Tabulao horizontal (o mesmo que pressionar a tecla
Tab).
\ Aspas dupla.
\\ Barra invertida.
Tabela 2. Principais caracteres de escape.
resultado:
Varivel 'a' = 1
Varivel 'b' = 10
Varivel 'c' = 100
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
11
b) %8.2f - indica que um nmero de ponto flutuante ser mostrado
justificado direita dentro de um campo de sada de tamanho oito e
com duas casas decimais de preciso fazendo arredondamentos
(%8.2f mostram valores no formato 99999,99):
double a = 135.4528;
double b = 23050.568;
double c = 5.0;
resultado:
Varivel 'a' = 135,45
Varivel 'b' = 23050,57
Varivel 'c' = 5,00
Cdigo Significado
- Alinha o valor esquerda dentro do campo de sada.
+ Coloca sinal em valores numricos.
0 Completa o campo de sada com zeros esquerda.
, Usa o separador de milhares: ponto na notao brasileira e
vrgula na notao americana.
( Mostra nmeros negativos entre parnteses.
Tabela 3. Cdigos adicionais na formatao de sadas.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
12
Listagem 5. Tabuada de um nmero.
import java.util.Scanner;
System.out.printf("\n+--Resultado--+\n");
for (i=1; i<=10; i++) {
System.out.printf("| %2d * %d = %2d |\n", i, n, (i*n));
}
System.out.printf("+-------------+\n");
}
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
13
A classe Exemplo6, mostrada na Listagem 6, imprime uma tabela
com os nomes dos doze meses do ano.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
14
A classe Exemplo7, mostrada na Listagem 7, imprime os valores
armazenados em uma varivel do tipo vetor (varivel v), como pode
ser observado atravs da sua execuo apresentada na Figura 8.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
15
por exemplo:
int a = 10;
int b = 5;
resultado:
Var. 'a' = 10
Var. 'b' = java.util.IllegalFormatConversionException
resultado:
Nascido: 30/11/java.util.MissingFormatArgumentException
System.out.println(String);
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
16
A diferena entre os mtodos print() e println() acontece uma vez
que o mtodo println() sempre pular uma linha (ln, line new) aps
mostrar o valor do seu argumento.
A aplicao Java que calcula o fatorial de um nmero, apresentada
na Listagem 8, mostra um exemplo de como usar os mtodos print()
e println() para exibir resultados em uma operao de sada de dados
usando o monitor de vdeo.
System.out.println();
System.out.println("Resultado:");
System.out.print(n + "! = ");
f = 1;
for (i=n; i>=1; i--) {
if (i != 1)
System.out.print(i + " * ");
else System.out.print(i + " = ");
f = f * i;
}
System.out.println(f);
}
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
17
Figura 9. Resultado da execuo da classe Exemplo8.
Concluses
Neste artigo foram apresentados os conceitos fundamentais
relacionados ao processamento de dados que corresponde
utilizao do computador na soluo lgica de problemas. O
processamento transforma os dados na forma bruta (entradas)
produzindo informaes teis como resultados (sadas).
As operaes de entrada de dados foram implementadas usando os
mtodos da classe Scanner do pacote java.util. Inicialmente foram
relacionados os passos para importar o pacote, instanciar e criar um
objeto de leitura e a utilizao do mtodo adequado na entrada de
dados. A seguir foi destacada a necessidade de esvaziar o buffer do
teclado em uma entrada consecutiva de dados numricos e cadeia de
caracteres. A etapa de entrada de dados foi concluda apresentando
como deve ser realizada a leitura de dados do tipo caractere.
As formas para exibir as informaes produzidas pelo
processamento de dados foram estudadas atravs dos mtodos
printf(), print() e println() da classe System. O maior destaque foi dado
ao mtodo printf() que possibilita a formatao da sada atravs da
utilizao de cdigos de controle e caracteres de escape na
implementao.
Entrada e sada de dados representam etapas fundamentais do
processamento de dados uma vez que as aplicaes em geral
implementam algum tipo de interao com o usurio solicitando
dados de entrada para transform-los em informaes teis como
resposta.
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
18
O que foi abordado no artigo:
Operaes de entrada de dados, usando os mtodos da classe
Scanner e sada, atravs dos mtodos da classe System.
Resumindo:
Em uma aplicao Java, entrada se refere aos dados recebidos do
mundo externo ao computador e sada os resultados do
processamento que so apresentados aos usurios finais.
Links
Documentao completa da classe Scanner.
download.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html
Prof. Omero Francisco Bertol. Java em Artigos Tcnicos: 1. Comandos de Entrada e Saida.
19