Baixe o app para aproveitar ainda mais
Prévia do material em texto
PERGUNTA 1 Descreva o que você aprendeu sobre recursividade e comente sobre a diferença entre iteração e recursão. Cite algumas vantagens e desvantagens de se utilizar recursão. Por fim, implementar um dos seguintes problemas, na linguagem Java ou PHP, utilizando recursividade. O que vai determinar qual o problema que deverá ser feito é o último dígito da sua matrícula de aluno da UnP, assim: O aluno que tem o último dígito da matrícula 0, 1, 2 ou 3 deverá fazer: (a) Número Primo: calcular se um número inteiro inserido pelo usuário é primo ou não; O aluno que tiver o último dígito da matrícula 4, 5 ou 6: (b) Fibonacci: inserido o valor n, apresente o n-ésimo valor da referida sequência; O aluno que tiver o último dígito 7, 8 ou 9: (c) Calcular o fatorial do número inteiro inserido pelo usuário. IMPORTANTE: Envie também o número da sua matrícula como parte da resposta desta atividade. Na avaliação dessa atividade o professor/tutor utilizará os seguintes critérios para correção: O aluno deverá: - apresenta de forma correta a fundamentação teórica, conforme os recursos didáticos da aula; - faz a relação adequada entre a teoria e a prática, conforme solicitado; - apresenta resposta está redigida de forma coesa e coerente, com boa organização de parágrafo; - na escrita atende as normas da língua portuguesa. Atenção! Sua resposta deve ser original, elaborado a partir de suas leituras e reflexões. A resposta não deve ter texto copiado de outras fontes sem a devida citação do autor e obra. A citação deve apenas complementar sua resposta. a) Descreva o que você aprendeu sobre recursividade e comente sobre a diferença entre iteração e recursão. Cite algumas vantagens e desvantagens de se utilizar recursão. Recursão e iteração são técnicas frequentemente utilizados em programas de software para resolver rapidamente problemas complexos ou repetitivos de programação. Um programa recursivo trabalha para simplificar um problema e resolve-lo de baixo para cima . Um processo iterativo repete um processo novo e de novo no início de cada nova iteração com o resultado da iteração anterior . O principal objetivo dessas técnicas é para acelerar a execução de um programa. Recursão: Uma operação recursiva é um processo que se repete até que uma instrução de terminal é recebido dentro da operação . A técnica mais comum recursiva em programação de computador é um método de redução de um problema, a partir do topo para baixo , para a versão mais simples e mais simples de se até que ele atinja uma caso de base . A solução para o caso base é então combinada com a solução de cada um dos problemas anteriores de volta para o primeiro caso , o mais complicado. Iteração: programação de computador , uma operação iterativa é um que se repete de um processo para um determinado número de vezes ( iterações ) , dependendo dos parâmetros definidos do programador . Tipicamente a saída de uma iteração do processo é utilizado como o ponto de partida para a iteração seguinte , e cada passo leva à etapa seguinte . O processo continua até que um objetivo específico é alcançado eo processo é encerrado. Principal diferença A diferença mais marcante entre uma operação recursiva e uma operação iterativa é que os passos de uma operação iterativa são resolvidos , uma de cada vez e conduzir directamente para o passo seguinte . Numa operação recursiva cada passo após o passo inicial é uma versão replicado do passo anterior . Além disso , a partir do topo para baixo , cada passo é um passo mais simples do que o de um " acima " ele . No final da operação , todas as soluções são combinadas para resolver o problema . b) Por fim, implementar um dos seguintes problemas, na linguagem Java ou PHP, utilizando recursividade. O que vai determinar qual o problema que deverá ser feito é o último dígito da sua matrícula de aluno da UnP, assim: Matricula 2016.166.74, então, o aluno que tiver o último dígito da matrícula 4, 5 ou 6: (b) Fibonacci: inserido o valor n, apresente o n-ésimo valor da referida sequência; package fibonacci; public class Fibonacci { int a = 1; int b = 1; int j = 0; int[] numero = new int[201616674]; int calculafibonacci(int x){ if (x == 1){ this.numero[0] = 0; return this.numero[0]; } else{ this.numero[0] = 0; j++; } for(int i = 1; i < (x-1); i++){ b = a - b; a = a+b; this.numero[j] = a; j++; } return this.numero[j-1]; } } package fibonacci; public class Teste { public static void main (String[] args){ Fibonacci fibo = new Fibonacci(); int i = fibo.calculafibonacci(201616674); System.out.println(i); } } Fonte: http://ptcomputador.com/P/computer-programming-languages/87560.html http://www.guj.com.br/t/algoritmo-de-fibonacci/48326/6
Compartilhar