Estrutura de decisão e repetição em JAVA P. O. O. Prof. Grace.
Transcript of Estrutura de decisão e repetição em JAVA P. O. O. Prof. Grace.
Estrutura de decisão e repetição em JAVA
P. O. O.
Prof. Grace
2
Elevador para pessoas
Resolva o exercício para um elevador convencional que precisa levar n pessoas, todas com peso z.
– Capacidade do elevador: double capacidade– Peso individual: double pesoIndiv– Qtd pessoas: int qtdPessoas– Qtd de pessoas por viagem: (int) capacidade/pesoIndiv– Qtd viagens: Qtd pessoas/ qtd pessoas por viagem– Arredondar pra cima!
3
Trecho da Solução
4
Exercícios
Seja n uma variável inteira contendo o número de
erros detectados em determinado processo. Use o
operador condicional ternário para codificar uma
instrução capaz de exibir saídas como:
– 1 erro detectado.
– 5 erros detectados
5
Solução 1
6
Solução 2
7
Solução 3
8
Solução 4
Não Funciona!!!
9
Estrutura de decisão múltipla
Usada quando precisamos escolher uma entre várias alternativas previamente definidas;
switch(exp)
{
case const1: comando1;
break;
case const2: comando2;
break;
...
case constn: comandon;
break;
default: comando;
}
10
Quais as saídas nesse exemplo?
11
Calculadora
Uso da estrutura de decisão múltipla para
implementar uma simples calculadora;
O usuário digita uma expressão da forma
val1 <enter> operador <enter> val2 <enter> e o
programa fornece-lhe seu valor como resposta.
Os valores podem ser reais e os operadores aceitos
são: +, -, * e /.
12
Solução (implementar)
Converte o operador de String para caracter
13
Alterando a calculadora
Altere o exemplo anterior para que a calculadora exiba um erro caso seja feita uma divisão por zero.
14
Outro exemplo: Rodízio
Dados os dígitos da placa de um carro, informe
o dia do seu rodízio. Use switch-case.
– Lembrando que o operador % (resto da divisão
inteira) pode nos auxiliar a selecionar o ultimo
dígito de um número inteiro. 1003 % 10 => 3
3076 % 10 => 6
15
Trecho da Solução
... System.out.println("Digite a placa:");int placa = entrada.nextInt();if (placa<0 || placa >9999)
System.out.println("Placa inválida!");elseswitch( placa%10 )
{ case 1: case 2: System.out.println("2a feira"); break; case 3: case 4: System.out.println("3a feira"); break;
...default : System.out.println("6a feira");
}
16
Solução 2
17
Repetição com precondição
while (condição)
comando; V
Condição verdadeira para executar o comando
executado repetidamente
18
Exercício – Exibir dígitos
Dado um número natural, exibir seus dígitos invertidos.
Ex: 8315 => 5138 Como? Divisão sucessiva por 10 (while n!=0).
19
Solução
20
Problemas...
Se n for negativo? Validar entrada...
E se n for igual a zero? Será impresso? Usar a repetição com pós-condição.
do{
<bloco de instruções> ...} while (<condição>);
21
Solução 2
Variável declarada fora do bloco de repetição
22
Exercício Dado um número natural, exibir seu fatorial.
23
Repetição com contador
for (inicialização; condição; alteração)
comando; V
Atribui valor inicial ao contador
verifica se a contagem continua ou chegou ao fim
modifica o valor do contador
executado repetidamente
24
Fatorial
25
Exercício
Numa agência bancária, as contas são identificadas por números de até 6 dígitos seguidos de um dígito verificador, calculado da seguinte forma:
Ex.: Seja n = 7314 o número da conta.
1) Obtemos a soma dos dígitos de n:s = 7+3+1+4 = 15
2) Obtemos o dígito verificador a partir do resto da divisão de s por 10:d = s % 10 = 15 % 10 = 5
O número da conta é: 007314-5
Dado um número de conta n, exiba o número de conta completo correspondente.
26
Lógica para a solução
Leia n;
Use um laço de repetição para somar seus dígitos;
Após o laço, obtenha o DV pelo resto da divisão por 10;
Imprima o número da conta formatado, incluindo o DV;
27
Solução
28
Mais exercícios
Um comerciante precisa informatizar o caixa de sua loja.
Codifique um programa que:- Leia uma série de valores correspondendo aos preços das
mercadorias compradas por um cliente (o valor zero finaliza a
entrada);- Calcule o valor total;- Aplique o desconto
conforme tabela ao lado;- Mostre o valor a ser pago
pelo cliente.
29
Solução
30
Pergunta!
É possível usar a estrutura switch-case para a solução do exercício anterior (caixa)?
Explique porquê?
31
Lista de exercícios para dia 19/10
Entregar no dia da prova (19/10)– Q. 1, 5 e 6– Q. 12 e 16
Entregar relatório do Congresso (05/10)
32
Mais exercícios para estudar
Dado n positivo e uma seqüência de n números calcular a soma dos elementos da seqüência.
Faça um loop para validar se n é maior que zero, ou seja, enquanto n<=0 exiba uma mensagem de erro e solicite um novo valor de n.
33
Mais exercícios
Dado n positivo e uma seqüência de n números
calcular a média dos elementos da seqüência.
Faça um loop para validar se n é maior que zero,
ou seja, enquanto n<=0 exiba uma mensagem de
erro e solicite um novo valor de n.
Idem anterior, determinando o maior e o menor.
Dado N >= 0 inteiro e X real, calcular X elevado a potência N (sem usar pow).
34
Próximas aulas
05/10: Congresso 12/10: Feriado 19/10: Prova 1