Roteiro do Programa e Entrada/Saída



Documentos relacionados
O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Introdução a Java. Hélder Nunes

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

Orientação a Objetos

Orientação a Objetos com Java

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

DEFINIÇÃO DE MÉTODOS

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Orientação a Objetos

Noções sobre Objetos e Classes

Implementando uma Classe e Criando Objetos a partir dela

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Treinamento Sistema Condominium Módulo III

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

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

APOSTILA DE EXCEL 2007

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Análise e Projeto Orientados por Objetos

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

Introdução a Computação

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

JSP - ORIENTADO A OBJETOS

Engenharia de Software III

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

CURSO DE PROGRAMAÇÃO EM JAVA

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

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

Conceitos básicos da linguagem C

Aula 1 Tipo Abstrato de Dados

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

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

Prof. Esp. Adriano Carvalho

LINGUAGEM ORIENTADA A OBJETOS

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

TOTVS BA Guia de Customização Linha Logix

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Conceitos Importantes:

3 Classes e instanciação de objectos (em Java)

2 Orientação a objetos na prática

Bem vindo! Esta é a tela inicial do Webmail da Universidade federal de Juiz de Fora. O link de acesso é:

Profº. Enrique Pimentel Leite de Oliveira

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

Linguagem de Programação I

Estruturas (Registros)

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

NetBeans. Conhecendo um pouco da IDE

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

MICROSOFT OFFICE EXCEL 2007

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

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Como funciona? SUMÁRIO

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

USANDO O ROUNDCUBE WEBMAIL

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Laboratório de Programação

Ao optar pelo BB Token, além de segurança, você contará com diversas vantagens, entre elas:

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.

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Componentes da linguagem C++

Especificação do 3º Trabalho

Pesquisa e organização de informação

Manual do usuário. Softcall Java. versão 1.0.5

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Excel Planilhas Eletrônicas

Projeto de Software Orientado a Objeto

SISTEMA DE ADMINISTRAÇÃO DE LOCAÇÃO IMOBILIÁRIA LISTA DE ATUALIZAÇÕES NOVAS

PROVA DE NOÇÕES DE INFORMÁTICA Cargos 04 e 07

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

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Financeiro)

QualiQuantiSoft Versão 1.3c

Procedimentos para Reinstalação do Sisloc

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União

2 echo "PHP e outros.";

O primeiro passo é verificar se a pasta Junk está disponível entre as pastas IMAP do usuário:

FBV - Linguagem de Programação II. Um pouco sobre Java

Manual Captura S_Line

Tutorial: Webmail. Dicas de Uso e Funcionalidades 02/2015. Versão 01

2 Um Primeiro Programa em C

Como Gerar documento em PDF com várias Imagens

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Tutorial contas a pagar

Caso já seja usuário do SCAW siga as instruções a partir da página X.

Manual do Programa de Caixa1

Configuração do Linux Educacional 5 para melhor uso do MonitorINFO-V4

Criando um script simples

INF 1005 Programação I

Curso de Programação Computadores

Considerações a serem feitas antes da implantação.

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Interfaces Gráficas parte 3

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Lógica de Programação

Conversão de Tipos e Arrays

Transcrição:

Roteiro do Programa e Entrada/Saída c Professores de ALPRO I Faculdade de Informática PUCRS 03/2012 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 1 / 32

Sumário 1 Relembrando 2 Programa Definição de programa A aplicação 3 Entrada e Saída Exibindo informações na tela Papéis de variáveis Obtendo informações pelo teclado ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 2 / 32

Relembrando Sumário 1 Relembrando 2 Programa Definição de programa A aplicação 3 Entrada e Saída Exibindo informações na tela Papéis de variáveis Obtendo informações pelo teclado ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 3 / 32

Relembrando Classes, Objetos, Atributos e Métodos Até agora já criamos classes completas contendo atributos e métodos. As classes foram criadas através da interface gráfica do BlueJ. As mensagem foram enviadas manualmente com o BlueJ. Veremos agora como agrupar essas chamadas em um roteiro especificado por uma sequência de passos: um programa. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 4 / 32

Programa Sumário 1 Relembrando 2 Programa Definição de programa A aplicação 3 Entrada e Saída Exibindo informações na tela Papéis de variáveis Obtendo informações pelo teclado ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 5 / 32

Programa Definição de programa Revendo a classe Conta O comportamento da classe Conta é definido por 5 métodos: Construtor. depositar. sacar. transferir. getsaldo. public class Conta { private double saldo; public Conta() { saldo = 0; public void depositar(double valor) { saldo = saldo + valor; public void sacar(double valor) { saldo = saldo - valor; public void transferir(conta destino, double valor) { sacar(valor); destino.depositar(valor); public double getsaldo() { return saldo; ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 6 / 32

Programa Definição de programa Definindo uma sequência de passos Como definir uma sequência de passos que realizem as seguintes ações: Criar uma conta. Depositar inicialmente R$ 4000,00. Sacar R$ 100,00. Sacar R$ 280,00. Obter o saldo final? ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 7 / 32

Programa Definição de programa Definindo uma sequência de passos Como definir uma sequência de passos que realizem as seguintes ações: Criar uma conta. Depositar inicialmente R$ 4000,00. Sacar R$ 100,00. Sacar R$ 280,00. Obter o saldo final? Solução: criar um método que controle essa sequência de passos. Método executa Método que executa ações definidas, na ordem especificada. É que se costuma chamar de programa principal. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 7 / 32

Programa Definição de programa O método executa public void executa() { Conta conta1 = new Conta(); conta1.depositar(4000); conta1.sacar(100); conta1.sacar(280); O primeiro passo é criar uma instância. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 8 / 32

Programa Definição de programa O método executa public void executa() { Conta conta1 = new Conta(); conta1.depositar(4000); conta1.sacar(100); conta1.sacar(280); O primeiro passo é criar uma instância. Chamamos conta1 de variável local, pois só existe neste método. conta1 é uma variável de objeto, pois armazena uma referência para a instância criada pelo comando new. conta1 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 8 / 32

Programa Definição de programa O uso do comando new Conta conta1 = new Conta(); Classe da variável Variável Comando de instanciação Nome do método construtor conta1 Instância ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 9 / 32

Programa Definição de programa Enviando mensagens no programa public void executa() { Conta conta1 = new Conta(); conta1.depositar(4000); conta1.sacar(100); conta1.sacar(280); O comando de instanciação cria objetos da mesma forma que o BlueJ. Usando a variável de objeto conta1 podemos ativar os métodos do objeto referenciado. conta1 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 10 / 32

Programa A aplicação Modelando a aplicação A classe Conta descreve os atributos e métodos relacionados com a descrição de uma conta bancária. Dizemos que a classe Conta modela uma conta bancária. Mas o método executa não faz parte dela, então onde devemos localizá-lo? ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 11 / 32

Programa A aplicação Modelando a aplicação A classe Conta descreve os atributos e métodos relacionados com a descrição de uma conta bancária. Dizemos que a classe Conta modela uma conta bancária. Mas o método executa não faz parte dela, então onde devemos localizá-lo? Ele descreve a sequência de passos que a aplicação deverá realizar. Portanto, ele faz parte da modelagem da aplicação. Conclusão: deve haver uma classe que represente a aplicação. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 11 / 32

Programa A aplicação A classe App Classe App Classe que representa a aplicação ou sistema. Deve conter o método executa. Dizemos que a execução de um programa depende da existência de um objeto App. Fazemos isso no BlueJ, da mesma forma que criamos objetos de outras classes. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 12 / 32

Programa A aplicação Complementando... Código completo da classe App: public class App { public void executa() { Conta conta1 = new Conta(); conta1.depositar(4000); conta1.sacar(100); conta1.sacar(280); ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 13 / 32

Programa A aplicação A classe App no BlueJ Diagrama de classes da aplicação: A seta denota que App faz uso dos serviços (métodos) de Conta. Para que uma classe possa referenciar objetos de outra, basta que as duas estejam dentro do mesmo projeto. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 14 / 32

Programa A aplicação Executando aplicações no BlueJ Para executar uma aplicação dentro do BlueJ: Crie uma instância de App. Envie a mensagem executa() para ela. Mas qual o resultado da execução? Você saberia explicá-lo? ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 15 / 32

Entrada e Saída Sumário 1 Relembrando 2 Programa Definição de programa A aplicação 3 Entrada e Saída Exibindo informações na tela Papéis de variáveis Obtendo informações pelo teclado ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 16 / 32

Entrada e Saída Comunicação com o usuário Entrada e Saída A classe Terminal representa os principais dispositivos de comunicação de um computador: Teclado (entrada) Tela (saída) Denominamos esse conjunto de Terminal, ou seja, um terminal de computador com teclado e tela. Classe Terminal Classe que representa o teclado e a tela do computador. Oferece métodos capazes de realizar entrada e saída de dados. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 17 / 32

Entrada e Saída Exibindo informações na tela Exibindo mensagens para o usuário Para utilizar a classe Terminal é necessário indicar a utilização do pacote pucrs.alpro. A partir daí, basta utilizar os métodos adequados: O método println exibe mensagens de texto na tela. import pucrs.alpro.*; public class App { public void executa() { Conta conta1 = new Conta(); conta1.depositar(4000); conta1.sacar(100); conta1.sacar(280); Terminal.println("Saldo atual: " + conta1.getsaldo()); ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 18 / 32

Entrada e Saída Exibindo informações na tela Entendendo o método println O método println é capaz de exibir informações diversas na tela: valores numéricos ou texto. Porém, se for necessário agrupar valores com texto, deve-se empregar o operador +. Novidade: para exibir um texto qualquer, coloque este entre aspas duplas. Esse tipo de dado é denominado cadeia de caracteres ou texto (String of characters). Terminal.println("Saldo atual: "+conta1.getsaldo()); Java converte automaticamente o resultado double do método getsaldo para uma String que pode ser concatenada com o texto inicial. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 19 / 32

Entrada e Saída Exibindo informações na tela Importando a classe Terminal Para usar a classe Terminal em seus projetos, proceda da seguinte maneira: Faça dowload do arquivo terminal-1.0.jar; Mova o arquivo para a pasta lib/userlib na sua instalação do BlueJ A classe Terminal possui diversos outros métodos para entrada e saída de dados, que veremos mais adiante. Obs: essa classe não faz parte da biblioteca de classes padrão de Java. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 20 / 32

Entrada e Saída Exibindo informações na tela Exercício ➊ Escreva um programa Java que: Cria duas contas bancárias conta1 e conta2; Deposita R$ 1000,00 em conta1 e R$ 2000,00 em conta2; Transfere R$ 250,00 de conta2 para conta1; Exibe na tela o saldo das duas contas. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 21 / 32

Entrada e Saída Papéis de variáveis Papéis de variáveis Dizemos que as variáveis em um programa têm papéis definidos, ou seja, desempenham funções específicas. Já conhecemos um desses papéis: o acumulador. Acumulador Variável que armazena a soma de um conjunto de valores. A soma é acumulada ao longo do tempo. Exemplos: Dinheiro no parquímetro. Saldo na conta bancária. Combustível e quilometragem no carro. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 22 / 32

Entrada e Saída Papéis de variáveis Exemplo: acumulando quilometragem Considerando uma classe Automovel, podemos ter um atributo que represente a quilometragem total do veículo. Esse atributo é um acumulador. public class Automovel { private double litros; private double distancia;... public void mover(double dist) { distancia = distancia + dist; // Assume 15 km/l de consumo litros = litros - dist/15;... public double getdistancia() { return distancia; ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 23 / 32

Entrada e Saída Papéis de variáveis Outro papel: o contador Contador Variável que armazena um valor que representa a quantidade de ocorrências de um evento. Geralmente é incrementada de uma em uma unidade. Exemplos: Quantos tickets o parquímetro já imprimiu? Quantos saques foram feitos de uma conta? Quantas pessoas visitaram o zoológico? Quantas pessoas foram à sessão de cinema? ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 24 / 32

Entrada e Saída Papéis de variáveis Exemplo: contar tickets impressos Considerando a classe Parquimetro, podemos ter um atributo que represente a quantidade de tickets já impressos. Esse atributo é um contador. public class Parquimetro { private int quanttickets; private double total;... public void pagarcentavos(double valor) { total = total + valor; public void imprimirticket() {... quanttickets = quanttickets + 1; public int getquanttickets() { return quanttickets; ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 25 / 32

Entrada e Saída Obtendo informações pelo teclado Entrada de dados Até o momento, nossos programas só manipulam valores fixos. Para que seja possível a entrada de dados, devem ser empregados métodos da classe Terminal: readint: lê e retorna um valor numérico inteiro. readdouble: lê e retorna um valor numérico real; Esses métodos devem ser sempre usados no lado direito de atribuições. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 26 / 32

Entrada e Saída Obtendo informações pelo teclado Exemplo: depositando um valor digitado Este programa cria uma conta, pergunta ao usuário o valor a ser depositado e realiza o depósito: public void executa() { Conta conta1 = new Conta(); Terminal.print("Digite o valor do depósito: "); double valor = Terminal.readDouble(); conta1.depositar(valor); Terminal.println("O saldo inicial da conta é: "+conta1.getsaldo ()); O método print faz o mesmo que println, mas não move o cursor para a linha seguinte. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 27 / 32

Entrada e Saída Obtendo informações pelo teclado Declarando e usando variáveis locais Armazenar o resultado de cálculos intermediários ou expressões em variáveis locais facilita a leitura do programa: public void executa() { Conta conta1 = new Conta(); Terminal.print("Digite o valor do depósito: "); double valor = Terminal.readDouble(); conta1.depositar(valor); double saldo = conta.getsaldo(); Terminal.println("O saldo inicial da conta é: "+saldo); ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 28 / 32

Entrada e Saída Obtendo informações pelo teclado Manipulando variáveis locais Além disso, evita a alteração indesejada de valores: Por exemplo, vamos supor que o banco ofereça 1% em juros para o saldo inicial depositado. Podemos utilizar a variável local saldo para armazenar esse resultado temporário: public void executa() { Conta conta1 = new Conta(); Terminal.print("Digite o valor do depósito: "); double valor = Terminal.readDouble(); conta1.depositar(valor); double saldo = conta.getsaldo(); saldo = saldo + saldo * 0.01; Terminal.println("O saldo inicial da conta (mais juros) será: "+ saldo); Observe que o atributo saldo do objeto conta1 não foi alterado! ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 29 / 32

Entrada e Saída Obtendo informações pelo teclado Exercício ➋ Em Impostolândia, o governo tarifa todas as movimentações bancárias em 2%. Em função disso, escreva um programa que: Cria uma instância de Conta. Faz um depósito de R$ 4000,00. Calcula o valor do imposto. Exibe o saldo real, o valor do imposto e o saldo restante após o desconto do imposto. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 30 / 32

Entrada e Saída Obtendo informações pelo teclado Exercício ➌ Escreva um programa que: Crie duas instâncias de Conta: conta1 e conta2. Solicita ao usuário o valor do depósito inicial de conta1. Realiza o depósito na conta1. Solicita o valor a ser transferido de conta1 para conta2. Executa a transferência. Exibe o saldo final das duas contas. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 31 / 32

Entrada e Saída Obtendo informações pelo teclado Leitura adicional recomendada HORSTMANN, Cay. Big Java, Capítulo 2 - Introdução a objetos e classes. In: Big Java. Porto Alegre: Bookman, 2004. p. 44-86. ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 32 / 32