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 a Distância No.2 – AD 2 Período: 2022-1 Disciplina: Computação II Coordenador da Disciplina: Yoisell Rodríguez Núñez Data: 02/05/2022 Questão 1) [1,0 ponto] Escreva um programa em Java que, dada uma variável x, retorne o valor de y de acordo com a seguinte regra: se x é par, y = x / 2 se x é impar, y = 3 * x + 1 imprime y O programa deverá atribuir o valor de y em x e continuar até que y tenha valor final igual a 1. Por exemplo, para x = 13, a saída será: 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 Resposta: import java.util.Scanner; public class ImprimeValorY { public static void main(String[] args) { long tempoInicial = System.currentTimeMillis(); long x = 999999999, y = 0; for (int j = 0; j < 10000000; j++) { for (int i = 0; y != 1; i++) { if (x % 2 == 0) { 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 y = x / 2; } else { y = 3 * x + 1; } System.out.print(y + ", "); x = y; } } System.out.println("\nPrimeiro método concluído em " + (System.currentTimeMillis() - tempoInicial)); tempoInicial = System.currentTimeMillis(); long a = 999999999, b = 0; for (int i = 0; i < 10000000; i++) { while (b != 1) { if (a % 2 == 0) { b = a / 2; } else { b = 3 * a + 1; } System.out.print(b + ", "); a = b; } } System.out.println("\nSegundo método concluído em " + (System.currentTimeMillis() - tempoInicial)); } } 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 Questão 2) [2,0 pontos] Faça um algoritmo que leia dois conjuntos de números com a mesma quantidade. Exiba a intersecção dos conjuntos, ou seja, os números que são repetidos nos dois conjuntos. Resposta: import java.util.Scanner; public class InterseccaoConjuntos { public static void main(String[] args) { int qtde = 0; String conjuntoA[], conjuntoB[], aux = "Conjunto A", result = ""; System.out.println("Intersecção entre dois conjuntos"); System.out.println("Entre com a quantidade de elementos:"); qtde = new Scanner(System.in).nextInt(); conjuntoA = new String [qtde]; conjuntoB = new String [qtde]; for (int a = 0; a < qtde; a++){ System.out.println(aux + " - Entre com o elemento: " + a); conjuntoA[a] = new Scanner(System.in).next(); } aux = "Conjunto B"; for (int b = 0; b < qtde; b++){ System.out.println(aux + " - Entre com o elemento: " + b); conjuntoB[b] = new Scanner(System.in).next(); for (int a = 0; a < qtde; a++){ if (conjuntoA[a].equals(conjuntoB[b])){ if (result.length() > 0) result = result + ", "; result = result + conjuntoB[b]; 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 } } } System.out.println("Coleta de dados concluída!"); System.out.println("Intersecção entre A e B: " + result); } } Questão 3) [2,0 pontos] Implemente a lógica para realização de saques em um caixa eletrônico considerando que o mesmo armazena cédulas de R$100,00, R$50,00, R$20,00, R$10,00, R$5,00, R$2,00 e R$1,00 e devem ser entregues ao cliente o menor número possível de cédulas. Resposta: import java.util.Scanner; public class CaixaEletronico { public static void main(String[] args) { //Cédulas disponíveis no caixa eletrônico int[] cedulas = {100, 50, 20, 10, 5, 2, 1}; //Quantidade total de cédulas entregues ao cliente int quantidadeTotal = 0; //valor a ser sacado pelo cliente int valorReais; System.out.print("Digite o valor a ser sacado pelo cliente: "); valorReais = input.nextInt(); //Percorrendo todas as cédulas disponíveis no caixa eletrônico for(int i = 0; i < cedulas.length; i++) { 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 //Quantidade de cédulas para o valor cédulas[i] int quantidadeCedulas = valorReais/cedulas[i]; //Impressão da quantidade de cédulas System.out.println("Quantidade de cédulas de "+ cedulas[i] +": " +quantidadeCedulas ); //Resto da divisão valorReais %= cedulas[i]; //Quantidade total de cédulas entregues ao cliente quantidadeTotal += quantidadeCedulas; } //Impressão System.out.println("Quantidade total: "+quantidadeTotal); } } Resultado obtido durante a execução do código para valorReais = 143: Quantidade de cedulas de 100: 1 Quantidade de cedulas de 50: 0 Quantidade de cedulas de 20: 2 Quantidade de cedulas de 10: 0 Quantidade de cedulas de 5: 0 Quantidade de cedulas de 2: 1 Quantidade de cedulas de 1: 1 Quantidade total: 5 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 Questão 4) [2,0 pontos] Receba do usuário uma matriz de números inteiros limitados de 1 a 9. Exiba o seu espelho. Por exemplo, o espelho da matriz: 1 2 4 6 8 9 3 5 é: 6 4 2 1 5 3 9 8 Resposta: import java.util.Scanner; public class MatrizEspelhada { public static void main(String[] args) { int [][] matrix; int tamanho, fInicial = 0, fFinal = 0; System.out.print("Entre com o tamanho do vetor: "); tamanho = new Scanner(System.in).nextInt(); matrix = new int [tamanho][tamanho]; System.out.print("Entre com o valor da faixa incial"); fInicial = new Scanner(System.in).nextInt(); System.out.print("Entre com o valor da faixa final"); fFinal = new Scanner(System.in).nextInt(); for (int i = 0 ; i < tamanho; i++) { 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 for (int j = 0 ; j < tamanho; j++) { do{ System.out.println("Entre com o valor dentro da faixa "+fInicial +" a "+ fFinal+":"); matrix[i][j] = new Scanner(System.in).nextInt();} while (matrix[i][j]< fInicial || matrix[i][j]>fFinal ); } } System.out.println ("Matriz"); for (int i = 0;i < tamanho; i++){ for (int j = 0;j < tamanho; j++){ System.out.print(matrix[i][j] + " "); } System.out.print("\n"); } System.out.println ("Espelho"); for (int i = 0;i < tamanho; i++){ for (int j = tamanho-1;j >= 0; j--){ System.out.print(matrix[i][j] + " "); } System.out.print("\n"); } } } 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 Questão 5) [3,0 pontos] Em uma cidade do interior, sabe-se que de janeiro a abril de 1990 (121 dias) não ocorreu temperatura inferior a 15,5 graus centígrados nem superior a 39,7 graus centígrados. Considere um arquivo texto (denominado “temperat.txt”) que contém todas as temperaturas ocorridas nestes 121 dias (uma temperatura por linha). Faça um programa em Java que calcule e apresente: a menor temperatura ocorrida; a maior temperatura ocorrida; a temperatura média; número de dias nos quais a temperatura foi inferior à temperatura média; número de dias nos quais a temperatura foi superior à temperatura média. Resposta: import java.util.Scanner; import java.io.*; import java.util.Arrays; public class Temperatura { public static void main(String[] args) { Scanner s = new Scanner(System.in); double temperaturas[] = new double[121]; // Define vetor de // temperaturas int int = 0; double dias_abaixo, dias_acima, temp_media; double temp_total = 0; 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 // Trecho do programa que lê as temperaturas e as armazena em um vetor try{ BufferedReader br = new BufferedReader(new FileReader("c:/EngProd/ADs/AD2/temperat.txt")); // Abrindo o arquivo while(br.ready()){ String linha = br.readLine(); // Lê linhas do arquivo temperaturas[ind] = Double.parseDouble(linha); temp_total = temp_total + temperaturas[ind]; // Soma as temperaturas ind++; } br.close(); // Fechando o arquivo }catch(IOException ioe){ // Para tratar o erro de arquivo ioe.printStackTrace(); } temp_media = temp_total / 121; // Calcula temperatura media Arrays.sort(temperaturas); // Ordena as temperaturas em forma // ascendente dias_abaixo = 0; // Inicializando a temperatura abaixo da média dias_acima = 0; // Inicializando a temperatura acima da média ind = 0; 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 // Conta dias abaixo e acima da media while (ind < 121){ if (temperaturas[ind] < temp_media) { dias_abaixo++; } else if (temperaturas[ind] > temp_media) { dias_acima++; } ind++; } System.out.println("Menor temperatura registrada: " + temperaturas[0]); System.out.println(" "); System.out.println("Maior temperatura registrada: " + temperaturas[120]); System.out.println(" "); System.out.println("Temperatura média: " + temp_media); System.out.println(" "); System.out.println("Número de dias abaixo da temperatura média " + dias_abaixo); System.out.println(" "); System.out.println("Número de dias acima da temperatura média " + dias_acima); System.out.println(" "); 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ções: É 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 poderá implementar os algoritmos de uma forma diferente. O mais importante é que os algoritmos sejam implementados corretamente na linguagem adotada do curso – Java. Os alunos deverão enviar um documento com as respostas em formato .doc ou .pdf (via plataforma). No documento deverá aparecer em detalhes (com comentários) os códigos bem como a simulação de alguns exemplos (printScreen (captura) da tela com algumas execuções do programa). Não esquecer de enviar também o .java dos exercícios implementados. Observação: A nota dos alunos que não enviarem o .java, será diminuída em 40% (este critério vale para todas as ADs). Alunos: Data limite para entrega --> 02/05, conforme Cronograma. Mediadores a distância: Data limite para lançamento das notas --> 22/05
Compartilhar