Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Fase final da produção de um svcd a 'queima'
Por Al_Qaeda
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Estudando recursividade direta e indireta
Linux user
carlosjr
29/02/2008
Uma rápida explicação e demonstração de como funciona a recursividade para programas em C especialmente, usando como exemplo o algoritmo de Euclides para o cálculo do MDC.
Por: Carlos Roberto S. Junior
[ Hits: 13572 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Introdução

A recursividade é um recurso muito importante para a programação, é uma maneira de se visualizar uma solução para determinado problema. Há diversas vantagens no uso da recursividade, tais como o estudo da complexidade algorítmica, visualização do algoritmo etc. Porém a recursividade pode causar rompimento na pilha de memória.

Para exemplificar com funciona a recursividade simples utilizaremos o algoritmo do cálculo do MDC pelo método de Euclides. Em linguagem algorítmica seria algo como:

Algoritmo EuclidesMDC
|  {Faz o cálculo do MDC seguindo Euclides}
|início
|
|função calculoMDC(valorA: inteiro, valorB: inteiro): inteiro
||início
||     se valorB = 0 então
||     |      calculoMDC <- valorA
||     |senão
||     |      calculoMDC <- calculoMDC(valorB, valorA mod valorB)
||     fim-se
|fim-função
fim

O Algoritmo de Euclides nada mais faz que pegar dois números e dividí-los, o resto da divisão de A por B é testado se for zero, então o algoritmo retorna o menor valor como sendo o MDC, se for diferente de zero, o maior valor é jogado no caso A e B assume seu lugar, o resto da divisão de A por B assume o lugar de B e a função é chamada novamente até que o resto da divisão seja zero.

Faça o teste de mesa e verá que o algoritmo proposto apesar de simples cobre grande parte dos casos. Só não funcionará para números negativos pois "mod" não está definido para eles, segundo a matemática discreta.

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por f_Candido em 29/02/2008 - 18:25h:

Legal.... Parabéns... Objetivo e eficiente.

Abraços


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.