Procedimentos e recursividade em C
Conhecendo duas formas de organizar e executar tarefas em C.
São blocos de código criados para executar uma tarefa específica sem retornar um valor. Em C, são definidos utilizando o tipo void e podem receber parâmetros.
Eles permitem dividir o programa em partes menores, tornando o código mais organizado, fácil de entender e de reutilizar.
#include <stdio.h>
// Procedimento para imprimir uma mensagemvoid imprimirMensagem() { printf("Olá, mundo!\n");}
int main() { // Chamada do procedimento imprimirMensagem();
return 0;}Nesse exemplo, imprimirMensagem() é um procedimento porque foi declarado como void e não retorna nenhum valor.
Para executar o procedimento, é necessário realizar sua chamada:
imprimirMensagem();Ao encontrar essa chamada, o programa executa o código dentro do procedimento e, depois, continua sua execução normalmente.
O uso de procedimentos ajuda a dividir o programa em tarefas específicas, evitando repetições e facilitando a organização do código.
É uma técnica de programação em que uma função chama a si mesma para resolver um problema em partes menores.
Para que uma função recursiva não continue chamando a si mesma indefinidamente, é necessário definir uma condição de parada, também chamada de caso-base.
#include <stdio.h>
// Função recursiva para imprimir números de n até 1void recursiveLoop(int n) { if (n > 0) { printf("%d ", n); recursiveLoop(n - 1); }}
int main() { int numero = 5;
printf("Contagem regressiva: "); recursiveLoop(numero);
return 0;}A função recursiveLoop() recebe um número e, enquanto n for maior que 0, imprime seu valor e chama a si mesma passando n - 1.
A execução acontece da seguinte forma:
5 → 4 → 3 → 2 → 1 → 0Quando n chega a 0, a condição n > 0 se torna falsa. Nesse momento, a função deixa de fazer novas chamadas e a recursividade termina.
A recursividade é útil para resolver determinados problemas que podem ser divididos em partes menores. Porém, é importante sempre definir uma condição de parada para evitar chamadas infinitas.