matemática discreta para computação e informática · pdf...
TRANSCRIPT
![Page 1: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/1.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 1
Matemática Discreta paraComputação e Informática
P. Blauth Menezes
Departamento de Informática Teórica
Instituto de Informática / UFRGS
![Page 2: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/2.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 2
Matemática Discreta para Computação e Informática
P. Blauth Menezes
1 Introdução e Conceitos Básicos2 Noções de Lógica e Técnicas de Demonstração3 Álgebra de Conjuntos4 Relações5 Funções Parciais e Totais6 Endorrelações, Ordenação e Equivalência7 Cardinalidade de Conjuntos8 Indução e Recursão9 Álgebras e Homomorfismos10 Reticulados e Álgebra Booleana11 Conclusões
![Page 3: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/3.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 3
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 4: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/4.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 4
1.1 Introdução
♦ QQ estudo em Ciência da Computação, teórico ouaplicado
• pré-requisito: conhecimentos de diversos tópicos de Matemática
• tal fato é explicitado na maioria dos livros de CC∗ alguns possuem um capítulo específico∗ tópicos são brevemente/resumidamente introduzidos
![Page 5: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/5.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 5
♦ Diretrizes Curriculares do MEC para Cursos deComputação e Informática [MEC 2002]
A formação básica tem por objetivo introduzir as matériasnecessárias ao desenvolvimento tecnológico da computação. Oprincipal ingrediente desta área é a ciência da computação que
caracteriza o egresso como pertencente à área de computação. Amaioria das matérias tecnológicas são aplicações da ciência da
computação. São matérias de formação básica dos cursos da áreade computação: a ciência da computação, a matemática, a física
e eletricidade e a pedagogia.
![Page 6: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/6.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 6
♦ Especificamente em relação à Matéria Matemática
A matemática, para a área de computação, deve ser vista comouma ferramenta a ser usada na definição formal de conceitoscomputacionais (linguagens, autômatos, métodos etc.). Os
modelos formais permitem definir suas propriedades edimensionar suas instâncias, dadas suas condições de contorno.
![Page 7: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/7.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 7
♦ Matemática Discreta
• seleção de tópicos de Matemática
• essenciais para o estudo da Ciência da Computação
• na Formação Básica e Tecnológica
Considerando que a maioria dos conceitos computacionaispertencem ao domínio do discreto, a matemática discreta (outambém chamada álgebra abstrata) é fortemente empregada
![Page 8: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/8.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 8
♦ Não cobre todos os tópicos de Matemática Discreta
• Análise Combinatória• Probabilidade Discreta• Teoria dos Grafos (brevemente introduzida)
♦ Questão importante
• origem do termo Matemática Discreta
♦ Qq sistema computador possui limitações finitas
• tamanho da memória• número de intruções que pode executar• número de diferentes símbolos que pode tratar,…• portanto, o estudo dos conjuntos finitos é fundamental.
![Page 9: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/9.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 9
♦ Limitações finitas não implicam em limitação ou pré-fixação de tamanhos máximos
• por exemplo, unidades auxiliares como discos removíveis, fitas, etc
♦ Portanto, para um correto entendimento dacomputação
• freqüentemente não é possível pré-fixar limites• implica tratar tais questões em um contexto infinito
♦ Entretanto, qq conjunto de recursos computacionais
• é contável ou discreto (em oposição ao termo continuo)• pode ser enumerados ou seqüenciado (segundo algum critério)
∗ não existe um elemento entre quaisquer dois outros
![Page 10: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/10.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 10
♦ Exemplo
• conjunto dos números naturais é contável
♦ Contra-exemplo
• conjunto dos números reais o qual é não-contável ou não-discreto
♦ Conclusão
• existem conjuntos infinitos contáveis e não-contáveis
![Page 11: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/11.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 11
♦ Matemática Discreta
• estudos baseados em conjuntos contáveis finitos ou infinitos
♦ Matemática do Continuum
• estudos baseados em conjuntos não-contáveis
• exemplo: Cálculo Diferencial e Integral
![Page 12: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/12.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 12
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Alfabetos, Palavras e Linguagens1.2.5 Conjuntos Finitos e Infinitos1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 13: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/13.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 13
1.2 Conceitos Básicos de Teoria dosConjuntos
♦ Conceitos básicos relativos à Teoria dos Conjunto
• possivelmente, do conhecimento da maioria
• revisão e exemplos
• exercícios!
• ênfase nos exemplos voltados para Ciência da Computação
![Page 14: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/14.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 14
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 15: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/15.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 15
1.2.1 Conjuntos
♦ Conceito de conjunto é fundamental
• praticamente todos os conceitos em CC
• e os correspondentes resultados
• são baseados em conjuntos ou construções sobre conjuntos
♦ Conjunto
• estrutura que agrupa objetos
• constitui uma base para construir estruturas mais complexas
![Page 16: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/16.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 16
♦ Informalmente, um conjunto
• coleção, sem repetições e sem qualquer ordenação, de objetosdenominados elementos
• elemento: pode designar um objeto concreto ou abstrato
• elemento: entidade básica, não é definida formalmente
Def: ConjuntoColeção de zero ou mais objetos distintos, chamados Elementos doconjunto os quais não possuem qualquer ordem associada
![Page 17: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/17.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 17
Exp: ConjuntosAs vogais a, e, i, o, e uO par de sapatos preferido
Os dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, e 9Todos os brasileiros
Os números pares 0, 2, 4, 6,…
O personagem Snoopy, a letra a, a baía da Guanabara e o Pelé
♦ Conjunto pode ser definido• listando todos os seus elementos
• por propriedades declaradas
• um conjunto não necessariamente é constituído por objetos quecompartilham mesmas características/propriedades
![Page 18: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/18.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 18
♦ Denotação por extensão
• definição listando todos os seus elementos∗ em qualquer ordem∗ separados por vírgulas∗ entre chaves
Vogais = { a, e, i, o, u }
• Vogais denota o conjunto { a, e, i, o, u }
![Page 19: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/19.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 19
♦ Denotação por compreensão
• definição por propriedades
Pares = { n n é número par }
o conjunto de todos os elementos n tal que n é número par
• forma geral de definição de um conjunto por propriedades
{ x p(x) }
• a é elemento do conjunto: p(a) é verdadeira
B = { x x é brasileiro }
• Pelé é elemento de B e Bill Gates não é elemento de B
![Page 20: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/20.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 20
♦ QQ conjunto pode ser definido por compreensão
♦ Freqüentemente é conveniente especificar de outraforma
• Dígitos = { 0, 1, 2, 3,…, 9 }• Pares = { 0, 2, 4, 6,… }
∗ elementos omitidos podem ser facilmente deduzidos do contexto
Exp: ConjuntosDias da Semana = { seg, ter, qua, qui, sex, sab, dom }
Seqüências de duas Vogais = { aa, ae, ai, ao, au, ea, ee, ei, eo,eu,…,ua, ue, ui, uo, uu }
{ x x = y2 sendo que y é número inteiro }∗ corresponde ao conjunto { 1, 4, 9, 16,… }
![Page 21: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/21.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 21
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 22: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/22.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 22
1.2.2 Pertinência
♦ a é elemento do conjunto A a ∈ A
a pertence ao conjunto A
♦ Caso contrárioa ∉ A
a não pertence ao conjunto AExp: Pertence, Não-PertenceVogais = { a, e, i, o, u }
a ∈ Vogais h ∉ VogaisB = { x x é brasileiro }
Pelé ∈ B Bill Gates ∉ B
![Page 23: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/23.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 23
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 24: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/24.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 24
1.2.3 Alguns Conjuntos Importantes
♦ Conjunto vazio
∅• especialmente importante
• conjunto sem elementos { }
Exp: Conjunto Vazio
Conjunto de todos os brasileiros com mais de 300 anos
Conjunto de todos os números simultaneamente pares e ímpares
![Page 25: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/25.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 25
♦ Conjunto unitário
• quase tão importante como o vazio
• constituído por um único elemento∗ existem infinitos conjuntos unitários
• para muitas aplicações, pode-se usar qualquer conjunto unitário∗ importante é que o conjunto possui um único elemento∗ irrelevante qual é o elemento∗ conjunto unitário fixado: usualmente denotado por 1
Exp: Conjunto UnitárioConjunto constituído pelo jogador de futebol Pelé
Conjunto de todos os números simultaneamente pares e primos
1 = { * }
![Page 26: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/26.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 26
♦ Alguns Conjuntos importantes na Matemática e na CC
N Conjunto dos Números Naturais
Z Conjunto dos Números Inteiros
Q Conjunto dos Números Racionais
I Conjunto dos Números Irracionais
R Conjunto dos Números Reais
![Page 27: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/27.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 27
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 28: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/28.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 28
1.2.4 Conjuntos Finitos e Infinitos
Um conjunto pode possuir um número finito ou infinito de elementos
• definição formal de conjunto finito e infinito: adiante
♦ Conjunto finito
• pode ser denotado por extensão∗ listando exaustivamente todos os elementos
♦ Conjunto infinito
• caso contrário
![Page 29: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/29.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 29
Exp: Conjunto Finito
∅
{ ε }
Vogais = { a, e, i, o, u }
Dígitos = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
{ snoopy, a, baía da Guanabara, Pelé }
A = { x ∈ N x > 0 e x < 4 }
B = { x x é brasileiro }
![Page 30: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/30.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 30
Exp: Conjunto Infinito
Z
R
{ x ∈ Z x ≥ 0 }
Pares = { y y = 2x e x ∈ N }
![Page 31: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/31.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 31
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 32: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/32.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 32
1.2.5 Alfabetos, Palavras e Linguagens
♦ Linguagem
• um dos conceitos mais fundamentais em Ciência da Computação• definida a partir da noção de conjunto
♦ Para a definição de linguagem, é necessário
• conceitos de alfabeto• conceitos de cadeia de caracteres
♦ Estudo de linguagens e conceitos correlatos
• Linguagens Formais• Compiladores
![Page 33: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/33.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 33
Def: AlfabetoUm conjunto finito
• elementos são usalmente denominados de símbolos ou caracteres
♦ Portanto
• conjunto vazio é um alfabeto
• qualquer conjunto infinito não é um alfabeto
![Page 34: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/34.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 34
Def: Palavra, Cadeia de Caracteres, Sentença
Sobre um alfabeto
• seqüência finita de símbolos justapostos
♦ Cadeia sem símbolos
ε cadeia vazia, palavra vazia ou sentença vazia
♦ Conjunto de todas as palavras sobre um alfabeto ∑
∑*
![Page 35: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/35.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 35
Exp: Alfabeto, Palavra
∅ e { a, b, c } são alfabetos
N não é um alfabeto
ε é uma palavra sobre { a, b, c }
ε é uma palavra sobre ∅
a, e, i, o, u, ai, oi, ui, aeiou são palavras sobre Vogais
1, 001 são palavras distintas sobre Digitos
{ a, b }* = { ε, a, b, aa, ab, ba, bb, aaa,… }
∅* = { ε }
![Page 36: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/36.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 36
Def: Linguagem FormalOu simplesmente Linguagem
• um conjunto de palavras sobre um alfabeto
Exp: Linguagem Formal: alfabeto ∑ = { a, b }∅
{ ε } obviamente, ∅ ≠ { ε }conjunto de palíndromos
Palíndromos = { ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa,… }
• mesma leitura da esquerda para a direita e vice-versa• linguagem sempre infinita?
![Page 37: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/37.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 37
Exp: Linguagens de ProgramaçãoLinguagens de programação como Pascal, C e Java
• linguagens sobre o alfabeto constituído por∗ letras∗ digitos∗ símbolos especiais (como espaço, parenteses, pontuação, etc)
• cada programa na linguagem corresponde∗ uma palavra sobre o alfabeto
• Pascal, C e Java …∗ definidas por todos os seus programas possíveis∗ são conjuntos infinitos∗ pois, existem infinitos programas
![Page 38: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/38.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 38
Obs: Compilador × Pertinência à LinguagemCompilador de uma LP (linguagem de programação)
• software que traduz∗ programa escrito na LP (linguagem fonte)∗ para um código executável (linguagem objeto).
• Estrutura de um compilador∗ análise: léxica, sintática e semântica∗ síntese: geração e otimização de código executável
• análise
p ∈ L ?∗ verifica se um dado programa fonte p∗ é programa válido para a linguagem L
![Page 39: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/39.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 39
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 40: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/40.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 40
1.2.6 Subconjunto e Igualdade de Conjuntos
♦ Contido
• conceito fundamental da Teoria dos Conjuntos
• permite introduzir os conceitos∗ subconjunto∗ igualdade de conjuntos
![Page 41: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/41.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 41
♦ Todos elementos de A também são elementos de B
• A está contido em B
A ⊆ B
• A não está contido em B
A ⊆ B• B contém A
B ⊇ A
![Page 42: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/42.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 42
♦ A é subconjunto de B
A ⊆ B ou B ⊇ A
♦ A é subconjunto próprio de B
• A está contido propriamente em B (não contido propriamente)∗ A ⊆ B e existe b ∈ B tal que b ∉ A
A ⊂ B (A ⊄ B)
• B contém propriamente A
B ⊃ A
![Page 43: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/43.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 43
Exp: Contido, Subconjunto
{ a, b } ⊆ { b, a }{ a, b } ⊆ { a, b, c }{ a, b } ⊂ { a, b, c }{ 1, 2, 3 } ⊆ N
{ 1, 2, 3 } ⊂ N
N ⊆ Z
N ⊂ Z
∅ ⊆ { a, b, c }∅ ⊂ { a, b, c }∅ ⊆ N
∅ ⊂ N
![Page 44: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/44.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 44
♦ Conjunto Universo
• conjunto especial e importante
• contém todos os conjuntos considerados∗ define o “contexto de discussão”∗ portanto, não é um conjunto fixo
• normalmente denotado por U
• definido o conjunto universo, para qq conjunto A
A ⊆ U
![Page 45: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/45.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 45
♦ Conjuntos iguaisA e B são conjuntos iguais sse possuem os mesmos elementos
A = B se e somente se A ⊆ B e B ⊆ A
Exp: Igualdade de Conjuntos
{ 1, 2, 3 } = { x ∈ N x > 0 e x < 4 }
N = { x ∈ Z x ≥ 0 }
{ 1, 2, 3 } = { 3, 3, 3, 2, 2, 1 }
• { 1, 2, 3 } ⊆ { 3, 3, 3, 2, 2, 1 }• { 3, 3, 3, 2, 2, 1 } ⊆ { 1, 2, 3 }
![Page 46: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/46.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 46
Exp: Pertinência × ContidoÉ importante distinguir claramente entre pertinência e contido
Considere o conjunto A = { 1, 2, 3, ∅, {a}, {b, c} }
{ 1 } ∉ A∅ ∈ A{ a } ∈ A{ b, c } ∈ A{ 1, 2, 3 } ∉ A
∅ ⊆ A{ 1 } ⊆ A{ 1, 2, 3 } ⊆ A
![Page 47: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/47.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 47
Obs: Linguagem × Conjunto de Todas as Palavras
Definição alternativa para linguagem formal sobre um alfabeto ∑
• L é qualquer subconjunto de ∑*
L ⊆ ∑*
![Page 48: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/48.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 48
1 – Introdução e ConceitosBásicos
1.1 Introdução1.2 Conceitos Básicos de Teoria dos Conjuntos
1.2.1 Conjuntos1.2.2 Pertinência1.2.3 Alguns Conjuntos Importantes1.2.4 Conjuntos Finitos e Infinitos1.2.5 Alfabetos, Palavras e Linguagens1.2.6 Subconjunto e Igualdade de Conjuntos1.2.7 Conjuntos nas Linguagens de Programação
![Page 49: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/49.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 49
1.2.7 Conjuntos nas Linguagens de Programação
♦ Conceitos da MD × implementações em LP
• aplicação que será constantemente explorada
• conhecimentos de linguagem de programação não é pré-requisito
• exemplificação∗ ilustrativa∗ não detalhada∗ informal
♦ Centrado na linguagem Pascal
• entendimento crescente e coerente
![Page 50: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/50.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 50
♦ Por que Pascal?
• desenvolvida para o ensino de programação
• formalmente bem definida (facilita o estudo matemático)
• inspirou diversas linguagens de programação comerciais
• disponível em diversos tipos de sistemas computadores
• freqüentemente adotada como primeira LP em cursos decomputação e informática
![Page 51: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/51.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 51
♦ Tipo de dados
• conceito necessário para exemplificar conjuntos em LP
• informalmente e resumidamente∗ conjunto de objetos (dados) e operações sobre estes objetos
♦ Considerando limitações dos computadores eobjetivando a portabilidade do software
• algumas linguagens especificam∗ limites dos valores do tipo de dados∗ como os valores devem ser armazenados∗ como as operações devem ser processadas
![Page 52: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/52.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 52
♦ A maioria das LP possui tipos de dados predefinidos
• Real ou Ponto Flutuante• Inteiro• Caractere• Booleano ou Lógico
♦ Tipos Real e Inteiro• implementam um subconjunto próprio de R e Z• operações como adição, multiplicação…
♦ Tipos Caractere e Lógico• implementa os caracteres usuais como letras e dígitos• implementa os valores lógicos verdadeiro e falso• operações especiais (estudadas ao longo da disciplina)
![Page 53: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/53.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 53
♦ Muitas LP não possuem facilidades adequadas paradefinir e operar conjuntos
• Pascal oferece algum tratamento de conjuntos
♦ Definição de tipos baseados em conjuntos finitos
cores set of (amarelo, vermelho, azul,branco, preto)
dias_semana set of (seg, ter, qua, qui,sex, sab, dom)
letras set of ‘a’..’z’
![Page 54: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/54.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 54
♦ Definição de constantes de um tipo conjunto
[vermelho, amarelo, azul][ ][seg..dom][seg..sex][‘a’, ‘e’, ‘i’, ‘o’, ‘u’]
♦ Correspondem aos seguintes conjuntos{ vermelho, amarelo, azul }∅
{ seg, ter, qua, qui, sex, sab, dom }{ seg, ter, qua, qui, sex }{ a, e, i, o, u }
![Page 55: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/55.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 55
♦ Definição de variáveis de um tipo conjunto
• quais nomes (das variáveis) correspondem a quais tipos
cores_primarias: coresferiado, semana, trabalho: dias_semanavogais: letras
![Page 56: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/56.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 56
♦ Trechos de programas em Pascal
cores_primarias := [vermelho, amarelo, azul]
feriado := [ ]
semana := [seg..dom]
trabalho := [seg..sex]
vogais := [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]
♦ Interpretaçãocores_primarias = { vermelho, amarelo, azul }feriado = ∅semana = { seg, ter, qua, qui, sex, sab, dom }trabalho = { seg, ter, qua, qui, sex }vogais = { a, e, i, o, u }
![Page 57: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/57.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 57
♦ Atribuição × Teste de igualdade
• “:=” para associar a variável ao seu valor
• “=” para verificar uma igualdade
♦ Distinção ?
• objetiva facilitar a construção do compilador
![Page 58: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/58.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 58
♦ Igualdade
cores_primarias = [vermelho, amarelo, azul]
feriado = trabalho
♦ Interpretaçãocores_primarias = { vermelho, amarelo, azul } verdadeiro
feriado = trabalho falso
![Page 59: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/59.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 59
♦ Subconjunto (continência)
trabalho <= semana[sab, dom] <= trabalho
♦ Interpretaçãotrabalho ⊆ semana verdadeiro
{ sab, dom } ⊆ trabalho falso
![Page 60: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/60.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 60
♦ Pertinência
‘a’ in vogaisdom in trabalho
♦ Interpretaçãoa ∈ vogais verdadeiro
dom ∈ trabalho falso
![Page 61: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/61.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 61
Matemática Discreta para Computação e Informática
P. Blauth Menezes
1 Introdução e Conceitos Básicos2 Noções de Lógica e Técnicas de Demonstração3 Álgebra de Conjuntos4 Relações5 Funções Parciais e Totais6 Endorrelações, Ordenação e Equivalência7 Cardinalidade de Conjuntos8 Indução e Recursão9 Álgebras e Homomorfismos10 Reticulados e Álgebra Booleana11 Conclusões
![Page 62: Matemática Discreta para Computação e Informática · PDF fileNão cobre todos os tópicos de Matemática Discreta • Análise Combinatória • Probabilidade Discreta ... o conjunto](https://reader031.vdocuments.pub/reader031/viewer/2022022418/5a70e3857f8b9ab1538c57b1/html5/thumbnails/62.jpg)
Matemática Discreta para Computação e Informática - P. Blauth Menezes 62
Matemática Discreta paraComputação e Informática
P. Blauth Menezes
Departamento de Informática Teórica
Instituto de Informática / UFRGS