As linguagens de programação modernas disponibilizam estruturas de repetição para o programador.
No entanto, é possível simular qualquer repetição com funções, procedimentos, ou métodos recursivos.
Por isso, esse artigo mostra um exemplo construido com recursividade, sem nenhum comando de repetição. As funções e procedimentos recursivos são chamadas dentro da própria função ou procedimento. Exemplo: O procedimento recursividade é chamado no corpo do próprio procedimento. No entanto, esse procedimento
recursivo gera um loop infinito. Isto é, leva o programa a travar. Por isso, normalmente, as funções ou
procedimentos recursivos têm uma condição de parada para evitar o loop infinito. Por exemplo: como criar um procedimento em pascal que imprime os números de um a um número informado pelo
usuário? Abaixo a solução com comando "for": Abaixo a solução com procedimento recursivo: Perceba que nas duas soluções são necessárias uma variável contador que foi nomeada "i" e uma
condição de parada que é quando o contador "i" torna-se igual ao número "n". Perceba
que na versão recursiva o contador é inicializado com 1 e passado como segundo parâmetro para o procedimento
"imprime_numeros", enquanto que, na versão não recursiva a variável contador é criada no próprio procedimento,
necessitando apenas de um número como parâmetro. A variável contador, nas duas soluções, tem seu valor
variado de 1 até o numero "n". Perceba também que o procedimento recursivo recebe um parâmetro
a mais no programa principal. Ou seja, a variavel contador "i" é inicializada com valor 1 no
programa principal. Na função recursiva, o contador "i" é incrementado em 1 quando a função imprime_numeros é chamada
de modo recursivo recebendo o parâmetro "i+1".
Abaixo um programa que fiz inteiramente com recursividade ( Sem nenhuma estrutura de repetição ):
Imagem capturada do programa:
O código fonte escrito em linguagem pascal:
program RECURSIVIDADE ;
uses crt;
type tvetor = array[ 1..100 ] of integer;
procedure imprime_numeros( n : word; i : byte );
begin
if ( i palavra[ length( palavra ) - i + 1 ] ) then
eh := false
else eh_palindromo( palavra, i+1, eh );
end;
end;
function fatorial( n : word ) : word;
begin
if ( n = 1 ) then
fatorial := 1
else fatorial := n * fatorial( n-1 );
end;
function fibo( n : word ) : word;
begin
if ( n = 0 ) or ( n = 1 ) then
fibo := 1
else fibo := fibo( n-1 ) + fibo( n-2 );
end;
procedure imprime_serie_fibo( n : word; i : byte );
begin
if ( i '0' ) and ( op #27 ) then
begin
case op of
'1': begin
write( 'Informe um numero: ' );
readln( num );
writeln;
write( 'Numeros: ' );
imprime_numeros( num, 1 );
readln;
end;
'2': begin
write( 'Informe um numero: ' );
readln( num );
writeln;
write( 'Primos: ' );
imprime_primos( num, 1 );
readln;
end;
'3': begin
write( 'Informe um numero: ' );
readln( num );
writeln;
write( 'Divisores de ',num,': ' );
imprime_divisores( num, 1 );
readln;
end;
'4': begin
write( 'Informe uma palavra: ' );
readln( palavra );
eh_p := true;
eh_palindromo( palavra, 1, eh_p );
writeln;
if ( eh_p ) then
writeln( 'A palavra ',palavra,' eh palindromo' )
else writeln( 'A palavra ',palavra,' nao eh palindromo' );
readln;
end;
'5': begin
write( 'Informe um numero: ' );
readln( num );
fat := fatorial( num );
writeln;
writeln( 'O fatorial de ',num,' eh: ', fat );
readln;
end;
'6': begin
write( 'Informe um número: ' );
readln( num );
writeln;
write( 'Serie fibbonacci: ' );
imprime_serie_fibo( num, 0 );
readln;
end;
'7': begin
sorteia_numeros( vet, VET_MAX, VET_QUANT, 1 );
writeln;
write( 'Numeros sorteados: ' );
imprime_vetor( vet, VET_QUANT, 1 );
ordena( vet, VET_QUANT, 1 );
writeln;
write( 'Numeros ordenados: ' );
imprime_vetor( vet, VET_QUANT, 1 );
readln;
end;
end;
prog_principal;
end;
End;
Begin
prog_principal;
End.
Baixe o código fonte aqui.
Finalizando...
É isso pessoal. Peço que quem tiver gostado, envie um comentário logo abaixo.
Até o próximo
1486
Escrito por:
Ítalo Herbert
Última alteração feita em:
29/10/2024 18:59:06
Tags relacionadas:
recursividade, linguagem, pascal, computador, função, procedimento, recursivo, recursiva, programação
Você também pode gostar:
Curso gratuito de linguagem CProjeto ExpLabFunções recursivasFunçõesProgramação em pascal
Deixe seu comentário
Nome:
E-Mail:
Comentario: obrigatório
Mostrar na lista de comentários
Código de verificação:
Digite o código: obrigatório
Enviar
Limpar
Comentários postados: Nenhum comentario visível postado até o momento, deixe o seu!
Política de privacidade
Produzido por Ítalo Herbert
0
para o Sistema Operacional o código do erro, caso contrário, retorna 0. Para utilizar a função “printf” é necessário incluir o
arquivo de cabeçalho assim: “#include <stdio.h>”. A função printf recebe
um parâmetro tipo string (Sequência de caracteres entre aspas) e, opcionalmente, outros
parâmetros separado por virgulas como no exemplo abaixo: O exemplo acima recebe como parâmetros o formato de
impressão entre aspas (Atenção: as aspas são necessárias no exemplo acima)
e o valor de %d. Nesse exemplo é impressa a mensagem: 9 + 91 = 100.
Perceba que o texto %d é substituído pelo valor da expressão (9+91) e o texto \n
quebra a linha atual para a mensagem de pausa ser mostrada na próxima linha
(não na frente). Para utilizar a função “system” é necessário incluir o
cabeçalho “stdlib.h”. A função system com parâmetro “pause” pausa o sistema
para que se possa ver o resultado da impressão até que uma tecla seja pressionada
e o programa termine sua execução. Para utilizar a função “system”, é
necessária a linha de código “#include <stdlib.h>”. Além do MinGW é possível utilizar um IDE ( Ambiente de desenvolvimento integrado )
que facilita muito o processo de compilação e linkagem do programa, sem necessidade de
utilizar a linha de comando. para compilar, geralmente, basta clicar em um botão.
Para programação em linguagem C, podemos utilizar o Dev-C++ ou o CodeBlocks ou, ainda,
o Visual C++. O Dev-C++ vem com o MinGW embutido. Abaixo o link de download do Dev-C++:
https://sourceforge.net/projects/orwelldevcpp/
Caso queira utilizar o Dev-C++, instale o Dev-C++ e depois você poderá criar o programa exemplo
desse tuturial. Então, vamos la! Depois de insalar o Dev-C++, crie um novo projeto no Dev-C++
conforme a imagem abaixo: Na janela "novo projeto" escolha "Console Application", marque a opção "Projeto C" e dê um nome
para o projeto conforme a imagem abaixo:
Escola um local para salvar o projeto e então digite o programa exemplo desse tutorial como mostrado
abaixo:
Procure pelos três botões da imagem abaixo:
O primeiro botão é o botão de compilar, o segundo é o botão de executar para visualizar o resultado e
o terceiro botão compila e executa
Então, compile e, caso o IDE não mostre nenhum erro, execute e visualize a mensagem: "Alo Mundo!"
Após isso, localize o local onde salvou o projeto e veja os arquivos gerados, inclusive o executavel.
Procurando apostilas de C/C++
O apostilando.com é um bom site para download de
apostilas. Lá você pode procurar por apostilas de C/C++ e buscar aprender sobre essa
poderosa linguagem. Ou, se preferir, pesquise no buscador de sua preferência.
Até a próxima!
15b4
Escrito por:
Ítalo Herbert
Imagens do artigo produzidas a partir de imagens retiradas da internet
Última alteração feita em:
03/10/2023 16:28:55
Tags relacionadas:
linguagem, c, mingw, dev-c++, compilador, linker, linkeditor, formato, exe, introducao, programação, info, informática
Você também pode gostar:
Curso gratuito de linguagem CIntrodução a informáticaPreparando o ambienteProgramação em pascalPonteiros de memória
Deixe seu comentário
Nome:
E-Mail:
Comentario: obrigatório
Mostrar na lista de comentários
Código de verificação:
Digite o código: obrigatório
Enviar
Limpar
Comentários postados: Nenhum comentario visível postado até o momento, deixe o seu!
Política de privacidade
Produzido por Ítalo Herbert
0
ficação:
Digite o código: obrigatório
Enviar
Limpar
Comentários postados: Nenhum comentario visível postado até o momento, deixe o seu!
Política de privacidade
Produzido por Ítalo Herbert
0