Baixe o app para aproveitar ainda mais
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).
Compartilhar