Html, php e base de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 9 (2081 palavras )
  • Download(s) : 0
  • Publicado : 17 de janeiro de 2013
Ler documento completo
Amostra do texto
Introdução à Programação

Sidnei Cruz
Departamento de Engenharias e Ciências do Mar Uni-CV

2012/2013

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

1 / 13

Recursão
Introdução

A recursividade (ou recursão) é uma característica fundamental para a concepção e construção de algoritmos. Esta característica é interpretada como a capacidade de um algoritmo (sob aforma de uma rotina ou função) evocar-se a si próprio.

A aplicação da recursividade é útil na resolução de problemas que se podem decompor e se explicam através de subproblemas.

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

2 / 13

Recursão

De modo a aplicar a recursividade a um determinado problema, é necessário considerar:

O case base recursivoExistência de um conjunto de casos que não necessitam de operações signicativas de computação.

O passo recursivo

Representação dos diferentes subproblemas que recursivamente chegarão ao caso base.

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

3 / 13

Recursão
Estrutura geral de um algoritmo recursivo

Problema(P): [Caso base] Se o caso case B resolve P Então devolverB [chamadas recursivas de P até chegar ao caso base] Senão decompor P em P1, P2, ..., Pn C1 ← problema (P1) C2 ← problema (P2) . . . Cn ← problema (Pn)

Um algoritmo recursivo tem duas das partes distintas: uma parte que resolve uma parte concreta do problema e outra parte que diminui a dimensão do problema através de uma chamada recursiva do algoritmo.
S.Cruz (DECM/Uni-CV) Introdução àProgramação (IP) 2012/2013 4 / 13

Recursão

A recursão ocorre quando uma função se chama si própria. Algumas funções prestam-se a ser chamadas recursivamente, tais como o factorial, ou um somatório.
Exemplo factorial:

Dado um número inteiro e positivo n, o seu factorial é representado por n! e é denido por

n! = nx (n − 1)x (n − 2)x ...x 2x 1
Por convenção, tem-se 0! = 1

S.Cruz(DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

5 / 13

Recursão
Exemplo factorial

Solução iterativa:

int factorial_repetitivo(int n){ int i, factorial = 1; for (i = n; i >= 1; i−−) factorial ∗= i; //calculo do produtório return factorial; // devolução do valor calculado }

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

6 / 13

Recursão
Exemplofactorial



n!

n! = nx (n − 1)x (n − 2)x ...x 2x 1
Caso base 0! 0! = 1
Solução recursiva:

int factorial_recursivo(int n){ if(n == 0) return 1; /*condição de paragem*/ return n x factorial_recursivo (n-1); /*invocação recursiva*/ }

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

7 / 13

Recursão
Exemplo: factorial_recursivo(3)

Figura : Exemplo explicativo dométodo(factorial) recursivo

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

8 / 13

Recursão
Exemplo: Somatório de 1 a n

S = =1 = 1 + 2 + ... + (n − 1) + n S = S −1 + n E o caso base é S1 = 1
n i n n n

Solução recursiva:

int somatorio(int n){ if(n == 1) return 1; else return(somatorio(n-1) + n); }

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)2012/2013

9 / 13

Recursão
Exemplo: Somatório(4)

Figura : Exemplo explicativo do método (somatorio) recursivo

S.Cruz (DECM/Uni-CV)

Introdução à Programação (IP)

2012/2013

10 / 13

Recursão

Potencia de grau n (n [0, 1, 2, ...,n]) Potência: x = x ∗ x −1 E os casos base são x 0 = 1 e x 1 = x
n n

#include #include float potencia(float x, int n); int main() { int n; floatx; printf ("De-me um inteiro positivo: "); scanf("%d",&n); printf("De-me um real: "); scanf("%f",&x); printf("%.0f^%d = %.0f\n",x,n,potencia(x,n)); system("PAUSE"); } float potencia(float x, int n){ if (n == 0) return (1.0); else if (n == 1) return (x); else return (x * potencia(x, n-1)); }
S.Cruz (DECM/Uni-CV) Introdução à Programação (IP) 2012/2013 11 / 13

Recursão

Potencia de grau n...
tracking img