Buscar

05- LTP1 EntradaESaida - Slides

Prévia do material em texto

Linguagem e Técnicas de 
Programação
Centro Universitário do Pará Centro Universitário do Pará –– CesupaCesupa
Área de Ciências Exatas e TecnologiaÁrea de Ciências Exatas e Tecnologia
08 – Entrada e Saída
O comando import
• O comando import serve para informar que o 
programa atual poderá acessar classes (e 
elementos) externos
• Isso facilita a vida do programador, pois alguns • Isso facilita a vida do programador, pois alguns 
códigos são repetitivos e não é necessário 
reescrevê-los em cada novo programa
• Reutilização de software
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 2
Formatação de valores de saída
• Podemos usar a classe DecimalFormat para 
formatar a aparência (layout) dos valores 
numéricos na saída dos dados
• Precisamos acrescentar na primeira linha do 
programa o comando programa o comando 
import java.text.DecimalFormat; 
para poder usar o formatador
• O formatador precisa ser configurado com a 
String de layout
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 3
Exemplo05
DecimalFormat
//Aviso ao programa que iremos usar o DecimalFormat
import java.text.DecimalFormat;
public class Exemplo05{ 
public static void main (String args[]){
float valor = 3475.1f;
DecimalFormat formatador; //variável formatadora
formatador = new DecimalFormat("#,##0.00"); //Layout
String valorFormatado = formatador.format(valor); //Formatação
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 4
String valorFormatado = formatador.format(valor); //Formatação
System.out.print("Sem formatação: ");
System.out.println("Preço R$ " + valor);
System.out.print("Com formatação: ");
System.out.println("Preço R$ " + valorFormatado);
}
}
Saída:
Sem formatação: Preço R$ 3475.1
Com formatação: Preço R$ 3.475,10
Exemplos de formatações
• Usamos os seguintes símbolos para formatar 
os números com DecimalFormat
Símbolo Significado
0 Obriga o dígito a aparecer, mesmo que seja zero
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 5
0 Obriga o dígito a aparecer, mesmo que seja zero
# Mostra o dígito se não for zero
. Separador decimal
, Separador de grupo (1.000.000)
% Multiplica por 100 e mostra como percentual.
Entrada e saída de dados
• A linguagem Java oferece diversas maneiras 
de interação para entrada e saída de dados 
nos programas
• O tipo padrão de entrada de dados é String, • O tipo padrão de entrada de dados é String, 
ou seja, tudo o que recebermos em um 
programa deve ser internamente convertido 
para o tipo de destino antes de ser usado
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 6
Formas de entrada e saída de dados
• Veremos as seguintes técnicas de entrada e 
saída de dados:
– Passagem de parâmetros (terminal)
– BufferedReader (terminal)– BufferedReader (terminal)
– Scanner (terminal)
– JOptionPane (interface gráfica)
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 7
Passagem de parâmetros
• Uma aplicação em Java pode receber valores a partir 
da linha de comando do prompt de comandos, isto é, 
no momento em que ele é executado
• Esses valores são chamados de argumentos ou 
parâmetrosparâmetros
• Quando um parâmetro é recebido por um programa, 
ele pode ser manipulado internamente e usado em 
um procedimento qualquer
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 8
Exemplo06
Passagem de parâmetros
public class Exemplo06{ 
public static void main (String args[]){
System.out.println("Primeiro argumento: "+args[0]);
//imprime o 1º argumento na tela
System.out.println("Segundo argumento: "+args[1]);
//imprime o 2º argumento na tela
}
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 9
}
}
Primeiro argumento: Linguagem
Segundo argumento: Java
Como executar
• Ao digitar esta linha de comando, obviamente 
depois de o programa ter sido compilado, o 
programa irá imprimir na tela os dois 
argumentos inseridos pelo usuárioargumentos inseridos pelo usuário
• Essas palavras são passadas ao programa por 
meio do vetor args existente na linha do 
método main (String args[])
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 10
Argumentos
• A variável args é um vetor de String que possui o 
primeiro elemento do vetor com índice 0 (zero)
• Sendo assim, cada palavra digitada na linha de 
comando, separada por um espaço, será armazenada 
em um índice do vetor args (args[0] armazena o em um índice do vetor args (args[0] armazena o 
primeiro argumento String, args[1] o segundo e 
assim sucessivamente)
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 11
args[0] args[1] args[2] args[3] args[4] ... args[n]
Parâmetro 1 Parâmetro 2 Parâmetro 3 Parâmetro 4 Parâmetro 5 ... Parâmetro 
(n-1)
Exemplo07
Cálculo de média
public class Exemplo07{
public static void main (String args[]){
double nota1, nota2, media;
nota1 = Double.parseDouble(args[0]);
nota2 = Double.parseDouble(args[1]);
media = (nota1+nota2)/2;
System.out.println("Media = "+ media);
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 12
System.out.println("Media = "+ media);
}
}
Media = 7.75
BufferedReader
• É uma técnica que usa principalmente a classe 
BufferedReader para efetivar a entrada de 
dados
• É necessário usar a técnica de tratamento de • É necessário usar a técnica de tratamento de 
exceções que previne o cancelamento da 
execução do programa quando situações de 
exceção ocorrem
• É necessário usar o comando 
import java.io.*;
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 13
Exemplo08
BufferedReader
import java.io.*;
public class Exemplo08{
public static void main (String args[]) throws Exception {
String s=""; //variável para receber os valores em forma de String
float nota1=0, nota2=0, media=0; //valores para cálculo
//preparação das entradas
BufferedReader dado; 
dado = new BufferedReader(new InputStreamReader(System.in));
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 14
dado = new BufferedReader(new InputStreamReader(System.in));
//entrada do primeiro valor
System.out.print("Entre com a nota 1: ");
s=dado.readLine();
nota1=Float.parseFloat(s);
//entrada do segundo valor
System.out.print("Entre com a nota 2: ");
s=dado.readLine();
nota2=Float.parseFloat(s);
media=(nota1+nota2)/2; //cálculo da média
System.out.println("Media : "+ media);
}
}
Scanner
• A classe Scanner é uma alternativa à classe 
BufferedReader
• Método de entrada de dados para uso com 
terminal mais simples que a classe 
BufferedReaderBufferedReader
• Nesse caso a entrada de valores fracionário se 
faz com o uso de vírgulas
• É necessário usar o comando 
import java.util.Scanner;
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 15
Exemplo09
Scanner
import java.util.Scanner;
public class Exemplo09{
public static void main (String args[]){ 
double nota1, nota2, media;
Scanner dado = new Scanner(System.in);
System.out.print("Entre com a nota 1: ");
nota1 = dado.nextDouble();
System.out.print("Entre com a nota 2: ");
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 16
System.out.print("Entre com a nota 2: ");
nota2 = dado.nextDouble();
media = (nota1+nota2)/2;
System.out.println("Media = "+ media);
}
}
JOptionPane
• É uma técnica de entrada e saída de dados que usa elementos 
de interface gráfica amigável ao usuário
• É necessário usar o comando
import javax.swing.JOptionPane;
• Possui dois métodos que usaremos:• Possui dois métodos que usaremos:
– JOptionPane.showMessageDialog( )
• para saída de dados
– JOptionPane.showInputDialog( )
• para entrada de dados
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 17
Exemplo10
JOptionPane
import javax.swing.JOptionPane;
public class Exemplo10{
public staticvoid main (String args[]){ 
double nota1, nota2, media;
String dado;
dado = JOptionPane.showInputDialog( "Digite a primeira nota" );
nota1 = Double.parseDouble(dado);
dado = JOptionPane.showInputDialog( "Digite a segunda nota" );
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 18
dado = JOptionPane.showInputDialog( "Digite a segunda nota" );
nota2 = Double.parseDouble(dado);
media = (nota1+nota2)/2;
JOptionPane.showMessageDialog(null, "Média = " + media,
"Resultado",JOptionPane.PLAIN_MESSAGE );
System.exit( 0 ); 
}
}
Variações do JOptionpane
JOptionPane.showMessageDialog(null, ”Texto”)
• Mostra a caixa de diálogo com o “Texto” 
aparecendo no meio da janela.
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 19
Variações do JOptionpane
JOptionPane.showMessageDialog(null, ”Texto”, “Título”, 
JOptionPane.PLAIN_MESSAGE)
• Mostra a caixa de diálogo com o “Texto” aparecendo no meio 
da janela que tem o título alterado para “Título” e o termo 
JOptionPane.PLAIN_MESSAGE, que é o tipo de janela, faz com JOptionPane.PLAIN_MESSAGE, que é o tipo de janela, faz com 
que não apareça a figura da janela
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 20
Variações do JOptionpane
JOptionPane.showMessageDialog (null, "Texto", "Título", 
JOptionPane.INFORMATION_MESSAGE, new ImageIcon
("C:/figura.jpg"));
• Mostra a caixa de diálogo com o “Texto” aparecendo no meio 
da janela que tem o título alterado para “Título” e aparece a 
figura indicada pelo endereço “c:/figura.jpg”figura indicada pelo endereço “c:/figura.jpg”
• Este endereço pode ser alterado para o endereço de qualquer 
figura desejada. Observe que a barra “/” no endereço é a 
barra normal
• Acrescente a linha abaixo no início do programa
import javax.swing.ImageIcon; 
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 21
Tipo da janela
• Existem 5 tipos de caixa de diálogo pré-
definidos no JOptionPane
• Eles são:
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 22
O que foi visto
• import
• DecimalFormat
• Entrada e saída de dados
• Parâmetros• Parâmetros
• BufferedReader
• Scanner
• JOptionPane
Professor RicardoCasseb | rcasseb@gmail.com | @rcasseb 23

Continue navegando