Buscar

APX2-CPII-2021-1 nota 10

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 7 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 7 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

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:

Continue navegando