ProgramaçãodeComputadoresII
TCC‐00174Profs.:AnselmoMontenegro(1)&MarcosLage(2)
(1)www.ic.uff.br/~anselmo(2)www.ic.uff.br/~mlage
Conteúdo:EntradaeSaídadedados.
In/Out
EmJavaexistemdiversasformasdetratarmosaentradaesaídadedados:
Atravésdatela(console); Atravésdejanelasgráficas(diálogos); Atravésdearquivos; Etc...
24/08/11 ProgramaçãodeComputadoresII 2
Introdução
Consoleediálogos
In/Out
Nosacostumamosaescreverlinhasdecódigocomo:System.out.println(“NomedoAluno:”+nome);System.out.println(“VelocidadedoCarro:”+10);
Quando desejamos precisamos enviarmensagens ao usuário atravésdoconsole.“Console”=“commandwindow”(Windows)
=“terminal”(Linux,Mac)OTermosaídapadrão(stdout)serefereaeste\podesaídadedados.
24/08/11 ProgramaçãodeComputadoresII 3
Introdução
In/Out
O objeto System.out gerencia a tarefa de escrevermos a saída doprogramanodisposi\vodesaídapadrão.
Obs:Esteobjetoéautoma\camentecriadopeloJava.Controladopor2métodos:print():Imprimeumasaídanoconsole.println():Imprimeumasaídanoconsoleepulaumalinha.
24/08/11 ProgramaçãodeComputadoresII 4
Escrevendonasaídapadrão
In/Out
OsmétodosSystem.out.print[ln]podemrecebercomoargumento: UmaString
System.out.print(“Entrecomonúmerodetentativas”);
Umnúmeroouumavariávelintx=56;System.out.print(x);System.out.println(18.45);
Combinaçõesdoscasosanterioresfloatmedia=calculaMedia();System.out.println(“Amédiadaprovafoi:”+media);
24/08/11 ProgramaçãodeComputadoresII 5
Escrevendonasaídapadrão
In/Out
Obs:Usamosooperador+paracombinarmosítemnasaída.Ex:1.floatmedia=calculaMedia();...System.out.print(“Alunoscomnotaacimade”);System.out.print(media);System.out.print(“estãoaprovados\n”);2.floatmedia=calculaMedia();...System.out.println(“Alunoscomnotaacimade”+media+“estãoaprovados”);
24/08/11 ProgramaçãodeComputadoresII 6
Escrevendonasaídapadrão
In/Out
24/08/11 ProgramaçãodeComputadoresII 7
Lendodaentradapadrão
OobjetoSystem.ingerencia a tarefa de lermos dadps a par\r dodisposi\vodeentradapadrão.
Obs:Esteobjetoéautoma\camentecriadopeloJava.OTermoentradapadrão(stdin)serefereaentradadedadosapar\rdoconsole.
In/Out
24/08/11 ProgramaçãodeComputadoresII 8
Lendodaentradapadrão
Ouso do objetoSystem.inémais complexo que odoSystem.out:OobjetoSystem.inlêumbitporvez.
Tipicamentedesejaremoslermaisdeumbitporvez.
In/Out
24/08/11 ProgramaçãodeComputadoresII 9
Lendodaentradapadrão
Passoàpassoparaaleituradeumalinha:Passo1:Criarumobjetodo\poInputStreamReaderLeiturabitabitPasso2:Criarumobjetodo\poBufferedReaderLeituradeumalinhadetexto(atéumcaracter‘\n’)Passo3:UsarométodoreadLinedaclasseBufferedReder.
In/Out
24/08/11 ProgramaçãodeComputadoresII 10
Lendodaentradapadrão
importjava.io.*;...publicstaticvoidmain(String[]args){InputStreamReaderin=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(in);Stringname,ageStr;System.out.println(“Qualoseunome?”);name=br.readLine();System.out.println(“Qualsuaidade?”);ageStr=br.readLine();}
In/Out
24/08/11 ProgramaçãodeComputadoresII 11
Lendodaentradapadrão
LeituradedadosnuméricosNo exemplo anterior, a idade é um dado numérico.Entretanto,aleituratrataovalorcomoumaString:ageStr=br.readLine();Precisamosconverternúmerosmanualmente:Inteiros:Integer.parseInt();Float:Float.parseFloat();...
In/Out
24/08/11 ProgramaçãodeComputadoresII 12
Lendodaentradapadrão
importjava.io.*;...publicstaticvoidmain(String[]args){InputStreamReaderin=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(in);Stringname,ageStr;System.out.println(“Qualoseunome?”);name=br.readLine();System.out.println(“Qualsuaidade?”);ageStr=br.readLine();intage=Integer.parseInt(ageStr);...}
In/Out
24/08/11 ProgramaçãodeComputadoresII 13
ClasseScanner
OJava incluiumaclasseparatornaraentradaviatecladomaissimples:ScannerPara usarmos a classe Scanner precisamos docomando:importjava.util.Scanner
In/Out
24/08/11 ProgramaçãodeComputadoresII 14
ClasseScanner
Para criar um objeto da classe Scanner devemosindicaroobjetoSystem.in:Scannerkeyboard=newScanner(System.in);
In/Out
24/08/11 ProgramaçãodeComputadoresII 15
ClasseScanner
AclasseScannercontémmétodosparaaleitura:Devaloresinteiros:intidade=keyboard.nextInt();Devaloresdouble:floatpreco=keyboard.nextFloat();DevaloresString:Stringword1=keyboard.next();Dapróximalinha:Stringline=keyboard.nextLine();obs:aleituradalinhaacabaemumcaracter‘\n’
In/Out
24/08/11 ProgramaçãodeComputadoresII 16
ClasseScanner
Entradas mul\plas devem ser separadas porWhitespaces e lidas por mul\plas chamandas dométodoapropriado:Whitespaces são string de caracteres tais como:espaço,tabulaçõesequebrasdelinha.
In/Out
24/08/11 ProgramaçãodeComputadoresII 17
ClasseScanner
Ex:Dadoocódigo:Stringword1=keyboard.next();Stringword2=keyboard.next();Eaentradaviateclado:casacarroOvalordeword1serácasa,eovalordeword2serácarro.
In/Out
24/08/11 ProgramaçãodeComputadoresII 18
CasseScanner
importjava.io.*;...publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);Stringname;System.out.println(“Qualoseunome?”);name=in.next();intage;System.out.println(“Qualsuaidade?”);age=in.nextInt();}
In/Out
24/08/11 ProgramaçãodeComputadoresII 19
ClasseScanner
Desafio:DadooCódigo:Scannerkeyboard=newScanner(System.in);intn=keyboard.nextInt();Strings1=keyboard.nextLine();Strings2=keyboard.nextLine();Eaentrada:2Carrossãomaiscarosque1Casa.Quaisosvaloresden,s1es2?
In/Out
24/08/11 ProgramaçãodeComputadoresII 20
Saídagráfica
Consiste em criar uma janela na tela contendo amensagemdesejada.Podeserfeitausando:1. JFrame2. JDialog
Trabalharemos,porenquanto,comoJDialog.
In/Out
24/08/11 ProgramaçãodeComputadoresII 21
Saídagráfica
Exemplo01:importjavax.swing.*;...publicstaticvoidmain(String[]args){JOptionPane.showMessageDialog(null,“Estaéumajaneladediálogocriadanocentrodatela”);}
In/Out
24/08/11 ProgramaçãodeComputadoresII 22
Saídagráfica
Exemplo02:importjavax.swing.*;...publicstaticvoidmain(String[]args){JFramewin=newJFrame();win.setSize(200,200);win.setVisible(true);JOptionPane.showMessageDialog(win,“Estaéumajaneladedialogocriadaemumaposiçãoespecífica”);}
In/Out
24/08/11 ProgramaçãodeComputadoresII 23
Entradagráfica
Recebeosdadosatravésdeumdiálogoexibidonatela.Muitoparecidocomosdiálogosdesaida.Exemplo:importjavax.swing.*;...publicstaticvoidmain(String[]args){Stringname,ageStr;name=JOptionPane.showInputDialog(null,“Qualoseunome?”);ageStr=JOptionPane.showInputDialog(null,“Quaasuaidade?”);intage=Integer.parseInt(ageStr);}
Top Related