programação estruturada – atividade 09 do moodle

3
Instituto Metrópole Digital IMD Aluno: Luiz Matheus Teixeira Rodrigues Turma: 28 Programação Estruturada Atividade 09 do Moodle. Questão 1 - Porque não usar iteração ao invés de recursividade? Apesar de a iteratividade oferecer um melhor desempenho, A recursividade simplifica a programação das rotinas, Tornando mais simples a compreensão do programa. Questão 2 - Desenvolva um programa em Java que utilize uma estrutura modular com a função recursiva para determinar e retornar o n-ésimo termo da sequência 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 Sequência 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"); /* Observação 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); } }

Upload: luiz-matheus-teixeira-rodrigues

Post on 24-Apr-2015

32 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Programação Estruturada – Atividade 09 do Moodle

Instituto Metrópole Digital – IMD Aluno: Luiz Matheus Teixeira Rodrigues

Turma: 28

Programação Estruturada – Atividade 09 do Moodle.

Questão 1 - Porque não usar iteração ao invés de recursividade? Apesar de a iteratividade oferecer um melhor desempenho, A recursividade simplifica a programação das rotinas, Tornando mais simples a compreensão do programa. Questão 2 - Desenvolva um programa em Java que utilize uma estrutura modular com a função recursiva para determinar e retornar o n-ésimo termo da sequência 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 Sequência 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"); /* Observação 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); } }

Page 2: Programação Estruturada – Atividade 09 do Moodle

Instituto Metrópole Digital – IMD Aluno: Luiz Matheus Teixeira Rodrigues

Turma: 28

Questão 3 - Escreva uma função 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; } } }

Questão 4 - Qual o valor de X(4) na seguinte função recursiva? package teste; public class Teste { public static void main(String[] args)

Page 3: Programação Estruturada – Atividade 09 do Moodle

Instituto Metrópole 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. Questão 5 - Qual o resultado da execução 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.