Buscar

2022-1 AD2 Computação II CEDERJ

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando