Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 3
(Entrada de Dados)
Prof. Gilberto Iraj Mller
ltima atualizao 11/3/2009
Entrada de dados
At o momento, apenas visualizamos a sada de dados e alteramos
os atributos de nossos objetos diretamente no cdigo fonte
Ento, vamos criar uma classe chamada TestaPessoa que
permiter entrar com os dados via teclado e, aps isso, criar o
objeto com os dados digitados pelo teclado
Entrada de dados
Exerccio. Como ficaria nossa classe TestaPessoa solicitando os
dados: nome, altura, peso e idade?
Entrada de dados
Exerccio. Altere a classe Pessoa e inclua dois mtodos:
private double calculaIMC()
public double getIMC()
Detalhe: Solicite o nome, peso e altura para o clculo. O clculo do
IMC feito atravs do peso / (altura2)
Expresses Aritmticas
De forma indireta j estamos utilizando expresses aritmticas,
em qual momento?
Expresses Aritmticas
Tipos de dados
Expresses Aritmticas
Nmeros Inteiros:
Java interpreta um nmero escrito sem ponto decimal
como int. Se o valor extrapolar os limites do tipo int,
ser tratado como inteiro muito grande e dar erro de
compilao. Para armazenar um inteiro como long,
devemos adicionar o sufixo L ou l ao nmero.
Ex:
1147465 tratado como int, pois est na faixa do tipo int;
1147465L tratado como long, devido ao sufixo;
3000000000 d o erro de compilao integer number too
large.
Expresses Aritmticas
Exerccio
Complete as linhas seguintes:
Expresses Aritmticas
Nmeros de ponto flutuante
Em Java, nmero com ponto decimal tratado como
double.
Caso o valor estiver numa faixa vivel ao tipo float,
podemos usar o sufixo F ou f para que ele seja tratado
O sufixo D ou d tambm pode ser usado para informar
ao compilador que desejamos trat-lo como double.
Ex:
Expresses Aritmticas
Exerccio.
Complete as seguintes linhas:
Expresses Aritmticas
O tipo primitivo char
O tipo primitivo char corresponde a um nico caractere
(Unicode) escrito entre apstrofos, que ocupa espao de
dois bytes no seu armazenamento.
Ex: 'a', 'M', '+', '?
Caracteres de escape
Representam caracteres especiais que podem ser
atribudos s variveis do tipo char e String, ou podem
fazer parte de um string.
Expresses Aritmticas
Caracteres de escape
Expresses Aritmticas
Classe que demonstra o limite de cada tipo
de dado
public class testaTipoDado {
public static void main(String[] args) {
System.out.println("Tipos de dados em Java: \n" +
"\nMenor Byte: " + Byte.MIN_VALUE +
"\nMaior Byte: " + Byte.MAX_VALUE +
"\nMenor Short Int: " + Short.MIN_VALUE +
"\nMaior Short Int: " + Short.MAX_VALUE +
"\nMenor Int: " + Integer.MIN_VALUE +
"\nMaior Int: " + Integer.MAX_VALUE +
"\nMenor Long: " + Long.MIN_VALUE +
"\nMaior Long:" + Long.MAX_VALUE +
"\nMenor Float: " + Float.MIN_VALUE +
"\nMaior Float: " + Float.MAX_VALUE +
"\nMenor Double: " + Double.MIN_VALUE +
"\nMaior Double: " + Double.MAX_VALUE);
}
}
Expresses Aritmticas
Converso entre tipos de dados
Converso implcita
permitido converter qualquer tipo abaixo para um que
esteja sua esquerda, sem qualquer artifcio, e sem
perda de preciso:
double <- float <- long <- int <- short <- byte
Exemplo:
long x = 12678;
double dd = x; // dd ficar com 12678.0
byte y = -2;
short s = y; // s assumir valor -2
int i = y; // i ficar com -2
Expresses Aritmticas
Converso explcita (Coero ou cast).
Usa-se um conversor (ou cast), que a colocao do tipo
de destino entre parnteses antes do valor a ser
convertido
Ex:
double dd = 6.789;
int ii = (int) dd; // ii guardar o valor 6, pois a converso
descarta a parte decimal
short s = (short) ii; //s guardar 6 no houve perda
nenhuma
byte b = (byte) 6.7; //perde-se a parte decimal
short s = (short) 50000; // CUIDADO como o tipo
short no comporta 50000, ser atribudo um valor
aleatrio a s erro que no acusado pelo sistema
Expresses Aritmticas
Operadores aritmticos bsicos
Na ordem decrescente de prioridade dentro de uma
expresso aritmtica:
1. ) * (multiplicao) / (diviso) % (mdulo, ou resto da
diviso inteira)
2. ) + (adio) - (subtrao)
Ex: x * y
7/n
m % n // resto da diviso inteira de m por n
Expresses Aritmticas
Regras importantes
Geralmente, a operao resulta um tipo que grande o
Expresses Aritmticas
Exerccios
Indique o valor e o tipo do resultado de cada expresso
abaixo:
5000000000L + 500
5F * 3.0
(3 + 4) / (2 * 2)
2 * (3.5 + (7 + 2) * 3.0) / 2
Expresses Aritmticas
Operadores de atribuio
Pode-se combinar uma operao com uma atribuio.
Por exemplo, a atribuio n=n+2; pode ser escrita como
n+=2;
Os diversos operadores de atribuio de Java so
mostrados na tabela seguinte:
Expresses Aritmticas
Operadores de atribuio
Exemplo:
int k = 6; int s = 2;
s += k; // mesmo que s = s + k; s = 8, k = 6
s %= 5; // mesmo que s = s % 5; (resto da diviso de s
por 5). s = 3
Expresses Aritmticas
Operadores de incremento e de decremento
muito comum nos programas incrementar 1 a uma
varivel, o que se pode fazer, como j foi visto, de duas
maneiras. Por exemplo,
int m = 10;
m = m + 1; // incrementa 1 a 10, resultando 11 em m
m += 1; // m ir para 12
Expresses Aritmticas
Operadores de incremento e de decremento
Os operadores de incremento e de decremento podem
ser ps-fixados, quando vm colocados aps a varivel,
ou pr-fixados, quando vm antes. Se ps-fixado, a
varivel utilizada e depois incrementada (ou
decrementada). Se pr-fixado, a varivel
incrementada (ou decrementada) e depois utilizada.
Ex: o trecho
int i = 5;
System.out.println(++i + + i++ + + i);
QUAL A SADA DA INSTRUO ACIMA?
Expresses Aritmticas
Exerccio. Que valores sero exibidos pelo
trecho abaixo?
int a = 15;
int b = 4;
int c = a++ + --b;
System.out.println(a + + b + + c);
Expresses Aritmticas
A classe Math
A classe java.lang.Math possui diversos mtodos que implementam
operaes matemticas teis. Seu uso dispensa o comando import
(veremos adiante) pois ela carregada automaticamente.
Expresses Aritmticas
Exerccio. Escrever em Java a frmula de
Bhaskara
Expresses Aritmticas
Exerccio. Crie uma classe Circulo e os mtodos
calculaArea e calculaPerimetro da classe Circulo.
Eles devem devolver os valores calculados. Crie
uma classe TestaCirculo para criar um objeto
crculo e imprimir sua rea e seu permetro.
rea do crculo: Pi x r2
Permetro: 2 * Pi x r
Para o valor do Pi, utilize Math.PI
Mtodos
Referncias bibliogrficas
http://inf.unisinos.br/~anibal
http://www.google.com.br