A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.

Apresentações semelhantes


Apresentação em tema: "EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012."— Transcrição da apresentação:

1 EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 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 , 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


Carregar ppt "EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012."

Apresentações semelhantes


Anúncios Google