LP2
Laboratório de Programação 2
Ciência da Computação
Problema proposto
“Em um torneio de futebol a pontuação foi definida da seguinte
maneira:
vitória por goleada – 6 pontos;
vitória simples – 3 pontos;
empate – 1 ponto.
Como determinar a quantidade mínima de jogos necessários para
que um time complete exatamente uma dada quantidade de
pontos? ”
1
LP2
Laboratório de Programação 2
Ciência da Computação
especificação
objetivo: obter a quantidade mínima de jogos para que um time
complete exatamente uma determinada quantidade de pontos.
inf inicial:
a quantidade de pontos (uma “entrada”).
inf final: a quantidade mínima de jogos necessários (uma “saída”).
2
LP2
Laboratório de Programação 2
Ciência da Computação
método de resolução
• realizar a “entrada” (quantidade de pontos);
• dividir a quantidade de pontos por 6 (o quociente será a
quantidade de vitórias por goleada) e obter o resto dessa
mesma divisão;
• dividir o resto obtido por 3 (o quociente será a quantidade de
vitórias simples e o resto será a quantidade de empates);
• somar: quantidade de vitórias por goleada + quantidade de
vitórias simples + quantidade de empates (o resultado será a
resposta procurada: quantidade mínima de jogos);
• realizar a “saída” (quantidade mínima de jogos).
proposta
elabore e implemente um programa Java que represente esse
método de resolução; utilize como “modelo” o programa comentado
na aula anterior (tela 28 do módulo 1).
3
LP2
Laboratório de Programação 2
Ciência da Computação
tipo real
Tipo de dados real
Elementos: conjunto dos números racionais
Operações + adição
* multiplicação
Relações
- subtração
/ divisão
< menor
> maior
= igual
 diferente
 menor ou igual
 maior ou igual
Constantes ponto fixo- representação usual: 1.76 -0.002
ponto flutuante- 6.023E23 4.1E10
Domínio
Depende da linguagem de programação
(Java oferece dois tipos: float e double)
4
LP2
Laboratório de Programação 2
Ciência da Computação
conversão de tipos observações - linguagem Java
observação 1:
numa operação aritmética em que um dos operandos é de tipo float e o
outro é de tipo int, o sistema realiza a conversão do int para float.
observação 2:
numa atribuição em que o alvo é uma variável int e a expressão resulta
um valor float, o sistema não realiza a conversão automática de float
para int (“perdendo-se” a parte fracionária do valor resultante), a
conversão (se desejada) deverá ser explícita.
observação 3:
numa atribuição em que o alvo é uma variável float e a expressão
resulta um valor int, o sistema realiza a conversão de int para float .
5
LP2
Laboratório de Programação 2
Ciência da Computação
observação 1:
numa operação aritmética em que um dos operandos é de tipo float e o outro é de tipo int,
o sistema realiza a conversão do int para float.
observação 2:
numa atribuição em que o alvo é uma variável int e a expressão resulta um valor float, o
sistema não realiza a conversão automática de float para int (“perdendo-se” a parte
fracionária do valor resultante), a conversão (se desejada) deverá ser explícita.
observação 3:
numa atribuição em que o alvo é uma variável float e a expressão resulta um valor int, o
sistema realiza a conversão de int para float .
import javax.swing.JOptionPane;
public class Aplicacao {
void executar( ){
int a,b; float x,y;
a=Integer.parseInt(JOptionPane.showInputDialog("valor a? "));
x=Float.parseFloat(JOptionPane.showInputDialog("valor x? "));
b=(int)(a+x);
y=a+x;
JOptionPane.showMessageDialog(null," valor de b=
" + b);
JOptionPane.showMessageDialog(null," valor de y=
" + y);
}
}
6
LP2
Laboratório de Programação 2
Ciência da Computação
funções matemáticas - aritméticas
algumas
abs(x)
módulo ou valor absoluto do parâmetro x (|x|)
atan(x)
medida do arco cuja tangente é o valor dado
como argumento x (tangente inversa).
cos(x)
co-seno do parâmetro x (radianos).
exp(x)
valor de e elevado à potência x (ex),
onde e é o número de Napier,
aproximadamente igual a 2,7182818.
log(x)
logaritmo natural de x (logaritmo com base e).
pow(x,p)
valor da potência x elevado a p.
sin(x)
valor do seno do parâmetro x (radianos).
sqrt(x)
raiz quadrada do parâmetro x.
7
LP2
Laboratório de Programação 2
Ciência da Computação
exemplo (função matemática):
import javax.swing.JOptionPane;
public class Aplicacao {
void executar( ){
float x;
double y;
radianos
String entrada;
entrada=JOptionPane.showInputDialog("medida do arco? ");
x=Float.parseFloat(entrada);
y=Math.sin(x);
JOptionPane.showMessageDialog(null," valor do seno=
" + y);
}
}
8
LP2
Laboratório de Programação 2
Ciência da Computação
conversão explícita de tipo ( cast)
forma geral:
(tipo) expressão
onde tipo é um tipo primitivo de dados
exemplo
import javax.swing.JOptionPane;
public class Aplicacao {
void executar( ){
int m;
double x,y;
x=Double.parseDouble(JOptionPane.showInputDialog("valor x? "));
y=Double.parseDouble(JOptionPane.showInputDialog("valor y? "));
m= (int) x + (int) y;
JOptionPane.showMessageDialog(null,"soma das partes inteiras " + m);
}
}
9
LP2
Laboratório de Programação 2
Ciência da Computação
conversão de tipo ( cast)
exemplo
import javax.swing.JOptionPane;
public class Aplicacao {
void executar( ){
int m;
double x,y;
x=Double.parseDouble(JOptionPane.showInputDialog("valor real x ? "));
m= (int) x;
y= x – m;
JOptionPane.showMessageDialog(null,"parte inteira " + m);
JOptionPane.showMessageDialog(null,"parte fracionaria " + y);
scr.println("parte inteira: "+ m);
scr.println("parte fracionaria: "+ y);
}
}
10
LP2
Laboratório de Programação 2
Ciência da Computação
Tipos primitivos numéricos - resumo
Tipos inteiros
byte 8 bits
short 16 bits
int
32 bits
long 64 bits
Tipos reais
float
double
-128 a 127
-32768 a 32767
-2147483648 a 2147483647
-9223372036854775808 a ...807
32 bits
7 dígitos significativos
ordem de grandeza 1038
64 bits
15 dígitos significativos
ordem de grandeza 10308
11
LP2
Laboratório de Programação 2
Ciência da Computação
Tarefa proposta
Elabore um programa Java que receba as medidas dos dois catetos
de um triângulo retângulo e exiba como resultados:
a medida da área e
a medida do perímetro desse triângulo.
Observações:
área= produto das medidas dos dois catetos
hipotenusa= raiz quadrada da soma dos quadrados dos dois catetos
perímetro= soma das medidas dos dois catetos mais a medida da hipotenusa.
12
LP2
Laboratório de Programação 2
Ciência da Computação
Tarefa proposta
Elabore um programa Java que receba os valores de preços de
um produto antes e depois de um reajuste e exiba como
resultado a taxa (%) de tal reajuste.
Observação:
a taxa deve ser calculada pela expressão:
(preço
novo – preço anterior)/ preço anterior x 100
13
Download

Tipos de dados em Java - PUC-SP