Вы находитесь на странице: 1из 3

Instituto Metrpole Digital IMD Aluno: Luiz Matheus Teixeira Rodrigues Turma: 28

Programao Estruturada Atividade 09 do Moodle. Questo 1 - Porque no usar iterao ao invs de recursividade? Apesar de a iteratividade oferecer um melhor desempenho, A recursividade simplifica a programao das rotinas, Tornando mais simples a compreenso do programa. Questo 2 - Desenvolva um programa em Java que utilize uma estrutura modular com a funo recursiva para determinar e retornar o n-simo termo da sequncia de Fibonacci. package sequencia.de.fibonacci; import java.util.Scanner; public class SequenciaDeFibonacci { public static void main(String[] args) { int fib; Scanner ler = new Scanner(System.in); System.out.printf("Programa que mostra o n-simo termo da Sequncia de Fibonacci.\n"); System.out.printf("Programa feito por Luiz Matheus Teixeira Rodrigues. \n"); System.out.printf("Determine qual termo voc quer ver.\n"); int x = ler.nextInt(); fib = Calculadora_da_Sequencia(x); System.out.printf("O %d termo da sequencia eh %d.",x,fib); System.out.printf("\n"); /* Observao Sobre o Programa: A recursividade fez com que o programa * ficasse muito lento, se caso o o usuario digitar um termo maior * ele vai ter que ter um pouquinho de paciencia pra esperar o computador * executar a rotina, acredito que neste caso o melhor seria utilizar um * programa iterativo. */ } public static int Calculadora_da_Sequencia(int numero) { if(numero == 0) return 0; else if(numero == 1) return 1; else return Calculadora_da_Sequencia(numero-1)+Calculadora_da_Sequencia(numero-2); } }

Instituto Metrpole Digital IMD Aluno: Luiz Matheus Teixeira Rodrigues Turma: 28

Questo 3 - Escreva uma funo recursiva que calcule a soma dos elementos positivos do vetor de inteiros v de tamanho n >= 0. package soma.de.termos.positivos.de.um.vetor; import java.util.Scanner; public class SomaDeTermosPositivosDeUmVetor { public static void main(String[] args) { Scanner ler = new Scanner(System.in); System.out.printf("Digite o Tamando do vetor. \n"); int n = ler.nextInt(); int v[] = new int[n]; for(int i=0;i<n;i++) { System.out.printf("Digite o %d termo do vetor.\n",i+1); v[i]=ler.nextInt(); } int soma = Somador_de_Termos_Positivos(v,n); System.out.printf("A soma dos termos Positivos eh igual a %d\n",soma); } public static int Somador_de_Termos_Positivos(int v[],int n) { int pn=0; if (n == 0) return pn; else { int soma; soma = Somador_de_Termos_Positivos( v, n-1); if (v[n-1] > 0) { soma = v[n-1]+soma; } return soma; } } } Questo 4 - Qual o valor de X(4) na seguinte funo recursiva? package teste; public class Teste { public static void main(String[] args)

Instituto Metrpole Digital IMD Aluno: Luiz Matheus Teixeira Rodrigues Turma: 28

{ int n = 4; System.out.printf("%d\n", X(n)); } public static int X (int n) { if (n == 1 || n == 2) return n; else return X(n-1) + n * X(n-2); } } O retorno para X(4) 13. Questo 5 - Qual o resultado da execuo do programa abaixo? package teste02; public class Teste02 { public static void main(String[] args) { System.out.println(ff(7)); } public static int ff( int n) { if (n == 1) return 1; if (n % 2 == 0) return ff( n/2); return ff( (n-1)/2) + ff( (n+1)/2); } } O resultado final 3.

Оценить