Notas sobre Definições Recursivas

Documentos relacionados
Notas sobre Sequências e Cardinalidade (1)

Processamento da Informação

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE FEDERAL DO PARÁ BIBLIOTECA DE OBJETOS MATEMÁTICOS COORDENADOR: Dr. MARCIO LIMA

UNIVERSIDADE FEDERAL DO PARÁ BIBLIOTECA DE OBJETOS MATEMÁTICOS

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

CCO 016 / COM 110 Fundamentos de Programação

Recursão. Prof. Cristiano André da Costa. [Versão de Março de 2000] Definição

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Teoria da Computação

Python e sua sintaxe LNCC UFRJ

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira

Deve-se mover um disco por vez; Nunca se deve colocar um disco sobre o outro menor do que ele.

JOGOS E RESOLUÇÃO DE PROBLEMAS TORRE DE HANÓI

Universidade Federal de Alfenas

IBM1088 Linguagens Formais e Teoria da

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Recursão David Déharbe

Utilização do Conjunto de Cantor para a resolução da Torre de Hanoi

Matemática Discreta para Ciência da Computação

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

A UTILIZAÇÃO E APLICAÇÃO DO JOGO TORRE DE HANÓI PARA O ENSINO DE CONCEITOS MATEMÁTICOS MAIS ATRAENTE E EFICAZ

TORRE DE HANÓI: UM RECURSO PEDAGÓGICO PARA A EDUCAÇÃO BÁSICA

Programação I Aula 15 Definições recursivas

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

UNIVERSIDADE ESTADUAL PAULISTA Julio de Mesquita Filho" FACULDADE DE ENGENHARIA

Lista de Exercícios 6 Funções

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem

Oficina cognição e lógica

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II

Alfabeto, Cadeias, Operações e Linguagens

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Bacharelado em Sistemas de Informação Estruturas de Dados I Lista II

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Introdução Definição Conceitos Básicos de Linguagem

Listas. CIC/UFRGS INF Fundamentos de Algoritmos 2006/1

Aula 21 - Algoritmos e Funções Recursivas

Introdução a Computação

Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Programação I Aula 15 Definições recursivas Pedro Vasconcelos DCC/FCUP

Linguagens Formais - Preliminares

Exercícios: Recursão

ICET CURSO: Ciência da Computação e Sistemas de Informação (Estrutura de Dados) Estudos Disciplinares Campus: Data: / / Nome:

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Introdução à Computação II Unesp Rio Claro 2012Prof. Rafael Oliveira

Programação Estruturada

Exercícios de Linguagem C

Fundamentos de Programação

Capítulo 2: Procedimentos e algoritmos

Estruturas de Dados Aula 14: Recursão

Linguagens Formais e Autômatos (LFA)

Estruturas de Dados Aula 14: Recursão 19/05/2011

Programação II RECURSÃO

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35

Prof. Adriano Maranhão COMPILADORES

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Aula 05: - Recursão (parte 1)

Linguagens Formais e Autômatos

Funções, Seqüências, Cardinalidade

Célia Borlido 07/09/2007 Encontro Nacional dos Novos Talentos em Matemática

Aula 06: Análise matemática de algoritmos recursivos

Fundamentos da Programação

Recursividade. Objetivos do módulo. O que é recursividade

Torre de Hanói e a função exponencial

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Exercícios Associados à Aula 02 (14/08/2013)

Exercícios Repetição

POSSIBILIDADES PARA O PRINCÍPIO DA INDUÇÃO MATEMÁTICA NO CONTEXTO ESCOLAR

49. Demonstre que qualquer valor postal maior ou igual a duas unidades monetárias pode ser obtido usando-se somente selos com valor de 2 e 3.

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Matemática Discreta - 06

Torre de Hanoi:jogando com a Matemática

Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos

3. Tipos de dados e variáveis

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

LINGUAGENS FORMAIS E AUTÔMATOS

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

SSC512 Elementos de Lógica Digital. Sistemas de Numeração. GE4 Bio

A CONSTRUÇÃO DO LABORATÓRIO DE ENSINO DE MATEMÁTICA E SUAS CONTRIBUIÇÕES NO PROCESSO DE APRENDIZAGEM

Luís Fernando Schultz Xavier da Silveira. 12 de maio de 2010

Construção de Compiladores Aula 16 - Análise Sintática

Aula 2: Linguagem Proposicional

Como construir um compilador utilizando ferramentas Java

Matemática Discreta para Computação e Informática

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Números Naturais. MA12 - Unidade 1. Os Axiomas de Peano. O Axioma da Indução. Exemplo: uma demonstração por indução

OFICINA COGNIÇÃO E LÓGICA

Torre de hanoi jogo. Torre de hanoi jogo.zip

1. n < 100 é uma sentença verdadeira para n = 1, n = 2, n = 3 e outros, mas torna-se falsa para qualquer número natural maior do que 99.

Transcrição:

Notas sobre Definições Recursivas Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco CIn-UFPE

Introdução A torre de Hanói Jogo antigo inventado pelo matemético francês Édouard Lucas em 1883. O brinquedo consiste de três pinos fixos numa base comum. Em um dos pinos são empilhados oito discos em ordem decrescente de tamanho.

Introdução Objetivo do jogo Transferir a torre inteira para um dos outros pinos. Mover apenas um disco de cada vez; nunca colocar um disco maior em cima de um disco menor.

Introdução Lenda O matemático anexou ao seu brinquedo uma lenda sobre uma torre muito maior, chamada Torre de Brama. Ela tem 64 discos de ouro puro empilhados em três pinos de diamantes. No início dos tempos, Deus colocou esses discos de ouro no primeiro pino e mandou um grupo de sacerdotes transferí-los para um outro pino seguindo as regras acima descritas. Quando os sacerdotes terminarem essa tarefa, a torre ruirá e o mundo acabará.

Introdução Pergunta Quantos movimentos são necessários para mover uma torre com n discos?

Definições recursivas O item que está sendo definido aparece como parte da definição. Também chamada de definição indutiva. As definições recursivas são compostas de duas partes: 1 BASE: onde alguns casos simples do item que está sendo definido são dados explicitamente; e 2 PASSO INDUTIVO ou RECURSIVO: onde outros casos do item que está sendo definido são dados em função dos casos anteriores

Definições recursivas O item que está sendo definido aparece como parte da definição. Também chamada de definição indutiva. As definições recursivas são compostas de duas partes: 1 BASE: onde alguns casos simples do item que está sendo definido são dados explicitamente; e 2 PASSO INDUTIVO ou RECURSIVO: onde outros casos do item que está sendo definido são dados em função dos casos anteriores

Definições recursivas O item que está sendo definido aparece como parte da definição. Também chamada de definição indutiva. As definições recursivas são compostas de duas partes: 1 BASE: onde alguns casos simples do item que está sendo definido são dados explicitamente; e 2 PASSO INDUTIVO ou RECURSIVO: onde outros casos do item que está sendo definido são dados em função dos casos anteriores

Definições recursivas Para quê usamos as definições recursivas? Funções e Operações; ALGORITMOS; CONJUNTOS; SEQUÊNCIAS.

Definições recursivas Para quê usamos as definições recursivas? Funções e Operações; ALGORITMOS; CONJUNTOS; SEQUÊNCIAS.

Definições recursivas Para quê usamos as definições recursivas? Funções e Operações; ALGORITMOS; CONJUNTOS; SEQUÊNCIAS.

Definições recursivas Para quê usamos as definições recursivas? Funções e Operações; ALGORITMOS; CONJUNTOS; SEQUÊNCIAS.

Funções e Operações Funções Encontre f (1), f (2) e f (3) se f (n) é definida recursivamente por: f (0) = 1; para n = 0, 1, 2, 3,... temos: 1 f (n + 1) = f (n) + 2 2 f (n + 1) = 3f (n) 3 f (n + 1) = 2 f (n) 4 f (n + 1) = f (n) 2 + f (n) + 1

Funções e Operações Forneça uma definição recursiva para a função fatorial F(n) = n!.

Funções e Operações Operações Considere a operação de exponenciação a n, definida para um número real a diferente de zero e n inteiro não negativo. A definição recursiva para essa operação é dada a seguir: 1 a 0 = 1 2 a n = (a n 1.a)

ALGORITMOS Algoritmos Defina um algoritmo recursivo para calcular o fatorial de um número. Defina um algoritmo recursivo para calcular a soma dos n primeiros números inteiros pares e positivos.

ALGORITMOS Algoritmos Defina um algoritmo recursivo para calcular o fatorial de um número. Defina um algoritmo recursivo para calcular a soma dos n primeiros números inteiros pares e positivos.

CONJUNTOS Conjuntos 1 2 A 2 Se x A então (x + 2) A

CONJUNTOS Cadeias de símbolos obtidas a partir de um alfabeto finito são objetos geralmente utilizados em computação. s: cadeias de bits (alfabeto = {0, 1}), cadeias alfanuméricas usadas como identificadores em uma determinada linguagem de programação, etc. O conjunto de todas as cadeias de tamanho finito sobre um alfabeto A, geralmente denotado por A, é definido recursivamente como a seguir: 1 A cadeia vazia (ε) A ; 2 Todo elemento de A pertence a A ; 3 Se x e y pertencem a A então a concatenação xy também pertence a A.

CONJUNTOS Forneça uma definição recursiva para o conjunto de todas as cadeias de bits de tamanho finito que são palíndromos. 1 ε, 0 e 1 são palíndromos; 2 Se x é palíndromo então 0x0 e 1x1 também são palíndromos.

CONJUNTOS Forneça uma definição recursiva para o conjunto de todas as cadeias de bits de tamanho finito que são palíndromos. 1 ε, 0 e 1 são palíndromos; 2 Se x é palíndromo então 0x0 e 1x1 também são palíndromos.

CONJUNTOS Forneça uma definição recursiva para o conjunto de todas as cadeias de bits de tamanho finito que são palíndromos. 1 ε, 0 e 1 são palíndromos; 2 Se x é palíndromo então 0x0 e 1x1 também são palíndromos.

CONJUNTOS Em uma certa linguagem de programação, os identificadores podem ser cadeias alfanuméricas de tamanho arbitrário, mas que devem começar com letra. Uma definição recursiva para o conjunto de identificadores válidos nessa linguagem é dada a seguir: 1 Uma letra é um identificador; 2 Se x é um identificador, então a concatenação de x com qualquer letra ou dígito também é um identificador.

CONJUNTOS FORMA DE BACKUS NAUR (BNF). Notação usada para definir itens de uma linguagem de programação. Nessa notação os itens definidos estão entre < e >. A linha vertical ( ) indica uma escolha ( ou ). A BNF de um identificador é dada a seguir: < identificador > ::= < letra > < identificador >< letra > < letra > ::= a b c... z < digito > ::= 0 1 2... 9 < identificador >< digito > O identificador gv1 é obtido da definição BNF de que forma?

CONJUNTOS FORMA DE BACKUS NAUR (BNF). Notação usada para definir itens de uma linguagem de programação. Nessa notação os itens definidos estão entre < e >. A linha vertical ( ) indica uma escolha ( ou ). A BNF de um identificador é dada a seguir: < identificador > ::= < letra > < identificador >< letra > < letra > ::= a b c... z < digito > ::= 0 1 2... 9 < identificador >< digito > O identificador gv1 é obtido da definição BNF de que forma?

SEQUÊNCIAS Forneça uma definição recursiva para a sequência {a n }, n = 1, 2, 3,... se: 1 a n = 6n 2 a n = 2n + 1 3 a n = 10 n 4 a n = 5 Sequência de Fibonacci