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 II Período: 2016-2 Disciplina: Computação II Coordenador da Disciplina: Yoisell Rodríguez Núñez Questão 1. [1,0 ponto] 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++) { //Quantidade de cédulas para o valor cédulas[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 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 2. [3,0 pontos] Ler uma matriz A quadrada de ordem 3 e a seguir verificar se a matriz informada é uma matriz identidade. Para que uma matriz seja matriz identidade ela tem que ser quadrada e os elementos que pertencerem à diagonal principal devem ser iguais a 1 e o restante dos elementos iguais a zero. Observação: A matriz identidade também é chamada de matriz unidade. Resposta: import java.util.Scanner; public class MatrizIdentidade { public static void main(String[] args) { Scanner ler = new Scanner(System.in); int n = 3; // ordem da matriz quadrada int i, j; int m[][] = new int[n][n]; // matriz quadrada // entrada de dados for (i=0; i<n; i++) { System.out.printf("Informe os elementos da %da. linha:\n", (i+1)); for (j=0; j<n; j++) { System.out.printf("m[%d][%d] = ", i, j); m[i][j] = ler.nextInt(); } System.out.printf("\n"); } // processamento: verificando se a matriz informada é uma matriz identidade boolean midentidade = true; for (i=0; (i<n)&&(midentidade==true); i++) { for (j=0; (j<n)&&(midentidade==true); j++) { 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 // verificando se o elemento da diagonal principal não é igual a 1 if ((i == j) && (m[i][j] != 1)) midentidade = false; // não é uma matriz identidade // verificando se o elemento que não pertence a diag. principal não é igual a 0 else if ((i != j) && (m[i][j] != 0)) midentidade = false; // não é uma matriz identidade } } // saída: exibindo a matriz informada e indicando se ela é uma matriz identidade System.out.printf("\n"); for (i=0; i<n; i++) { System.out.printf("%da. linha: ", (i+1)); for (j=0; j<n; j++) { System.out.printf("%d ", m[i][j]); } System.out.printf("\n"); } if (midentidade == true) System.out.printf("\nA matriz informada é uma matriz identidade.\n"); else System.out.printf("\nA matriz informada \"nao\" é uma matriz identidade.\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 3. [3,0 pontos] Crie um Programa que implemente e escreva o Triângulo de Pascal em um arquivo de saída. Neste Triângulo, cada elemento é igual à soma dos elementos que lhe ficam imediatamente acima, caso o elemento não seja nem o primeiro nem o último da sua linha. Senão, o elemento é um. A dimensão do Triângulo deve ser passada como parâmetro de entrada. Se a dimensão for seis, o seu programa deve reproduzir o seguinte arquivo: Triangulo de Pascal de dimensão 6: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Um exemplo de uso desse programa seria java TriPascal 6 saida.txt, onde saida.txt é o nome do arquivo de saída. Resposta: import java.util.Scanner; public class TrianguloPascal { public static void main(String[] args) { Scanner ler = new Scanner(System.in); System.out.printin(“Digite o número de linhas desejadas para o Triângulo de Pascal: ”) int nlinhas = ler.nextint(); int tpascal[][]; tpascal=newint[nlinhas][nlinhas] 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 x=0; x<nlinhas; x++) { System.out.printf("\n"); for(int y=0; y<=x; y++){ if(y=0){ tpascal[x][y]=1; } if(x==y){ tpascal[x][y]=1; } if((y!=0) && (x!=0)){ tpascal[x][y]=tpascal[x-1][y-1]+tpascal[x+1][y]; } System.out.printf(tpascal[x][y]+” ”) } } } } Questão 4. [3,0 pontos] Faça uma função que receba um vetor de números reais e um número inteiro. O procedimento deve ordenar os elementos do vetor. Caso o valor do número inteiro passado for maior que zero, a ordem deve ser crescente. Caso contrário, a ordem deve ser decrescente. Resposta: import java.util.Scanner; public class OrdenarVetor { public static void main(double[]vet, int ordem) { 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 Scanner ler = new Scanner(System.in); double menor, maior; int pos; if(ordem>0){ for(int i=0; i<vet.lenght; i++){ menor=vet[i]; pos=i; for(int j=0; j<vet.length; j++) if(vet[j]<menor){ menor=vet[j]; pos=j; } if(pos!=i){ double aux=vet[i]; vet[i]=menor; vet[pos]=aux; } } } else{ for(int i=0; i<vet.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ânciado Estado do Rio de Janeiro Centro de Educação Superior a Distância do Estado do Rio de Janeiro maior=vet[i]; pos=i; for(int j=0; j<vet.length; j++) if(vet[j]>maior){ maior=vet[j]; pos=j; } if(pos!=i){ double aux=vet[i]; vet[i]=maior; vet[pos]=aux; } } } } 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 (na linguagem adotada do curso – Java).
Compartilhar