Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aluno: Marcus André Alves Zimmermann Vieira Matrícula: 18113160162 Curso: Engenharia de Produção Pólo: São Gonçalo Coordenador: Prof. Yoisell Rodríguez Núñez Tutor: Carlos Edilson Santana dos Santos APX2 de computação II (19/06/2021) Assumo o compromisso de confidencialidade e de sigilo escrito, fotográfico e verbal sobre as questões do exame ou avaliação pessoais que me serão apresentadas, durante o curso desta disciplina. Comprometo-me a não revelar, reproduzir, utilizar ou dar conhecimento, em hipótese alguma, a terceiros e a não utilizar tais informações para gerar benefício próprio ou de terceiros. Reitero minha ciência de que não poderei fazer cópia manuscrita, registro fotográfico, filmar ou mesmo gravar os enunciados que me são apresentados. Declaro, ainda, estar ciente de que o não cumprimento de tais normas caracterizará infração ética podendo acarretar punição nas esferas penal, civil e administrativa de acordo com a legislação vigente. ORIENTAÇÕES PARA A AVALIAÇÃO: • Data de início da APX2: 17/junho às 10hs • Data limite para entrega da APX2: 19/junho às 10hs • Todos os algoritmos deverão ser implementados na linguagem 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). • Enviar o .java dos exercícios implementados. Questão 1 (2,0 pontos) Implementar um programa que obtenha a cotação do dólar (U$) em relação ao real (R$) e a seguir armazene em vetor A com 20 elementos as seguintes conversões: A[i] := cotacao do dolar * i, para todo i variando de 1 até 20. Algoritmo: import java.util.Scanner; // Importando a classe Scanner public class AP2_Q1 { // Início da classe public static void main(String[] args) { // Início da função main Scanner ent = new Scanner(System.in); // Criação do objeto Scanner int n = 20, i; // Declaração de variáveis double valordaconversao[] = new double[n] , cambio; // Declaração de variáveis System.out.printf("Digite o valor da cotação do dolar(U$) em relação ao real (R$):"); // Interação com o usuário cambio = ent.nextDouble(); // Leitura do número digitado pelo usuário for (i=0;i<n;i++){ //Estrutura de repetição valordaconversao[i] = cambio*(i+1); } System.out.printf("\n"); // Impressão de respostas for(i=0;i<n;i++){ //Estrutura de repetição System.out.printf("U$ %2d.00 = R$ %5.2f\n",(i+1),valordaconversao[i]); // Impressão de respostas } } // Fim da função main } // Fim da classe Print da execução do algoritmo: Questão 2 (2,0 pontos) Ler as duas notas bimestrais para um conjunto de 10 alunos. Armazenar as notas informadas em dois vetores “Nota1” e “Nota2” do tipo real. Escreva um programa que calcule a média aritmética simples das notas informadas armazenando o resultado em um vetor “Result” de mesmo tipo e tamanho. Ao mostrar os resultados exibir a situação de cada aluno. Se a média calculada for superior ou igual a 7 o aluno estará “aprovado”, caso contrário, a situação do aluno será “reprovado”. Algoritmo: import java.util.Scanner; // Importando a classe Scanner public class AP2_Q2 { // Início da classe public static void main(String[] args) { // Início da função main Scanner ent = new Scanner(System.in); // Criação do objeto Scanner int n = 10, i; // Declaração de variáveis double nota1[] = new double[n], nota2[] = new double[n], result[] = new double[n]; // Declaração de variáveis for (i=0; i<n; i++) { // Estrutura de repetição System.out.printf("Informe as notas do %2dº aluno de %d.\n", (i+1), n); // Interação com o usuário System.out.printf("1ª Nota = "); // Interação com o usuário nota1[i] = ent.nextDouble(); // Leitura do valor digitado pelo usuário System.out.printf("2ª Nota = "); // Interação com o usuário nota2[i] = ent.nextDouble(); // Leitura do valor digitado pelo usuário result[i] = (nota1[i] + nota2[i]) / 2; // Cálculo da média System.out.printf("\n"); // Impressão de uma linha vazia para separar os dados } System.out.printf("\nAluno 1ª Nota 2ª Nota Média Situação"); // Impressão de respostas System.out.printf("\n------------------------------------"); // Impressão de respostas for (i=0; i<n; i++) { // Estrutura de repetição System.out.printf("\n%5d %7.2f %7.2f %5.2f ", (i+1), nota1[i], nota2[i], result[i]); // Impressão de respostas if (result[i] >= 7.0) // Estrutura IF - Condicional System.out.printf("Aprovado"); else System.out.printf("Reprovado"); // Caso condição acima não seja atendida } System.out.printf("\n------------------------------------\n"); // Impressão de respostas } // Fim da função main } // Fim da classe Print da execução do algoritmo: Questão 3 (2,0 pontos) Ler uma matriz A quadrada de ordem 3 e a seguir criar a sua matriz transposta. Chama-se transposta de A e indica-se por At a matriz que se obtém trocando-se ordenadamente as linhas pelas colunas de A. Algoritmo: import java.util.Scanner; // Importando a classe Scanner public class AP2_Q3 { // Início da classe public static void main(String[] args) { // Início da função main Scanner ent = new Scanner(System.in); // Criação do objeto Scanner int n = 3, i, j, a[][] = new int[n][n], at[][] = new int[n][n]; // Declaração de variáveis, incluindo n como a ordem das matrizes for (i=0; i<n; i++) { // Estrutura de repetição System.out.printf("Informe os elementos da %da. linha:\n", (i+1)); // Interação com o usuário for (j=0; j<n; j++) { // Estrutura de repetição System.out.printf("a[%d][%d] = ", i, j); // Interação com o usuário a[i][j] = ent.nextInt(); // Leitura do valor digitado pelo usuário } System.out.printf("\n"); // Impressão de uma linha vazia para separar os dados } for (i=0; i<n; i++) { // Estrutura de repetição for (j=0; j<n; j++) { // Estrutura de repetição at[j][i] = a[i][j]; // Transposição da matriz a } } System.out.printf("Matriz Original\n"); // Impressão de resultados da matriz for (i=0; i<n; i++) { // Estrutura de repetição System.out.printf("%dª linha: ", (i+1)); // Impressão de resultados da matriz for (j=0; j<n; j++) { // Estrutura de repetição System.out.printf("%d ", a[i][j]); // Impressão de resultados da matriz } System.out.printf("\n"); // Impressão de uma linha vazia para separar os dados } System.out.printf("\nMatriz Transposta\n"); // Impressão de resultados da matriz transposta for (i=0; i<n; i++) { // Estrutura de repetição System.out.printf("%dª linha: ", (i+1)); // Impressão de resultados da matriz for (j=0; j<n; j++) { // Estrutura de repetição System.out.printf("%d ", at[i][j]); // Impressão de resultados da matriz } System.out.printf("\n"); // Impressão de uma linha vazia para separar os dados } } // Fim da função main } // Fim da classe Print da execução do algoritmo: Questão 4 (2,0 pontos) Escreva um programa em Java que, ao receber como parâmetro de entrada um número de 1 a 9 (você deve testar se o número informado segue este intervalo) e o nome de um arquivo de saída, crie uma pirâmide de números neste arquivo de saída. Por exemplo, se o número passado for três e o nome do arquivo for teste.txt, será escrito em teste.txt as seguintes sequências, uma por linha: 1 121 12321 Algoritmo: import java.io.BufferedWriter; // Importando a classe BufferedWriter (io) import java.io.File; // Importandoa classe File (io) import java.io.FileWriter; // Importando a classe FileWriter (io) import java.util.Scanner; // Importando a classe Scanner public class AP2_Q4 { // Início da classe public static void main(String[] args) throws java.io.IOException { // Início da função main Scanner ent = new Scanner(System.in); // Criação do objeto Scanner Scanner entrada = new Scanner(System.in); // Criação do objeto Scanner String arquivo, diretorio; // Declaração de variáveis int num; // Declaração de variáveis System.out.printf("\nEscolha um número de 1 a 9:\n"); // Interação com o usuário num = entrada.nextInt(); // Leitura do valor digitado pelo usuario if ((num >= 1) && (num <= 9)){ // Estrutura IF - Condicional System.out.printf("Digite o nome do arquivo de saida:\n"); // Interação com o usuário //do arquivo de saida arquivo = ent.nextLine(); // Leitura do nome digitado pelo usuário System.out.printf("Digite o caminho do diretório onde será salvo o arquivo de saída:\n"); // Interação com o usuário diretorio = ent.nextLine(); // Leitura do diretório digitado pelo usuario File arq = new File(diretorio, arquivo+".txt"); // Criação do arquivo com a pirâmide BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); // Gravação em um fluxo de saída de caracteres String s = null; // Declaração de variáveis for (int k = 1; k <= num; k++){ // Estrutura de repetição s = ""; for (int i = 1; i <= k; i++) // Estrutura de repetição s += i; for (int j = k - 1; j >= 1; j--) // Estrutura de repetição s += j; bw.write(s+"\n"); // Escreve uma string } bw.flush(); // Liberação de fluxo bw.close(); // Fechamento de fluxo } else { System.out.printf("Número digitado está fora do intervalo de 1 a 9. Tente novamente.\n");} // Impressão de resposta caso usuário não atenda condição anterior } // Fim da função main } // Fim da classe Print da execução do algoritmo: Questão 5 (2,0 pontos) Na matemática, a Sucessão de Fibonacci, é uma sequência de números inteiros, na qual, cada termo (a partir do terceiro) corresponde à soma dos dois anteriores: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Implemente uma função que recebe através de parâmetro um número indicando a posição do termo e retorna o valor correspondente na sequência de Fibonacci. Algoritmo: import java.util.Scanner; // Importando a classe Scanner public class AP2_Q5 { // Início da classe public static void main(String[] args) { // Início da função main Scanner ent = new Scanner (System.in); // Criação do objeto Scanner int n; // Declaração de variável System.out.printf("Informe a posição do termo dentro da sequência de Fibonacci:"); // Interação com o usuário n = ent.nextInt(); // Leitura do valor informado pelo usuário System.out.printf("\nO %dº termo na sequência de Fibonacci é %d.\n", n, fib(n)); // Impressão de resposta } // Fim da função main public static int fib(int n) { // Início da função de Fibonacci int i, t1, t2, t3 = 0; // Declaração de variáveis if ((n == 1) || (n == 2)) // Estrutura IF - Condicional return(1); // Impressão do valor 1 caso seja selecionado o primeiro ou o segundo termo else { // Caso a condição anteior não seja atendida t1 = 1; // Definindo o valor do primeiro termo t2 = 1; // Definindo o valor do segundo termo for(i=3; i<=n; i++) { // Estrutura de repetição t3 = t2 + t1; // Estabelecendo que o terceiro termo é resultado da soma dos dois anteriores t1 = t2; // Em uma etapa seguinte, estabelece que o primeiro termo assume o valor do segundo termo na etapa anterior t2 = t3; // Em uma etapa seguinte, estabelece que o segundo termo assume o valor do terceiro termo na etapa anterior } return(t3); // Impressão do termo solicitado pelo usuário } } // Fim da função de Fibonacci } // Fim da classe Print da execução do algoritmo:
Compartilhar