Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação



Documentos relacionados
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Objetivos do Capítulo

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Sintaxe Básica de Java Parte 1

Instalação do Java SDK (Software Development Kit)

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Instalando e configurando o Java Development Kit (JDK)

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Roteiro 1: Dados, variáveis, operadores e precedência

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Um pouco do Java. Prof. Eduardo

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

BC0501 Linguagens de Programação

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

2 Orientação a objetos na prática

Programação de Computadores II TCC /Turma A 1

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

DEFINIÇÃO DE MÉTODOS

Componentes da linguagem C++

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Android e Bancos de Dados

Capítulo 2: Introdução à Linguagem C

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Fundamentos de Programação II. Introdução à linguagem de programação C++

Projeto de Software Orientado a Objeto

insfcanceof new public switch transient while byte continue extends for int null

LINGUAGEM ORIENTADA A OBJETOS

Manual de utilização do sistema Diagnose. Marcus Vinícius Benedito. 10 de maio de 2007

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Noções sobre Objetos e Classes

CURSO DE PROGRAMAÇÃO EM JAVA

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Prof. Esp. Adriano Carvalho

Programação de Computadores - I. Profª Beatriz Profº Israel

A Linguagem Java. Alberto Costa Neto DComp - UFS

NetBeans. Conhecendo um pouco da IDE

Prof. Esp. Adriano Carvalho

Roteiro do Programa e Entrada/Saída

Persistência de Classes em Tabelas de Banco de Dados

Introdução a Java. Hélder Nunes

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

POO Programação Orientada a Objetos. Classes em Java

1. Apresentação Objetivos

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Organização de programas em Python. Vanessa Braganholo

Programação online em Java

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Conversão de Tipos e Arrays

Configurar o Furbot no Eclipse

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

Sistemas Distribuídos

Linguagens de. Aula 02. Profa Cristiane Koehler

Como usar o bluej. Laboratório I Prof.ª Vera Alves

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Programando em C# Orientado a Objetos. By: Maromo

Programação Orientada a Objetos

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Capítulo 4. Packages e interfaces

INTRODUÇÃO À LINGUAGEM C++

Guião de Introdução ao Eclipse IDE Índice

Introdução ao IDE Netbeans (Programação Java)

system("pause"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa

BC0505 Processamento da Informação

AULA Uma linguagem de programação orientada a objetos

Organização de programas em Java. Vanessa Braganholo

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Tutorial de instalação do Java 7 no Windows 7.

Linguagem de Programação

JSP - ORIENTADO A OBJETOS

Universidade Federal de Uberlândia

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Introdução a conceitos e a prática de programação

Java 2 Standard Edition Como criar classes e objetos

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

GUIA INTEGRA SERVICES E STATUS MONITOR

Programação para Celular com Java

UNIVERSIDADE FEDERAL DO PARANÁ

Objetivos: Entender o funcionamento dos programas Java via linha de comando

Java. Marcio de Carvalho Victorino

O Primeiro Programa em Visual Studio.net

Programação Básica em Arduino Aula 2

Transcrição:

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 12 Prof. ISVega Abril de 2004 Interação com o Usuário CONTEÚDO 12.1Módulo console................... 1 12.2Serviços de Objetos Screen............ 3 12.3Serviços de Objetos Keyboard........... 4 12.4 Aplicações com o Módulo console.jar..... 5 Exercícios.......................... 9 Objetivos Apresentar uma biblioteca de interação com o usuário. Estudar exemplos de uso da biblioteca. 12.1 Módulo console A interação básica entre um usuário e um sistema computacional envolve a presença de um mecanismo para entrada de dados e comandos, e outro para apresentação dos resultados da computação. Tais mecanismos são normalmente conhecidos pelos nomes keyboard e screen (respectivamente). A Figura 12.1 ilustra o padrão do fluxo de informação entre usuários e sistemas computacionais que se utilizam destes mecanismos. 1

Usuário Screen Keyboard console Figura 12.1: Mecanismos básicos de interação entre usuários e sistemas computacionais. Dá-se o nome de console ao conjunto keyboard-screen. Do ponto de vista de programação, entretanto, trabalha-se com abstrações destes mecanismos. O módulo console contém a classe Keyboard que pode ser utilizada em um programa para acesso aos mecanismos físicos de interação de entrada do sistema computacional. O módulo console oferece recursos para administrar o acesso aos dispositivos de comunicação de entrada externa com o sistema computacional. Pacote console.jar Para ser utilizado no ambiente Java, este módulo foi codificado no pacote console.jar, que disponibiliza a classe Console e duas interfaces desta classe para interação entre um usuário e uma aplicação: Keyboard e Screen (Figura 12.2). Este módulo corresponde ao pacote "console.jar" em Java. console <<interface>> Screen <<create>> Console <<interface>> Keyboard <<create>> Figura 12.2: Classes do módulo console. Comando import Em um programa, o acesso a estes elementos força a presença do seguinte comando Java no início do arquivo: import console.console; import console.keyboard; import console.screen; Estes comandos Java incorporam os nomes Console, [Keyboard e Screen no universo de identificadores que podem ser utilizados na escrita de classes com comunicação externa com o usuário. Copyright c 1998-2004, Dr. Italo S. Vega 12-2

Pacotes Opcionais no Ambiente Java O ambiente de desenvolvimento Java admite extensões funcionais por um mecanismo conhecido por optional packages. Com este mecanismo, desenvolvedores podem extender a funcionalidade básica do ambiente Java. Pacotes opcionais são incluídos em arquivos com extensão.jar, sendo instalados nos diretórios: <diretório de instalação do JRE>\lib\ext <diretório de instalação do SDK>\jre\lib\ext com JRE sendo o Java Runtime Environment, e SDK o Sun Development Kit. Exemplo 12.1 Supondo que os diretórios JRE e SDK sejam: JRE c:\arquivos de programas\java\j2re1.4.2 02 SDK c:\j2sdk1.4.2 02 então o pacote opcional console.jar deve ser copiado para os diretórios: c:\arquivos de programas\java\j2re1.4.2 02\lib\ext c:\j2sdk1.4.2 02\jre\lib\ext A partir deste momento, aplicações que fazem uso de Console e Keyboard podem ser desenvolvidas e compiladas normalmente. 12.2 Serviços de Objetos Screen Um objeto da classe Screen modela a tela do computador. Serviços típicos deste objetos seguem o padrão writeprimitivo(), onde Primitivo pode ser: Byte, Short, Int, Long, Float, Double, Boolean ou String. A Figura 12.3 apresenta serviços adicionais oferecidos por este objeto. <<interface>> Screen + writechar(valor : char) : void + writeint(valor : int) : void + writefloat(valor : float) : void + writedouble(valor : double) : void + writestring(valor : String) : void + newline() : void + newline(x : int) : void + print(x : String) : void + println(x : String) : void Figura 12.3: Serviços do objeto Screen. Descrição dos Serviços int writebyte(byte x) // escreve o byte x int writeshort(short x) // escreve o short x int writeint(int x) // escreve o int x char writelong(long x) // escreve o long x Copyright c 1998-2004, Dr. Italo S. Vega 12-3

float writefloat(float x) // escreve o float x double writedouble(double x) // escreve o double x double writeboolean(boolean x) // escreve o boolean x String writestring(string x) // escreve o String na x void print(string msg) // Imprime msg sem pular linha void println(string msg) // Imprime msg pulando uma linha void newline() // Pula uma linha void newline(int n) // Pula "n" linhas 12.3 Serviços de Objetos Keyboard Um objeto do tipo Keyboard modela o teclado do computador. As operações oferecidas por um objeto deste tipo são listadas na Figura 12.4. <<interface>> Keyboard + readchar() : char + readchar(msg : String) : char + readint() : int + readint(msg : String) : int + readfloat() : float + readfloat(msg : String) : float + readdouble() : double + readdouble(msg : double) : double + readstring() : String + readstring(msg : String) : String Figura 12.4: Operações de um objeto do tipo Keyboard. Descrição dos Serviços Os serviços de um Keyboard são utilizados para obter um valor digitado pelo usuário durante a execução de um passo de computação. Neste passo, o cálculo é suspenso até que o usuário digite o valor solicitado. Cada serviço obtém um valor com tipo específico: a obtenção de caracteres é feita com a ativação da operação readchar():char; no caso de números, pode-se ativar a operação readint():int, que retorna um valor do tipo int; e assim por diante. Estes serviços também podem ser ativados, passando-se um texto a ser apresentado para o usuário, antes do bloqueio da computação. O texto pode conter uma pergunta caracterizando a natureza do valor a ser digitado pelo usuário. Na maior parte dos casos, esta será a forma preferida de serviços a serem solicitados a um Keyboard. Exemplo 12.2 Para solicitar que o usuário digite um número inteiro, a seguinte codificação pode ser feita: obtenção de um número inteiro public Keyboard t; public int x; public void obterx() { t = Console.getKeyboard(); Copyright c 1998-2004, Dr. Italo S. Vega 12-4

x = t.readint( "x? " ); Este trecho de código deve ser inserido em uma classe, como mostrado a seguir: lab//exemploint.java import console.console; import console.keyboard; public class ExemploInt { obtenção de um número inteiro public static void main( String[] args ) { ExemploInt exemplo = new ExemploInt(); exemplo.obterx(); System.out.println( "x= " + exemplo.x ); O método main() estabelece a rota principal dos passos desta computação. primeiro lugar, cria-se um objeto exemplo da classe ExemploInt. Ao receber a mensagem obterx(), este objeto solicita que o usuário digite um número int. Para o usuario, aparece o texto "x? ", indicando que a computação está suspensa, aguardando que ele digite um valor. Após a digitação (que se encerra quando o usuário pressiona a tecla <enter>), o valor é armazenado na variável x, interna ao objeto exemplo. O valor digitado pelo usuário encontra-se armazenado na variável empregado.x. Este valor é apresentado na última linha do método main(). Em 12.4 Aplicações com o Módulo console.jar Exemplo 12.3 O cálculo da área de um círculo a partir do seu raio pode ser feito aplicando-se a fórmula (Figura 12.5): area = πr 2 r área Figura 12.5: Elementos para o cálculo da área de um círculo. Copyright c 1998-2004, Dr. Italo S. Vega 12-5

A obtenção do valor do raio do círculo pode ser codificado como: Obtenção do raio do círculo public double raio; public void obterraio() { t = Console.getKeyboard(); raio = t.readdouble( "Raio? " ); De posse deste valor, codifica-se o cálculo da área: Cálculo da área do círculo public double area; public void calculararea() { area = Math.PI * raio * raio; O programa final pode ser montado, compondo-se os trechos de código anteriores na classe Circulo: lab//circulo.java import console.console; import console.keyboard; public class Circulo { Obtenção do raio do círculo Cálculo da área do círculo public Keyboard t; public static void main( String[] args ) { Circulo c = new Circulo(); // <- (1) c.obterraio(); // <- (2) c.calculararea(); // <- (3) System.out.println( c.area ); // <- (4) Copyright c 1998-2004, Dr. Italo S. Vega 12-6

A operação main() define os passos da rota de execução principal: 1. Cria-se o objeto c:circulo. 2. Envia-se a mensagem para obter o valor do raio. 3. Envia-se a mensagem para que o círculo c calcule a sua área. 4. Apresenta-se, no monitor, o valor da variável area, interna ao objeto c. Este valor representa a área do círculo. Exemplo 12.4 A média de um aluno é calculada pela fórmula: MF = P1 + P2 2 A determinação do valor da nota da prova P1 pode ser descrita pelo seguinte trecho de código: Determinação da nota da prova P1 public double p1; public void obterp1() { t = Console.getKeyboard(); p1 = t.readdouble( "P1? " ); A determinação do valor da nota da prova P2 segue um padrão similar: Determinação da nota da prova P2 public double p2; public void obterp2() { t = Console.getKeyboard(); p2 = t.readdouble( "P2? " ); Com os valores das notas das provas armazenadas nas variáveis p1 e p2, o cálculo da média final pode ser feito e armazenado na variável mf da seguinte forma: Cálculo da média das notas public double mf; public void calcularmf() { mf = (p1 + p2) / 2.0; O programa pode ser montado, compondo-se os trechos de código anteriores na classe Aluno: Copyright c 1998-2004, Dr. Italo S. Vega 12-7

lab//aluno.java import console.console; import console.keyboard; public class Aluno { Determinação da nota da prova P1 Determinação da nota da prova P2 Cálculo da média das notas public Keyboard t; public static void main( String[] args ) { Aluno a = new Aluno(); // <- (1) a.obterp1(); // <- (2) a.obterp2(); // <- (3) a.calcularmf(); // <- (4) System.out.println( a.mf ); // <- (5) A operação main() define os passos da rota de execução principal: 1. Cria-se o objeto a:aluno. 2. Envia-se a mensagem para obter a nota da P1. 3. Envia-se a mensagem para obter a nota da P2. 4. Envia-se a mensagem para que o aluno a calcule a média final. 5. Apresenta-se, no monitor, o valor da variável mf, interna ao objeto a. Este valor representa a média das notas das provas. Copyright c 1998-2004, Dr. Italo S. Vega 12-8

EXERCÍCIOS 12.1 INSTALAÇÃO DO C O N S O L E.J A R Tarefa 12.1.1 Tarefa 12.1.2 lib\ext Tarefa 12.1.3 Tarefa 12.1.4 jre\lib\ext Tarefa 12.1.5 Localize o diretório JRE no seu ambiente de trabalho. Copie o arquivo console.jar para o diretório Localize o diretório SDK no seu ambiente de trabalho. Copie o arquivo console.jar para o diretório Crie o arquivo Teste.java no diretório ex12.1: lab//teste.java import console.console; public class Teste { public static void main( String[] args ) { Console.getScreen().println("Instalacao OK"); Tarefa 12.1.6 Compile o arquivo de teste com o seguinte comando: javac Teste.java Tarefa 12.1.7 Execute o arquivo de teste com o seguinte comando: java Teste A frase "Instalacao OK" deve aparecer na tela do computador. 12.2 USO DO KEYBOARD Tarefa 12.2.1 Crie o arquivo ExemploInt.java no diretório ex12.2: Tarefa 12.2.2 Digite, neste arquivo, o código apresentado no exemplo 12.2. Tarefa 12.2.3 javac ExemploInt.java Tarefa 12.2.4 java ExemploInt Compile o arquivo ExemploInt.java com o seguinte comando: Execute o programa ExemploInt.class com o seguinte comando: A computação ficará suspensa até que você digite um número inteiro. Tarefa 12.2.5 Reexecute o programa ExemploInt.class, mas digite, ao invés de um número inteiro, uma frase (ex.: "fim"). Qual valor é armazenado na variável exemplo.x? Copyright c 1998-2004, Dr. Italo S. Vega 12-9

12.3 CÁLCULO DE ÁREAS Tarefa 12.3.1 Crie o arquivo Circulo.java no diretório ex12.3: Tarefa 12.3.2 Digite, neste arquivo, o código apresentado no exemplo 12.3. Tarefa 12.3.3 Execute o programa e confira os resultados na seguinte tabela: Raio Área 1 3.141592653589793 5 78.53981633974483 85 22698.006922186254 12.4 CÁLCULO DE MÉDIAS Tarefa 12.4.1 Crie o arquivo Aluno.java no diretório ex12.4: Tarefa 12.4.2 Digite, neste arquivo, o código apresentado no exemplo 12.4. Tarefa 12.4.3 Preencha a seguinte tabela de avaliações: Aluno P1 P2 MF Zé 3.7 4.8 Ana 6.3 8.5 Gil 2.4 9.9 Copyright c 1998-2004, Dr. Italo S. Vega 12-10