{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Uma função assim é chamada função recursiva todo

Info iconThis preview shows pages 22–23. Sign up to view the full content.

View Full Document Right Arrow Icon
chamar a si própria. Uma função assim é chamada função recursiva. Todo cuidado é pouco ao se fazer funções recursivas. A primeira coisa a se providenciar é um critério de parada. Este vai determinar quando a função deverá parar de chamar a si mesma. Isto impede que a função se chame infinitas vezes. Uma função que calcule o fatorial de um número inteiro n é um bom exemplo de uma função recursiva: #include <stdio.h> int fat(int n) { if (n) return n*fat(n-1); else return 1; } int main() { int n; printf("\n\nDigite um valor para n: "); scanf("%d", &n); printf("\nO fatorial de %d e' %d", n, fat(n)); return 0; } Note que, enquanto n não for igual a 0, a função fat chama a si mesma, cada vez com um valor menor. n=0 é critério de parada para esta função. Há certos algoritmos que são mais eficientes quando feitos de maneira recursiva, mas a recursividade é algo a ser evitado sempre que possível, pois, se usada incorretamente, tende a consumir muita memória e ser lenta. Lembre-se que memória é consumida cada vez que o computador faz uma chamada a uma função. Com funções recursivas a memória do computador pode se esgotar rapidamente. Outras Questões Uma função, como foi dito anteriormente, é um bloco de construção muito útil. No C as funções são flexíveis. A flexibilidade dá poder, mas exige cuidado. __________________________________________________________________________________ _ CURSO DE C DO CPDEE DA UFMG 56
Background image of page 22

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Funções devem ser implementadas, quando possível, da maneira mais geral possível. Isto as torna mais fáceis de serem reutilizadas e entendidas. Evite, sempre que possível, funções que usem variáveis globais. Se houver uma rotina que deve ser o mais veloz possível, seria bom implementá-la sem nenhuma (ou com o mínimo de) chamadas a funções, porque uma chamada a uma função consome tempo e memória. Um outro ponto importante é que, como já sabemos um bocado a respeito de funções, quando formos ensinar uma das funções das bibliotecas do C vamos mostrar, em primeiro lugar, o seu protótipo. Quem entendeu tudo que foi ensinado nesta parte sobre funções pode retirar inúmeras informações de um protótipo (tipo de retorno, nome da função, tipo dos argumentos, passagem por valor ou passagem por referência). Sugiro que neste ponto, o leitor leia um arquivo-cabeçalho como, por exemplo o conio.h ou o string.h . É um bom treino. Estes arquivo podem ser encontrados no diretório apropriado do compilador que você estiver utilizando (geralmente o subdiretório include do diretório onde você instalou o compilador). __________________________________________________________________________________ _ CURSO DE C DO CPDEE DA UFMG 57
Background image of page 23
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page22 / 23

Uma função assim é chamada função recursiva Todo

This preview shows document pages 22 - 23. Sign up to view the full document.

View Full Document Right Arrow Icon bookmark
Ask a homework question - tutors are online