Buscar

Gabarito AP1 ComputacaoII 2016 2

Prévia do material em texto

UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
Gabarito da Avaliação Presencial – AP I
Período: 2016-2
Disciplina: Computação II
Coordenador da Disciplina: Yoisell Rodríguez Núñez
1. [1,0 ponto] Seja o seguinte algoritmo:
Faça um teste de mesa e complete o quadro a seguir para os seguintes valores:
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
Resposta:
x y z = x*y + 5 z ≤ 0 0 < z ≤ 100 z > 100 Resposta
3 2 3*2 + 5 = 11 NÃO SIM NÃO 'B'
150 3 150*3 + 5 = 455 NÃO NÃO SIM 'C'
7 -1 7*(-1) + 5 = -2 SIM NÃO NÃO 'A'
-2 5 (-2)*5 + 5 = -5 SIM NÃO NÃO 'A'
50 3 50*3 + 5 = 155 NÃO NÃO SIM 'C'
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
2. [2,0 pontos] Uma rainha requisitou os serviços de um monge, o qual exigiu o pagamento 
em grãos de trigo da seguinte maneira: os grãos de trigo seriam dispostos em um 
tabuleiro de xadrez, de tal forma que a primeira casa do tabuleiro tivesse um grão, e as 
casas seguintes o dobro da anterior. Construa um algoritmo que calcule quantos grãos 
de trigo a Rainha deverá pagar ao monge.
Resposta:
Pseudocódigo:
A sequência dos grãos no tabuleiro será: 1, 2, 4, 8, 16, 32,...
// Seção de Declarações
var
contador, total: inteiro
INÍCIO
// Seção de Comandos
total <== 1;
 PARA contador de 2 ATÉ 64 INCREMENO 1 FAÇA
 total <- total + 2**contador;
 FIMPARA;
 ESCREVA ("A rainha pagará ", total, "grãos de trigo ao monge.");
FIM
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
Algoritmo:
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.Locale;
public class Questao1_AP1_ComputacaoII {//Inicio da Classe
public static void main(String[] args) {//Inicio da Função main
double soma = 0;
for (int i = 0; i <= 63; i++) {
soma = soma + Math.pow(2, i);
}
BigDecimal numero = BigDecimal.valueOf(soma);
NumberFormat nf = NumberFormat
.getNumberInstance(new Locale("pt", "BR"));
System.out.println(nf.format(numero));
}
}
Executando o algoritmo acima, obtem-se a saída: 18.446.744.073.709.552.000, diferente do 
resultado esperado: 18.446.744.073.709.551.615
Utilizando a classe “BigDecimal” nas contas (visando trabalhar com uma maior precisão) é 
possível obter o valor correto:
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
import java.math.BigDecimal; 
public class Questao1_AP1_ComputacaoII { 
public static void main(String[] args) { 
 BigDecimal DOIS = new BigDecimal(2);
 BigDecimal soma = BigDecimal.ZERO; 
 for (int i = 0; i <= 63; i++) { 
 soma = soma.add(DOIS.pow(i)); 
 } 
 System.out.println(soma); 
 } 
}
=====================================================================
Ou, equivalentemente, em uma única linha, sem precisar do ciclo "for":
=====================================================================
import java.math.BigDecimal; 
public class Questao1_AP1_ComputacaoII { 
 public static void main(String[] args) { 
 System.out.println(new BigDecimal(2).pow(64).subtract(BigDecimal.ONE)); 
 } 
}
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
=====================================================================
Observação: O número de grãos de trigo que a Rainha deverá pagar ao monge é de:
18 446 744 073 709 551 615 (18 quintilhões, 446 quatrilhões, 744 trilhões, 73 bilhões, 709 
milhões, 551 mil, 615)
3. [3,5 pontos] Faça um algoritmo para ler: a descrição do produto (nome), a quantidade 
adquirida e o preço unitário.
Calcular e escrever o total (total = quantidade adquirida * preço unitário), o desconto e o 
total a pagar (total a pagar = total - desconto), sabendo-se que:
− Se quantidade <= 5 o desconto será de 2%
− Se quantidade > 5 e quantidade <=10 o desconto será de 3%
− Se quantidade > 10 o desconto será de 5%
Resposta:
Pseudocódigo:
// Seção de Declarações
var
produto: caracter
quantidade: inteiro
preco, total, total_a_pagar, desc_menor_5, desc_menor_10, desc_maior_10, desconto: real
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
INÍCIO
// Seção de Comandos
 desc_menor_5 <- 0.02
 desc_menor_10 <- 0.03
 desc_maior_10 <- 0.05
 ESCREVA("Nome do Produto:") 
 LEIA(produto)
 
 ESCREVA("Quantidade :")
 LEIA(quantidade)
 
 ESCREVA("Preco Unitario:")
 LEIA(preco)
 total <- quantidade * preco
// Calculando desconto
 SE (quantidade <= 5) ENTAO
 desconto <- total * desc_menor_5
 FIMSE
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
// Calculando desconto
 SE (quantidade > 5) E (quantidade <= 10) ENTAO
 desconto <- total * desc_menor_10
 FIMSE
// Calculando desconto
 SE (quantidade > 10) ENTAO
 desconto <- total * desc_maior_10
 FIMSE
 ESCREVA("Produto : ", produto)
 ESCREVA("Preco unitário : ", preco)
 ESCREVA("Total : ", total)
 ESCREVA("Desconto: ", desconto)
 ESCREVA("Total a pagar: ", total - desconto)
FIM
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
4. [3,5 pontos] Uma empresa quer verificar se um empregado está qualificado para a 
aposentadoria ou não. Para estar em condições, um dos seguintes requisitos deve ser 
satisfeito:
− Ter no mínimo 65 anos de idade.
− Ter trabalhado no mínimo 30 anos.
− Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.
Com base nas informações acima, faça um algoritmo que leia: o número do 
empregado (código), o ano de seu nascimento e o ano de seu ingresso na empresa. O 
programa deverá escrever a idade eo tempo de trabalho do empregado e a 
mensagem 'Requerer aposentadoria' ou 'Não requerer'.
Resposta:
Pseudocódigo:
// Seção de Declarações
var
ano, idade, tempoTrabalho, codigo: inteiro
INÍCIO
// Seção de Comandos
ESCREVA("Entre com seu codigo: ")
LEIA(codigo)
ESCREVA("Entre com a data de nascimento: ")
LEIA(idade)
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
ESCREVA("Entre com o Ano de ingresso na empresa: ")
LEIA(tempoTrabalho)
SE ( ano-idade >= 16 ) ENTAO
 SE (ano-idade >= 65) ENTAO
 ESCREVA("Requerer Aposentadoria ")
 SENAO
 SE (ano-tempoTrabalho >= 30) ENTAO
 ESCREVA("Requerer Aponsentadoria ")
 SENAO
 SE((ano-idade >= 60) E (ano-tempoTrabalho >= 25) ) ENTAO
 ESCREVA("Requerer Aponsentadoria ")
 SENAO
 ESCREVA("Nao Requerer Aponsentadoria ")
 FIMSE
 FIMSE
 FIMSE
SENAO
 ESCREVA("Voce não tem idade para trabalhar ")
FIMSE
FIM
UNIVERSIDADE FEDERAL FLUMINENSE 
ESCOLA DE ENGENHARIA INDUSTRIAL METALÚRGICA DE VOLTA REDONDA
CURSO DE ENGENHARIA DE PRODUÇÃO
Fundação Centro de Ciências e Educação Superior a Distância do Estado do Rio de Janeiro
Centro de Educação Superior a Distância do Estado do Rio de Janeiro
Observação:
 É importante destacar que, as respostas acima são “possíveis respostas”. Não existe 
apenas uma resposta para os exercícios solicitados, já que cada aluno pode implementar 
os algoritmos de uma forma diferente. O que realmente importa é que os algoritmos 
sejam implementados corretamente (de preferência na linguagem adotada do curso – 
Java).

Continue navegando