Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouCaíque Mendes Alterado mais de 10 anos atrás
1
EEL170 COMPUTAÇÃO I www.del.ufrj.br/~ac/eel170.htm Antonio Cláudio Gómez de Sousa ac@del.ufrj.br 5a série de slides Versão 26/04/2012
2
Recursão
3
A recursão é um mecanismo em que o que está sendo definido pode utilizar-se dele próprio Há áreas em que isto não é permitido Exemplo: Um objeto leve é algo que tem a propriedade de ser leve Na Matemática pode-se definir funções recursivas Exemplo: 4! = 4*3*2*1 Ou: 4! = 4*3! e 3! = 3*2! e 2! = 2*1! e 1! = 1 Pode-se então definir o fatorial de forma recursiva: se n = 0 então n! é 1 senão n! = n*(n-1)! Aplica-se a função recursivamente até que n seja 0
4
Exemplo de fatorial em algoritmo (* Cuidado: a função cresce rapidamente – o resultado de 8! é maior que 40.000, portanto não é contido em uma variável inteira de dois bytes *)
5
Função fatorial (x:inteiro):inteiro (* função para calcular o fatorial de um número recursivamente; responsável:...; data: …*) Inicio Se x = 0 então Fatorial 1 Senão Fatorial x*(x-1)! fim
6
Cadeias de caracteres
7
Problema: Saber se uma palavra ou um texto é um palíndromo Para resolver o problema teremos de acessar os caracteres de uma palavra ou de um texto O literal (string) é na realidade uma matriz linear de caracteres, o que permite acessar um caractere em qualquer posição do literal Essa propriedade não impede que o literal seja tratado também como uma variável simples
8
Voltando ao problema: Saber se uma palavra ou um texto é um palíndromo Solução do problema: -Fazer um algoritmo que: -Permita que o usuário digite um texto -Teste se o texto é um palíndromo -verificar se o texto lido em um sentido é igual ao texto lido no sentido contrário -Informe o resultado ao usuário
9
Algoritmo palíndromo (* algoritmo para verificar se um texto é palíndromo; autor:...; data:... *) Var Resultado: booleano // para exemplificar o uso de booleano Inicio Leia (texto) // orientar e validar Comprimento length(texto) // função para literal Indice 1 Resultado verdadeiro Enquanto (indice <= comprimento div 2) e (resultado) faça inicio se texto(indice) <> texto (comprimento – indice + 1) então resultado falso fim indice indice +1 fim Se resultado então escreva(O texto:,texto,é palíndromo) senão escreva(O texto:,texto,não é palíndromo) fim
10
Funções e procedimentos para literais Funções Concat (S1, S2,...) Copy (S, I, N) Length (S) Pos (S1, S) Procedimentos delete (S, I, N) insert (S1, S, I) Str (V, S) Val (S, V, I) Significados S, S1: literal I, N: inteiro V: inteiro ou real
11
Problema Fazer um pequeno editor para uma frase até 80 caracteres. Em uma iteração até que o usuário escolha sair, o usuário vê a frase como ela está no momento, depois pode escolher uma das operações: D – digitar(texto, comprimento) N – normalizar(texto, comprimento) (Um espaço entre palavras e nenhum no final) B – buscarPalavra(texto, posicao) // * n vezes S – substituirPalavra(texto, comprimento) // * I – incluirPalavra(texto, comprimento, posição) E – excluirPalavra (texto, comprimento) J – justificar(texto, comprimento) F – finalizar Obs.: nunca ultrapassar os limites do texto e sempre passar parâmetros
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.