programação de computadores iianselmo/cursos/progii/apresentacoes... · este objeto é...

23
Programação de Computadores II TCC‐00174 Profs.: Anselmo Montenegro (1) & Marcos Lage (2) (1) www.ic.uff.br/~anselmo (2) www.ic.uff.br/~mlage Conteúdo : Entrada e Saída de dados.

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

ProgramaçãodeComputadoresII

TCC‐00174Profs.:AnselmoMontenegro(1)&MarcosLage(2)

(1)www.ic.uff.br/~anselmo(2)www.ic.uff.br/~mlage

Conteúdo:EntradaeSaídadedados.

Page 2: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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

Page 3: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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

Page 4: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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

Page 5: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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

Page 6: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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

Page 7: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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.

Page 8: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 8

Lendodaentradapadrão

Ouso do objetoSystem.inémais complexo que odoSystem.out:OobjetoSystem.inlêumbitporvez.

Tipicamentedesejaremoslermaisdeumbitporvez.

Page 9: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 9

Lendodaentradapadrão

Passoàpassoparaaleituradeumalinha:Passo1:Criarumobjetodo\poInputStreamReaderLeiturabitabitPasso2:Criarumobjetodo\poBufferedReaderLeituradeumalinhadetexto(atéumcaracter‘\n’)Passo3:UsarométodoreadLinedaclasseBufferedReder.

Page 10: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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();}

Page 11: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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();...

Page 12: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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);...}

Page 13: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 13

ClasseScanner

OJava incluiumaclasseparatornaraentradaviatecladomaissimples:ScannerPara usarmos a classe Scanner precisamos docomando:importjava.util.Scanner

Page 14: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 14

ClasseScanner

Para criar um objeto da classe Scanner devemosindicaroobjetoSystem.in:Scannerkeyboard=newScanner(System.in);

Page 15: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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’

Page 16: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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.

Page 17: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 17

ClasseScanner

Ex:Dadoocódigo:Stringword1=keyboard.next();Stringword2=keyboard.next();Eaentradaviateclado:casacarroOvalordeword1serácasa,eovalordeword2serácarro.

Page 18: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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();}

Page 19: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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?

Page 20: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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.

Page 21: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

In/Out

24/08/11 ProgramaçãodeComputadoresII 21

Saídagráfica

Exemplo01:importjavax.swing.*;...publicstaticvoidmain(String[]args){JOptionPane.showMessageDialog(null,“Estaéumajaneladediálogocriadanocentrodatela”);}

Page 22: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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”);}

Page 23: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes... · Este objeto é automacamente criado pelo Java. Controlado por 2 métodos: print(): Imprime uma saída no

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);}