Conceitos Preliminares

Tamanho: px
Começar a partir da página:

Download "Conceitos Preliminares"

Transcrição

1 Capítulo 1 Conceitos Preliminares Inicialmente, na Seção 1.1, será abordado o problema fundamental relativo ao uso dos computadores, ou seja, o da representação, com o intuito de fazer transparecer a importância dos conceitos matemáticos a serem introduzidos, tanto no nível de modelagem quanto no de representação propriamente dito. O conceito de linguagem formal, a partir do qual será desenvolvido todo o material do restante do texto, será mostrado na Seção 1.2. Em seguida, será dada a noção de gramática, um dos formalismos mais utilizados para a definição de linguagens formais. Nessas duas seções, os conceitos de linguagem formal e de gramática serão vistos de modo sucinto, nas suas formas mais gerais; nos capítulos seguintes, eles serão retomados em conexão com classes específicas de linguagens. Para finalizar o capítulo, será apresentada a noção de problemas de decisão. 1.1 Representação Quando se pretende resolver um problema por computador, uma tarefa importante é representar as entidades envolvidas, sejam elas concretas ou não. A representação de umaentidade nas formasdeumprograma, deentradaparaumprogramaou desaídade um programa é, muitas vezes, constituída por sequências de símbolos. 1 Considere, por exemplo, uma aplicação referente à folha de pagamento de uma empresa. A entidade correspondente ao processo de cálculo da folha de pagamento é representada por uma sequência de símbolos em uma linguagem de programação, denominada programa; a entrada para tal programa é constituída de sequências de símbolos representando vários tipos de entidades, como o mês em questão, o ano, os nomes dos empregados, o número de horas trabalhadas para cada empregado etc.; a saída do programa é constituída por sequências de símbolos representando os empregados, o total de horas trabalhadas, a remuneração etc. No exemplo do parágrafo anterior, os símbolos utilizados nas representações das 1 Embora cada vez mais estejam sendo usados recursos gráficos bi e tridimensionais, som etc. De qualquer maneira, em algum nível, mesmo tais entidades são representadas mediante sequências de símbolos. 1

2 2 Editora Thomson Introdução aos fundamentos da computação Entidade Modelo Matemático Representação Mês Número inteiro no Um dos caracteres 1, 2, 3, 4, 5, intervalo [1,12] 6, 7, 8, 9, 0, A ou B Remuneração Número real positivo Número real na base 10 Presença Vetor de números, um Sequência de números reais na para cada dia do mês base 10 FP Relação Tabela em que cada linha tem o nome, cargo, salário etc. Cálculo de FP Algoritmo Programa Figura 1.1 A matemática entre a entidade e a representação. diversas entidades mencionadas são normalmente os caracteres (letras, dígitos e/ou caracteres especiais). No entanto, aqui o que pode ser considerado símbolo ficará em aberto, de forma que não se tenha, de partida, uma restrição desnecessária quando se pretenda conceber alguma linguagem para representação de alguma coisa. Assim, por exemplo, podem ser usados como símbolos sequências específicas de alguns caracteres específicos. Podem ser usados como símbolos alguns desenhos inventados especificamente para a aplicação em questão. E assim por diante. Muitas vezes, é útil considerar, entre uma entidade representada e a sequência de símbolos que a representa, a existência de um terceiro elemento: o modelo matemático correspondente à entidade representada. A Figura 1.1 mostra alguns exemplos (FP refere-se à abreviação de folha de pagamento). Veja que a representação do mês não é lá muito convencional (outubro representado por 0, novembro por A e dezembro por B). Por outro lado, as descrições de algumas representações estão um pouco vagas, não especificando precisamente (por enquanto) quais são as sequências realmente permitidas; por exemplo, não é explicitada qual é a linguagem de programação específica do programa que representa o cálculo da folha de pagamento. Na coluna representação, da Figura 1.1, o elemento fundamental é a sequência de símbolos. Ela é utilizada na representação de qualquer tipo de entidade, de maneira a propiciar a comunicação entre humanos, entre humanos e computadores e entre computadores, além do processamento computacional que a envolve. Por outro lado, as próprias sequências de símbolos podem ser estudadas matematicamente, ou seja, há um modelo matemático especialmente desenvolvido para tratar das mesmas. Em tal modelagem, em geral, os símbolos e as sequências de símbolos são consideradas como componentes do que se denomina linguagens formais. Exemplo 1 Seja o (sub)problema de representar o mês em algum tipo de aplicação. Os meses do ano, de janeiro a dezembro, são as entidades a serem representadas. Na Figura 1.1 tais entidades são modeladas como o conjunto dos números 1 a 12. Sendo um pouco mais abstratos, basta considerar como modelo um conjunto de 12 elementos; considerar tais elementos como números é absolutamente dispensável. Por outro lado, existem inúmeras representações possíveis, além daquela exibida na Figura 1.1. Por

3 Newton José Vieira Capítulo 1: Conceitos preliminares 3 exemplo: As palavras janeiro, fevereiro,..., dezembro. Símbolos usados: letras a, b,..., z. Numerais na base decimal. Símbolos usados: os dígitos 0 a 9. Numerais na base binária. Símbolos usados: os dígitos 0 e 1. Numerais em algarismos romanos. Símbolos usados: as letras I, V e X. Sequências de um a doze 0s. Símbolos usados: apenas o dígito 0. A linguagem formal usada para representar os meses é, assim, constituída de sequências de alguns símbolos escolhidos. Em nível matemático, uma linguagem formal será definida, na Seção 1.2, justamente como um conjunto de sequências de símbolos, sendo o conjunto dos símbolos escolhidos denominado o alfabeto da linguagem. Um exemplo importante de linguagem formal é uma linguagem de programação. Cada programa escrito em uma certa linguagem de programação é uma sequência de símbolos. No caso, pode-se convencionar que os símbolos são os caracteres que podem aparecer nos programas. Mas, alternativamente, pode-se convencionar que os símbolos são certas sequências específicas de caracteres. Por exemplo, a palavra while, presente em muitas linguagens de programação, pode ser considerada como uma sequência de 5 símbolos, se se considerar cada caractere como um símbolo, ou como um único símbolo. Cada uma dessas duas visões pode ser a mais conveniente dependendo da aplicação. De qualquer forma, considerando um programa como uma sequência de símbolos, a linguagem de programação pode ser considerada como o conjunto de tais sequências. Uma boa parte deste texto versará sobre linguagens formais. Isso será importante tanto para introduzir técnicas bem fundamentadas para a construção de algoritmos, visando amplo espectro de aplicações, quanto para caracterizar o conceito de computabilidade. Nesse último aspecto, será visto, por exemplo, que existe uma infinidade de funções que não são computáveis; em particular, serão vistos problemas com enunciados bastante simples para os quais não existe algoritmo e, portanto, não há programa em nenhuma linguagem de programação. Exemplo 2 SejaJ o conjunto dos programas em Java. Tal conjunto serávisto nestelivro como a linguagem Java. Neste caso, o problema de determinar, dada uma sequência de símbolos (no caso, caracteres) x qualquer, se ela pertence ao conjunto J, é computável. Ele é o problema da análise sintática: 2 se x J, então x é (um programa) sintaticamente correto; se x J, x é incorreto. Um exemplo de problema para o qual não existe algoritmo é o de, dado um programa qualquer em Java, determinar se ele emitirá algum sinal sonoro, isto é, dada uma sequência de símbolos x, determinar se ela pertence ao conjunto {x J x, ao ser executado, emite um sinal sonoro}. Para fazer o estudo das linguagens formais, assim como para considerar modelos alternativos para o conceito de computabilidade, são necessários alguns elementos de 2 A expressão x A denota que o elemento x pertence ao conjunto A, e x A denota que x não pertence a A. Elementos de teoria dos conjuntos serão apresentados na Seção A.2.

4 4 Editora Thomson Introdução aos fundamentos da computação matemática, que serão revisados no restante deste capítulo. Esses elementos também são úteis na etapa intermediária de modelagem ilustrada na Figura 1.1. A revisão começará na próxima seção, com uma síntese dos principais elementos de lógica matemática utilizados na construção de provas de teoremas. Exercícios 1. Encontre uma maneira de representar, por meio de uma sequência dos símbolos x e o: a) qualquer número inteiro positivo; b) qualquer vetor de números inteiros positivos; c) qualquer matriz de números inteiros positivos. 2. Uma versão do problema da parada, problema este a ser abordado no Capítulo??, é: dado um programa (sem entrada), determinar se ele para. Lá no Capítulo??, será visto que não existe algoritmo que, recebendo como entrada um (texto de) programa qualquer em Java (ou em outra linguagem de programação), determine se ele para ou não. Em outras palavras, o problema da parada não é computável. Sabendo disto, argumente que o problema enunciado no Exemplo 2, dado um programa qualquer em Java, determinar se ele emitirá algum sinal sonoro, também não é computável. 1.2 Linguagens Formais Uma linguagem formal, ao contrário de uma linguagem natural, é tal que: a) tem uma sintaxe bem definida, de forma que, dada uma sentença, seja sempre possível saber se ela pertence ou não à linguagem; e b) tem uma semântica precisa, de modo que não contenha sentenças sem significado ou ambíguas. As linguagens formais são úteis, não só na matemática, mas também nas áreas que utilizam a matemática como ferramenta, como as engenharias, a física, a química e a computação. No caso da computação, as linguagens formais têm uma importância ímpar, pois a maioria dos profissionais da área lida diretamente com uma ou mais no dia-a-dia. Exemplos de linguagens formais, ou concretizações diretas das mesmas, são as linguagens Java, C, Pascal, HTML etc. Em princípio, se um programador ou analista projeta um programa ou sistema que envolve um diálogo com o usuário, ele tem o problema de projetar a linguagem (formal) de comunicação. Desde o nível de instruções de máquina até os níveis mais altos da programação de um computador, as linguagens formais são uma presença constante. Nesta seção, será vista uma definição de linguagem formal bastante geral, sem tocar na parte de semântica. À primeira vista isso pode parecer uma limitação, mas o fato é

5 Newton José Vieira Capítulo 1: Conceitos preliminares 5 que uma abordagem puramente sintática é suficiente para a caracterização do conceito de computabilidade, um dos objetivos deste texto, assim como para servir de base para ampla gama de aplicações, como ficará claro no decorrer do livro. Além disso, a especificação e o processamento da sintaxe de linguagens formais já envolve um material bastante extenso, que pode anteceder um estudo posterior de semântica. No entanto, muitas vezes consegue-se uma estrutura sintática rica o suficiente para capturar todos os aspectos relevantes da linguagem, não havendo a necessidade de considerar uma semântica à parte. Toda linguagem 3 tem um alfabeto associado. Um alfabeto é um conjunto finito não vazio de elementos que serão referidos como símbolos. Uma palavra 4 sobre um alfabeto Σ é uma sequência finita de símbolos de Σ. 5 O tamanho de uma palavra x, x, é o número de símbolos que a compõem. Em particular, existe a palavra vazia, constituída de zero símbolos; tal palavra será designada por λ. Assim, λ = 0. Exemplo 3 Dois exemplos de alfabetos particularmente importantes são: Σ = {1} e Γ = {0,1}. São palavras sobre Γ: λ, 0, 1, 00, 01, 10, 11, 000 etc. Com esse alfabeto, pode-se representar qualquer número. Uma possibilidade é utilizar a codificação na base 2: 0 é representado por uma infinidade de palavras: 0, 00 etc.; 1 é representado por uma infinidade de palavras: 1, 01 etc.; apenas λ não representa nenhum número. São palavras sobre Σ: λ, 1, 11, 111 etc. Observe que, com esse alfabeto, também se consegue representar qualquer número natural! Por exemplo, basta representar o número n por uma palavra de tamanho n. Nesse caso, cada palavra x representaria o número x. Comparando a representação do parágrafo anterior com a deste, note que a menor palavra x usada para representar um número n na base 2 tem tamanho log 2 n +1, e a palavra y usada para representar o mesmo número n na base 1 possui tamanho n. Dessa forma, nessa segunda representação a palavra usada é exponencialmente maior. Seja a um símbolo qualquer. A notação a n, em que n N, será utilizada para designar a palavra constituída de n as em sequência. Assim, por exemplo, dado o alfabeto {0,1}, são exemplos de palavras sobre tal alfabeto: 1 0 = λ, 0 4 = 0000, = etc. Umalinguagem sobreumalfabeto Σéumconjuntodepalavras sobreσ. Denotando o conjunto de todas as palavras sobre Σ por Σ, diz-se, então, que uma linguagem sobre Σ é qualquer subconjunto de Σ. Exemplo 4 Seja o alfabeto Σ = {0,1}. O conjunto de todas as palavras sobre Σ é Σ = {λ,0,1,00,01,10,11,000,...}. São exemplos de linguagens sobre Σ: 3 Daqui para a frente, quando se disser linguagem, quer-se dizer linguagem formal, a menos que se diga o contrário. 4 Em inglês, são utilizados os termos string ou word. 5 Formalmente, uma sequência é uma função f : {1,2,3,...,n} Σ. Ela é representada normalmente por f(1)f(2)f(3) f(n). Por exemplo, a sequência f : {1,2,3} {0,1} tal que f(1) = 1, f(2) = 0 e f(3) = 1 é representada por 101.

6 6 Editora Thomson Introdução aos fundamentos da computação. é a linguagem mais simples que existe; não contém palavras; {λ}. Contém uma única palavra: a palavra vazia; {0}. Contém uma única palavra: 0; {λ,0}. Contém duas palavras: λ e 0; {w Σ 1 w 5}. Contém 5 i=1 2i palavras; {0 n n é um número primo}. Esta linguagem é infinita, já que existe uma infinidade de números primos; {0 n 1 n n N}. Linguagem constituída de toda palavra de tamanho par cuja primeira metade só contém 0s e cuja segunda metade só 1s; Σ. Contém todas as palavras sobre o alfabeto Σ. Assim como as três últimas linguagens do Exemplo 4, a maioria das linguagens de interesse é infinita. Como fazer para especificar tais linguagens, se não dá para listar explicitamente todas as suas palavras? Na verdade, como será visto oportunamente, existem muitas opções para isso, cada uma delas possuindo contextos em que é mais apropriada. Como uma linguagem é um conjunto, pode-se lançar mão das operações sobre conjuntos, definidas na Seção A.2. Assim, por exemplo, se L 1 e L 2 são linguagens sobre alfabetos Σ 1 e Σ 2, respectivamente, também são linguagens: L 1 L 2, uma linguagem sobre Σ 1 Σ 2 ; L 1 L 2, uma linguagem sobre Σ 1 Σ 2 ; L 1 L 2, uma linguagem sobre Σ 1. Além dessas, levando-se em consideração que os elementos que constituem as linguagens são as palavras, existem outras operações, tanto sobre palavras quanto sobre linguagens, que podem auxiliar na especificação de uma linguagem. A concatenação de duas palavras x = a 1 a 2...a m e y = b 1 b 2...b n é a palavra xy = a 1 a 2...a m b 1 b 2...b n. Em particular, note que λw = wλ = w para qualquer palavra w. Tal definição implica que a concatenação é uma operação associativa: x(yz) = (xy)z para quaisquer palavras x, y e z. Desse modo, uma sequência de concatenações poderá ser escrita sem parênteses. E para expressar a concatenação de uma palavra w com ela mesma n 1 vezes, pode-se escrever w n ; em particular, define-se que w 0 = λ para qualquer palavra w. Exemplo 5 Sejam x = aab e y = cc. Então yx = ccaab, x 2 = xx = aabaab, xy 2 = aab(cc) 2 = aabcccc, axbbyc = aaabbbccc= a 3 b 3 c 3, λ(aa) 3 λλy 3 λ = a 6 c 6. Uma palavra x é dita ser um prefixo de uma palavra w se w = xy para alguma palavra y; é dita ser um sufixo de w se w = yx para alguma palavra y; e é dita ser uma subpalavra de w se w = yxz para algum par de palavras y e z. As três partes, x, y e z, podem ser λ ou não. Observe que, em particular, λ e w são prefixos, sufixos e subpalavras de qualquer palavra w, e também que prefixos e sufixos são subpalavras.

7 Newton José Vieira Capítulo 1: Conceitos preliminares 7 Exemplo 6 Considere a palavra abc. Seus prefixos são: λ, a, ab e abc. Seus sufixos: λ, c, bc eabc. As subpalavras deabcsão: λ, a, b, c, ab, bceabc. Apenas a subpalavra b não é prefixo nem sufixo de abc. O reverso de uma palavra w = a 1 a 2...a n, w R, é a sequência dos símbolos de w na ordem reversa, isto é, w R = a n a n 1...a 1. Uma palavra w tal que w = w R é um palíndromo. Veja que todo palídromo de tamanho par é da forma xx R, e que os palíndromos de tamanho ímpar são da forma xax R, em que a é um símbolo do alfabeto em questão. Exemplo 7 Alguns reversos de palavras: λ R = λ; a R = a; (c 5 ) R = c 5, (abcaabb) R = bbaacba. Alguns palíndromos: λ, a, bb, ccc, aba, baab, abcacba. A concatenação de duas linguagens L 1 el 2 é dada por: L 1 L 2 = {xy x L 1 e y L 2 }. Em particular, L = L = e {λ}l = L{λ} = L, para qualquer linguagem L. Exemplo 8 Sejam as linguagens L 1 = {w {0,1} w = 5} e a linguagem L 2 = {0y y {0,1} }. Então: L 1 L 1 = {w {0,1} w = 10}; L 1 L 2 = {w {0,1} o sexto símbolo de w é 0}; L 2 L 1 = {w {0,1} w começa com 0 e w 6}; L 2 L 2 = {0y y {0,1} e y contém no mínimo um 0}. SejaLumalinguagem. AnotaçãoL n seráutilizadaparadesignarll...l(n vezes). Recursivamente: a) L 0 = {λ}; b) L n = L n 1 L para n 1. L 0 = {λ} porque, segundo o item b desta definição, tem-se que (para n = 1) L 1 = L 0 L, e para que L 1 seja igual a L é preciso que L 0 seja {λ}. Exemplo 9 {0,1} 2 = {00,01,10,11}. Generalizando, {0,1} n = {w {0,1} w = n}paraqualquern 0. {λ,0,1} 2 = {λ,0,1,00,01,10,11}. Generalizando, {λ,0,1} n = {w {0,1} w n} para qualquer n 0. {0,01} 2 = {00,001,010,0101}. A operação fecho de Kleene de uma linguagem L, L, pode ser definida recursivamente assim: a) λ L ; b) se x L e y L, então xy L.

8 8 Editora Thomson Introdução aos fundamentos da computação A partir desta e da definição de concatenação de linguagens, pode-se verificar que: L = n NL n. Ou seja, L = L 0 L 1 L 2 = {λ} L LL. Define-se também o fecho positivo de Kleene de L: L + = LL. Pode-se verificar que: L + = L n. n N {0} Segue diretamente dessas definições que L = L + {λ}. Pode-se mostrar também que L + = LL = L L. Exemplo 10 A seguir, são apresentadas algumas linguagens e seus fechos de Kleene: = {λ}, e + = ; {λ} = {λ} + = {λ}; {0} = {0 n n N} e {0} + = {0 n n 1}; {λ,00,11} = {λ,00,11} + = {λ} {00,11} +. Com as operações definidas nesta seção, pode-se expressar (ou definir) de forma precisa algumas linguagens, como exemplificado a seguir. Exemplo 11 Seguem descrições informais, em português, para algumas linguagens sobre {0, 1}, bem como descrições mais formais utilizando as operações definidas nesta seção: a) o conjunto das palavras que começam com 0: {0}{0,1} ; b) o conjunto das palavras que contêm 00 ou 11: {0,1} {00,11}{0,1} ; c) o conjunto das palavras que terminam com 0 seguido de um número ímpar de 1s consecutivos: {0,1} {01}{11} ; d) oconjuntodaspalavras quecomeçam outerminamcom0: {0}{0,1} {0,1} {0}; e) o conjunto das palavras de tamanho par que começam ou terminam com 0: ({0,1}{0,1}) [{0}{0,1} {0,1} {0}]; f) o conjunto do item (e): [{0}{0,1}({0,1}{0,1}) ] [{0,1}({0,1}{0,1}) {0}]; g) o conjunto das palavras com um prefixo de um ou mais 0s seguido(imediatamente) de um sufixo de 1s de mesmo tamanho: {0 n 1 n n 1}; h) o conjunto das palavras formadas por concatenações de palavras da forma 0 n 1 n para n 1: k 1 {0 n 1 n n 1} k.

9 Newton José Vieira Capítulo 1: Conceitos preliminares 9 Um aspecto muito importante é que as seis primeiras linguagens do exemplo anterior são linguagens definidas a partir de conjuntos finitos de palavras usando apenas as operações sobre conjuntos e as de concatenação e fecho de Kleene. O tratamento computacional de uma linguagem (verificar se uma palavra pertence ou não à mesma) que possa ser descrita dessa forma pode ser feito de forma extremamente eficiente. O Capítulo 2 irá tratar justamente desse tipo de linguagem e do respectivo tratamento computacional. Já as duas últimas linguagens do exemplo não podem ser descritas por meio daquelas operações a partir de conjuntos finitos, e seu tratamento computacional não pode ser feito de forma tão eficiente. Elas serão consideradas em capítulos posteriores. Como uma linguagem sobre um alfabeto Σ é sempre um conjunto contável, pois é um subconjunto de Σ, que é enumerável, existe a possibilidade de fazer uma definição recursiva, da forma mostrada na Seção A.6. Mas a verdade é que, na prática, as linguagens raramente são definidas dessa forma. Existe um formalismo, que permite o uso de recursão, porém foi especialmente projetado para a definição de linguagens: a gramática. Na próxima seção será apresentada uma breve introdução às gramáticas. Em capítulos posteriores, elas serão mais bem estudadas e exploradas pouco a pouco. Exercícios 1. Qual é o númerodeprefixos, sufixosesubpalavras deumapalavra de tamanho n? 2. Seja Σ = {0,1,#}. Sejam k e n números naturais tais que k n. a) Quantas palavras há na linguagem Σ k? b) Quantas palavras há na linguagem (Σ {λ}) k? c) Quantas palavras de n símbolos contêm exatamente k ocorrências de #? d) Quantas palavras de n símbolos contêm no máximo k ocorrências de #? 3. Seja Σ um alfabeto. Prove que se x,y,w Σ e xw = yw, então x = y. 4. Sejam A = {00,11}, B = {01,10} e C = {λ,1}. Calcule: a) AA; b) AC; c) CC; d) (AB)C; e) A(BC); f) A(B C); g) AB AC. 5. Sejam Σ = {0,1}, A = Σ {0} e B = {1}Σ. Descreva, em português, as linguagens a seguir. Não é necessário dizer que as palavras são de 0s e 1s. Por exemplo, A é o conjunto das palavras que terminam com 0. a) A B;

10 10 Editora Thomson Introdução aos fundamentos da computação b) A B; c) A B; d) B A; e) A; f) AB; g) BA. 6. Seja L = {λ,0,1}. a) Que linguagem é L 0? b) Que linguagem é L 2? c) Que linguagem é L n para n 0? d) Quantas palavras tem L n para n 0? 7. Sejam A = {0} e B = {1}. Determine A n B, AB n e (AB) n. 8. Sejam A = {λ,a} e B = {a,b}. Determine A n B, AB n e A n B n. Quantos elementos tem cada um desses conjuntos? 9. Encontre linguagens A, B e C tais que A(B C) AB BC. 10. Que linguagens são subconjuntos de quais outras? a) {a} ; b) {a} {b} ; c) {a} {b} ; d) {a,b} ; e) ({a} {b} ). 11. Sejam A = {a} e B = {bb}. Quantas palavras de n símbolos, para cada n 0, há em: a) A B? b) AB? c) A B? 12. Descreva mais formalmente as seguintes linguagens sobre o alfabeto {0, 1}: a) o conjunto das palavras com, no mínimo, um 0; b) o conjunto das palavras com, no máximo, um 0; c) o conjunto das palavras de tamanho ímpar; d) o conjunto das palavras com um prefixo de um ou mais 0s seguido (imediatamente) de um sufixo de zero ou mais 1s; e) o conjunto dos palíndromos que não tenham símbolos consecutivos idênticos; f) o conjunto das palavras de tamanho par cuja primeira metade é idêntica à segunda.

11 Newton José Vieira Capítulo 1: Conceitos preliminares 11 Procure ser bem preciso e conciso. 13. Sejam Σ = {0,1}, A = Σ 5 e B = {0}Σ. Para cada uma das linguagens a seguir, dê uma propriedade necessária e suficiente para que uma palavra pertença à mesma. Não é preciso dizer que a palavra contém apenas os símbolos 0 e 1. a) A ; b) B + ; c) A B; d) AB; e) A B. 14. Descreva, em português, as seguintes linguagens sobre o alfabeto {0, 1}: a) {0,1} {1}{0,1}; b) {0}{0,1} {0,1} {1}; c) {0,1} {01}{11}; d) {01,1}. e) {1,λ}({0}{0} {1}) {0} ; f) {0} {1}({0} {1}{0} {1}). 15. Seja Σ o conjunto de todas as 26 letras do alfabeto e C o conjunto das 21 consoantes. Seja D o conjunto de todas as palavras de um dicionário da lingua portuguesa, e, para cada letra l Σ, seja P l = {w D w contém a letra l}. A partir de tais conjuntos, usando operações sobre conjuntos, concatenações e fechos de Kleene, descreva o conjunto das palavras: a) que contêm pelo menos uma das letras A, B ou C; b) que contêm as letras A e B, mas não C; c) que não contêm A nem B; d) que começam com a letra A; e) que começam com a letra A e contêm pelo menos uma consoante; f) que contêm a subpalavra RR. 16. Expresse as linguagens a seguir utilizando as operações sobre conjuntos finitos de palavras de {0,1}. Considere o alfabeto como sendo {0,1}. a) o conjunto das palavras de 10 símbolos; b) o conjunto das palavras que têm de 1 a 200 símbolos; c) o conjunto das palavras que começam e terminam com o mesmo símbolo; d) o conjunto das palavras que contêm pelo menos um 0 e um 1; e) o conjunto das palavras que começam com 0 e contêm 00; f) o conjunto das palavras que não têm 00 como prefixo, mas têm 00 como sufixo;

12 12 Editora Thomson Introdução aos fundamentos da computação g) o conjunto das palavras que começam com 00 ou 11 e terminam com 01 ou 10; h) o conjunto das palavras em que todo 0 é seguido de dois 1s consecutivos; exemplos: λ, 1, , ; i) {01 n 0 n é ímpar}; j) o conjunto das palavras de {0} {1} de tamanho par; k) o conjunto das palavras com número par de 0s ou ímpar de 1s (ou ambos); l) o conjunto das palavras que contêm um ou dois 1s, cujo tamanho é múltiplo de 3; m) o conjunto das palavras com número par de 0s e ímpar de 1s. 17. Sejam A, B e C linguagens sobre um alfabeto Σ. Mostre que: a) A(B C) = (AB) (AC); b) nem sempre A(B C) = (AB) (AC). 18. Mostre que, se λ L, então L + = L e, se λ L, então L + = L {λ}. 19. Quando L é finita? 20. Prove que (w R ) n = (w n ) R para toda palavra w e todo n N. 21. Prove que não existe x {0,1} tal que 0x = x Sejam L 1 e L 2 linguagens sobre um alfabeto Σ tais que L 1 L 2. Prove que L 1 L Apresente um exemplo em que L 1 L 2 = (L 1 L 2 ), mas L 1 L 2 e L 2 L Mostre que os conjuntos a seguir são enumeráveis: a) {0} ; b) {0} {1}. 25. Seja a seguinte definição recursiva da linguagem L sobre o alfabeto {0, 1}: a) λ L; b) se x L, então 0x L e x1 L; c) nada mais pertence a L. Que linguagem é L? 26. Seja a linguagem X, de alfabeto {a, b}, definida assim: a) λ X; b) se x X então ax X e axbx X; c) x X somente se pode ser obtido como especificado em (a) e (b). Sejamn a (x) en b (x) onumerodeasedebs, respectivamente, napalavrax. Prove, por indução, que n a (x) n b (x).

13 Newton José Vieira Capítulo 1: Conceitos preliminares Dê definições recursivas para as seguintes linguagens: a) {0 n 1 n n N}; b) {w {0,1} w contém 00}; c) {w {0,1} w é palíndromo}; d) {xx x {0,1} }; e) { n 1 n N}. 1.3 Gramáticas As gramáticas são um formalismo originalmente projetado para a definição de linguagens. Nesta seção, será apenas definido o conceito de gramática e apresentados alguns poucos exemplos. Nos próximos capítulos, o estudo de gramáticas, associado a classes específicas de linguagens, será retomado e serão apresentados muitos outros exemplos. Antes de dar uma definição precisa de gramática, serão apresentados os conceitos envolvidos de maneira informal. Como foi dito na Seção A.6, uma definição recursiva provê um meio de construir (ou gerar) os elementos de um conjunto (enumerável). Similarmente, uma gramática mostra como gerar as palavras de uma linguagem. O elemento fundamental das gramáticas é a regra. 6 Uma regra é um par ordenado (u,v), tradicionalmente escrito na forma u v, em que u e v são palavras que podem conter símbolos de dois alfabetos disjuntos, um com símbolos denominados variáveis, ou não terminais, e outro com símbolos chamados terminais. As variáveis são símbolos auxiliares para a geração das palavras da linguagem, enquanto o conjunto de terminais nada mais é que o alfabeto da linguagem definida. Nos exemplos a seguir, serão usadas letras maiúsculas para as variáveis e minúsculas para os terminais. Segue um exemplo de regra: aab baa Essa regra especifica que: dada uma palavra que contenha a subpalavra aab, tal subpalavra pode ser substituída por baa. Assim, a partir da palavra aabbaab, aplicando-se a regra mencionada, pode-se obter, diz-se derivar: baabaab, substituindo a primeira ocorrência de aab; ou aabbbaa, substituindo a segunda ocorrência de aab. A relação de derivação é denotada por. Por exemplo, a cadeia de derivações aabbaab baabaab (aplicando-se a regra aab baa) bbaaaab (aplicando-se a regra aab baa) bbaabaa (aplicando-se a regra aab baa) mostra uma derivação de bbaabaa a partir de aabbaab. 6 Também chamada regra de produção, ou produção, simplesmente.

14 14 Editora Thomson Introdução aos fundamentos da computação Uma gramática consta de um conjunto de regras e da indicação de uma variável especial denominada variável de partida. Qualquer derivação deve começar com a palavra constituída apenas pela variável de partida. As palavras de variáveis e/ou terminais geradas a partir da variável de partida são chamadas formas sentenciais da gramática. Assim, uma regra pode ser aplicada a uma forma sentencial para gerar uma outra forma sentencial. Uma forma sentencial sem variáveis é conhecida como sentença. A linguagem definida pela gramática, também dita gerada pela gramática, é o conjunto de sentenças geradas pela gramática. Para uma gramática G, a linguagem gerada por ela é denotada por L(G). A seguir, os conceitos introduzidos anteriormente são exemplificados. Exemplo 12 Agora define-se uma gramática G que tem duas variáveis, P e X, sendo P a variável de partida, e dois terminais, 0 e 1. Suas regras são: 1. P 0P 2. P 1X 3. X 1X 4. X λ Toda derivação deve começar com a forma sentencial constituída pela variável de partida P. Um exemplo de derivação é: P 0P (regra 1) 01X (regra 2) 01 (regra 4) Como01 é umasentença, tal palavra pertenceal(g). Um outro exemplo dederivação: P 0P (regra 1) 00P (regra 1) 001X (regra 2) 0011X (regra 3) 0011 (regra 4) Logo, 0011 L(G). Pode-se notar que qualquer derivação de sentença, ou seja, forma sentencial sem variáveis, envolve: aplicar n 0 vezes a regra 1, produzindo uma forma sentencial da forma 0 n P; em seguida, aplicar uma única vez a regra 2, produzindo 0 n 1X; depois, aplicar k 0 vezes a regra 3, produzindo 0 n 11 k X; e, finalmente, aplicar uma única vez a regra 4, produzindo 0 n 11 k.

15 Newton José Vieira Capítulo 1: Conceitos preliminares 15 Logo, a linguagem gerada por G é L(G) = {0} {1} +. Agora, define-se formalmente o que é gramática. Uma gramática é uma quádrupla (V,Σ,R,P), em que: a) V é um conjunto finito de elementos denominados variáveis; b) Σ é um alfabeto; V Σ = ; c) R (V Σ) + (V Σ) é um conjunto finito de pares ordenados chamados regras; e d) P V é uma variável conhecida como variável de partida. Observequeoladoesquerdodeumaregranãopodeserλ. Opróximoexemploapresenta uma gramática mais elaborada. Exemplo 13 Seja a gramática H = ({P,B},{a,b,c},R,P) em que R é constituído das regras: 1. P apbc 2. P abc 3. cb Bc 4. bb bb Toda derivação de H deve começar com a forma sentencial constituída pela variável de partida P. Um exemplo de derivação de sentença: P abc (regra 2) Logo, abc L(H). Outro exemplo de derivação: P apbc (regra 1) aap BcBc (regra 1) aaabcbcbc (regra 2) aaabbccbc (regra 3) aaabbccbc (regra 4) aaabbcbcc (regra 3) aaabbbccc (regra 3) aaabbbccc (regra 4) Logo, a 3 b 3 c 3 L(H). Na verdade, pode-se mostrar que L(H) = {a n b n c n n 1}. Émuitocomum umagramática ter duasou maisregras com omesmoladoesquerdo. Por exemplo, a gramática do Exemplo 12 tem as regras 1 e 2 com o mesmo lado esquerdo, assim como as regras 3 e 4. Nesse caso, pode-se abreviar colocando-se apenas um lado esquerdo e os lados direitos das várias regras separados por. Desta forma, as regras do Exemplo 12 seriam substituídas por:

16 16 Editora Thomson Introdução aos fundamentos da computação P 0P 1X X 1X λ De forma análoga, as regras 1 e 2 da gramática do Exemplo 13 podem ser substituídas por: P apbc abc Seja uma gramática G = (V,Σ,R,P). Diz-se que x y em G, em que x,y (V Σ), se há uma regra u v R tal que u ocorre em x e y é o resultado de substituir uma ocorrência de u em x por v. A relação n é definida recursivamente assim, utilizando-se : a) x 0 x para todo x (V Σ) ; b) se w n xuy e u v R, então w n+1 xvy para todo w,x,y (V Σ), n 0. Quando x n y, diz-se que de x deriva-se y em n passos, ou então que há uma derivação de tamanho n de y a partir de x. Diz-se ainda que de x deriva-se y em zero ou mais passos, x y, se existe n 0 tal que x n y. 7 E de x deriva-se y em um ou mais passos, x + y, se existe n 1 tal que x n y. 8 Com isso, pode-se definir o que é a linguagem gerada pela gramática G: L(G) = {w Σ P w}. Exemplo 14 Seja a gramática I = ({X,B},{a,b},R,X), em que R consta das regras: 1 e 2. P apb Bb 3 e 4. B Bb λ O seguinte esquema de derivação mostra como toda palavra da forma a n b n+1+k, para n 0 e k 0 podem ser geradas : P n a n Pb n (regra 1 n vezes, n 0) a n Bb n+1 (regra 2) k a n Bb n+1+k (regra 3 k vezes, k 0) a n b n+1+k (regra 4) Logo, pode-sederivar qualquer palavra a n b n+1+k, para n,k 0, em n+k+2 passos, ou seja, qualquer palavra a n b m tal que n < m, ou ainda, observando-se que m = n+1+k, então P m+1 = a n b m. E como não é possível gerar outras palavras, conclui-se que L(I) = {a n b m n < m}. No exemplo anterior foi introduzido o conceito de esquema de derivação. No exemplo, qualquer sentença que possa ser gerada obedece ao esquema, no sentido de que uma derivação da sentença pode ser obtida introduzindo-se valores específicos para as variáveis que aparecem no esquema. Por exemplo, uma derivação da sentença aabbbb seria obtida instanciando-se n com 2 e k com 1: 7 Usando a terminologia da Seção A.3, x y é o fecho transitivo e reflexivo da relação. 8 x + y é o fecho transitivo da relação.

17 Newton José Vieira Capítulo 1: Conceitos preliminares 17 P 2 a 2 Pb 2 (regra 1 duas vezes) a 2 Bb 3 (regra 2) 1 a 2 Bb 4 (regra 3 uma vez) a 2 b 4 (regra 4) Em geral, um esquema de derivação para uma gramática G mostra apenas como um conjunto A (das sentenças geradas segundo o esquema) está contido na linguagem gerada por G, ou seja, A L(G). Diferentes esquemas podem ser usados para mostrar que outros subconjuntos de L(G) são deriváveis. Por outro lado, deve-se provar também que as únicas palavras geradas por G são as deriváveis pelo(s) esquema(s) apresentado(s). No caso particular do Exemplo 14, como não existem outros esquemas para quaisquer sentenças deriváveis na gramática, pode-se dizer que o esquema lá apresentado mostra como derivar todas as palavras de L(G). Exemplo 15 Seja a gramática H do Exemplo 13. As duas derivações demonstram que P 1 abc e P 8 a 3 b 3 c 3. É fácil mostrar que todas as palavras da forma a n b n c n, para n 1, são geradas por H. Para isso, basta notar que tais palavras podem ser geradas por derivações da forma: P k a k P(Bc) k (regra 1 k vezes, k 0) a k+1 bc(bc) k (regra 2) 1 a k+1 bbcc(bc) k 1 (regra 3 uma vez) 2 a k+1 bbbccc(bc) k 2 (regra 3 duas vezes). k a k+1 bb k c k+1 k a k+1 b k+1 c k+1 (regra 3 k vezes) (regra 4 k vezes) Isso mostra que se pode derivar palavras da forma a k+1 b k+1 c k+1, para k 0, em k+1+(1+2+ +k)+k = (2k+1)+k(k+1)/2 = k(k+5)/2+1 passos. Tem-se, então, que: P (n 1)(n+4)/2+1 = a n b n c n para n 1. Logo, conclui-se que {a n b n c n n 1} L(H). Para a gramática H do Exemplo 13, analisando-se as alternativas possíveis ao esquema de derivação apresentado no Exemplo 15, pode-se notar que, qualquer que seja a ordem de aplicação das regras 3 e 4, não se consegue gerar outras sentenças que não sejam as da forma a n b n c n para n 1. Logo, L(H) = {a n b n c n n 1} A mesma linguagem pode ser gerada por inúmeras gramáticas. Duas gramáticas G e G são ditas equivalentes quando L(G) = L(G ). O problema de modificar uma gramática de forma que ela atenda a certos requisitos, mas sem alterar a linguagem gerada pela mesma, é importante em determinados contextos, por exemplo, na construção de analisadores sintáticos de linguagens. Algumas técnicas de manipulação de gramáticas serão abordadas na Seção??.

18 18 Editora Thomson Introdução aos fundamentos da computação Na gramática a seguir, assim como nas dos Exemplos 12 e 14, as regras têm a característica de que os seus lados esquerdos contêm apenas e tão-somente uma variável. Esse tipo de gramática, muito importante em termos práticos, será estudado na Seção??. Exemplo 16 Seja a gramática G = (V,Σ,R,E), em que: V = {E,T,N,D}; Σ = {+,,(,),0,1,2,3,4,5,6,7,8,9}; R contém as regras: E E +T E T T T (E) N N DN D D A gramática G gera expressões aritméticas contendo números naturais na base decimal, operadores de soma e subtração e parênteses. Por meio das três regras com E do lado esquerdo, pode-se gerar uma sequência de somas e/ou subtrações de T s (termos); por exemplo: E E +T (regra E E +T) E T +T (regra E E T) E T T +T (regra E E T) T T T +T (regra E T) Observe como as regras são recursivas à esquerda, levando à produção de uma sequência da direita para a esquerda. Entretanto, as regras responsáveis pela produção dos números das expressões são recursivas à direita, redundando na produção de números da esquerda para a direita. Por exemplo, para gerar um número de quatro dígitos, pode-se derivar: N DN (regra N DN) DDN (regra N DN) DDDN (regra N DN) DDDD (regra N D) e, em seguida, derivar os quatro dígitos usando-se as regras com D do lado esquerdo. Observe também que a geração de parênteses se dá por recursão (no caso, indireta), a qual não pode ser classificada como recursão à esquerda nem à direita. Por exemplo, na derivação: E E +T (regra E E +T) T +T (regra E T) (E)+T (regra T (E)) a variável E aparece (recursivamente) na forma sentencial entre ( e ).

19 Newton José Vieira Capítulo 1: Conceitos preliminares 19 Exercícios 1. Seja a gramática ({A,B},{0,1},R,A), em que R tem as três regras: A BB B 0B1 λ Dê todas as derivações das seguintes palavras: a) λ; b) 01; c) 0101; d) Que linguagem é gerada? 2. Seja a gramática G = ({A,B},{a,b},R,A) em que R é constituído pelas quatro regras: A aa B B bb λ Apresente um esquema de derivação que mostre como derivar qualquer palavra de L(G). Expresse o que é L(G) de forma bem concisa utilizando a notação introduzida na Seção Seja a gramática H = ({P,A,B},{a,b},R,P) em que R tem as regras: P AB A aa λ B bb λ Mostre que H gera a linguagem do Exercício anterior. 4. Construa gramáticas para as seguintes linguagens: a) {0}{0,1} {11}; b) {λ,0}{11} {λ,0}; c) {w {a,b} o número de as em w é par}; d) {a n b n n N}; e) {w {a,b} w = w R }; f) {w {a,b} w = w R e w não contém símbolos consecutivos idênticos}; g) {a n b n c n d n n N}.

20 20 Editora Thomson Introdução aos fundamentos da computação 5. Para as gramáticas dos itens (d) e (e) do exercício anterior, determine o número de passos necessário para gerar uma palavra de tamanho n. 6. Considere as gramáticas desenvolvidas no Exercício 4. A partir delas, construa gramáticas que gerem: a) A concatenação das linguagens dos itens (c) e (d); b) A união das linguagens dos itens (d) e (e); c) O fecho de Kleene da linguagem do item (f). 7. Diga que linguagens são geradas pelas gramáticas: a) G 1 = ({A},{0,1},R 1,A), sendo R 1 constituído de: A 0A A0 1 b) G 2 = ({B},{0,1},R 2,B), sendo R 2 constituído de: B 0B00 1 c) G 3 = ({S,A,B},{0,1},R 3,S), sendo R 3 constituído de: S AA B A 0A A0 1 B 0B Identifique as linguagens geradas pelas gramáticas: a) G 1 = ({P,X},{a,b},R 1,P). R 1 : P ax bp λ X ap b) G 2 = ({P,A},{a,b},R 2,P). R 2 : P apa A A ba b c) G 3 = ({A,B},{0,1},R 3,A). R 3 : A 0A B B B1 01 d) G 4 = ({P,X},{a,b},R 4,P). R 4 : P ap Xb λ X ap e) G 5 = ({P,X},{a,b},R 5,P). R 5 : P aap Xb λ X ap f) G 6 = ({A,B},{0,1},R 6,A). R 6 : A 0A0 B1 B 1B1 λ

21 Newton José Vieira Capítulo 1: Conceitos preliminares 21 g) G 7 = ({P},{0,1},R 7,P). R 7 : P 0P1 1P0 λ h) G 8 = ({A,X},{0,1},R 8,A). R 8 : A XA X X 0X1 λ i) G 9 = ({X,B},{a,b,c},R 9,X). R 9 : X abx abc Ba ab Bb bb Bc bcc j) G 10 = ({X,A,#},{a,b},R 10,X). R 10 : X aax # Aa aa Ab ba A# b#a # λ 1.4 Problemas de Decisão Ao longo deste texto serão tratados vários problemas cujas respostas são do tipo sim ou não. Nesta seção, é apresentada uma introdução genérica e informal a esse tipo de problema. Um problema de decisão (PD) é uma questão que faz referência a um conjunto finito de parâmetros e que, para valores específicos dos parâmetros, tem como resposta sim ou não. Seguem alguns exemplos. Exemplo 17 São exemplos de problemas de decisão: a) determinar se o número é um número primo; b) determinar se um número natural n é um número primo; c) determinar se existe um ciclo em um grafo G; d) determinar se uma palavra w é gerada por uma gramática G. O primeiro PD não tem parâmetros, o segundo e o terceiro possuem um parâmetro cada um, um número natural n e um grafo G, e o quarto tem dois parâmetros, uma palavra w e uma gramática G. A questão referente a um PD pode ser vista como representando um conjunto de questões, uma para cada combinação possível dos valores que os parâmetros podem assumir. Cada questão obtida dando aos parâmetros valores específicos, ou seja, instanciando-se os parâmetros, é dita ser uma instância do PD. Em particular, um PD sem parâmetros contém uma única instância.

22 22 Editora Thomson Introdução aos fundamentos da computação Exemplo 18 O PD (b) do Exemplo 17, determinar se um número natural n é um número primo, é constituído pelo seguinte conjunto infinito de questões: determinar se 0 é um número primo; determinar se 1 é um número primo; determinar se 2 é um número primo; e assim por diante. O PD determinar se é um número primo é constituído por uma única instância, a qual é instância também do PD determinar se um número natural n é um número primo. Para cada instância de um PD, existe uma resposta correta, sim ou não. Uma solução para um PD, denominada procedimento de decisão, é um algoritmo que, para qualquer instância do PD, determina a resposta correta. Informalmente, um algoritmo é uma sequência finita de instruções, cada uma executável por uma máquina em tempo finito, e cada uma produzindo o mesmo resultado para os mesmos dados. Adiante, será apresentada uma proposta de formalização do conceito de algoritmo mediante a chamada hipótese de Church-Turing. Até lá, fica-se com esta definição informal. Um PD que tem solução é dito ser decidível, e um PD que não tem solução, indecidível. Pelo exposto anteriormente, se um PD tem um conjunto finito de instâncias, então ele é decidível: pode-se construir um algoritmo que simplesmente consulte uma tabela de respostas pré-computadas. Assim, o estudo de PDs torna-se mais interessante para PDs com uma infinidade de instâncias. Observe que uma solução para o PD mais geral determinar se um número natural n é um número primo serve também para solucionar o PD mais restrito determinar se é um número primo. Mas, mesmo que não existisse solução para o primeiro PD, haveria solução para o segundo! Mesmo que não se soubesse a resposta! Para ressaltar esse ponto, observe a famosa conjectura de Fermat, que só foi provada recentemente, 350 anos após enunciada: Para qualquer número natural n 3 não existem números naturais a, b e c tais que a n +b n = c n. O problema de determinar se esta conjectura está correta é um PD que tem solução, pois é um PD sem parâmetros e, portanto, constituído por uma única instância. Mesmo na época em que a conjectura não tinha sido provada, o PD respectivo já tinha solução, embora desconhecida... Considere os dois algoritmos: retorne sim e retorne não ; um deles é a solução. Um PD obtido de outro, P, restringindo-se o conjunto de valores possíveis de um ou mais parâmetros de P, é dito ser uma restrição de P. Assim, por exemplo o PD determinar se é um número primo é uma restrição de determinar se um número natural n é um número primo. É evidente que, se um PD tem solução, então suas restrições também têm. No entanto, pode acontecer de uma ou mais restrições de

23 Newton José Vieira Capítulo 1: Conceitos preliminares 23 um PD terem soluções e o PD não ter. Por exemplo, a restrição do PD determinar se uma palavra w é gerada por uma gramática G : determinar se uma palavra w é gerada por G 0, em que G 0 é uma gramática na qual o lado esquerdo de cada regra é constituído por uma variável, 9 tem solução, mas, como será mostrado à frente, o PD original não tem solução. Existe uma relação estreita entre problemas de decisão e linguagens. Em primeiro lugar, uma solução de um PD, sendo um algoritmo, deve poder ser expressa em alguma linguagem. Esta, tipicamente é uma linguagem de programação, mas, em princípio, pode ser qualquer linguagem projetada para se expressar algoritmos para uma certa noção específica de algoritmo. Por outro lado, há um outro tipo de linguagem que terá sua importância quando for abordado o problema da decidibilidade. Para que as instâncias de um problema sejam submetidas a um algoritmo elas devem ser expressas por meio de palavras em uma linguagem. Sendo Σ o alfabeto de tal linguagem, ela seria então L P = {w Σ w representa uma instância de P} (nada impede que uma mesma instância seja representada por várias palavras da linguagem). Para cada palavra de L P, a resposta pode ser sim ou não para a instância respectiva. Uma outra linguagem, subconjunto de L P, também importante, como se verá depois, é aquela constituída apenas das palavras que representem instâncias para as quais a resposta é sim : L s P = {w L P a resposta para a instância representada por w é sim }. Note que a resposta para a instância representada por w é sim se e somente se w L s P. Logo determinar se o PD P tem solução é equivalente a determinar se o seguinte PD tem solução: dada uma palavra w L P, determinar se w L s P. Segue um exemplo. Exemplo 19 Seja PP o problema de determinar se n N é primo. Representando-se cada instância por uma palavra w {0,1} +, de forma que w seja uma das representações em binário de um número natural, aqui referido por η(w), tem-se: L PP = {0,1} + ; L s PP = {w {0,1}+ η(w) é primo}. Com isto, n é primo se e somente se w L s PP, em que w é tal que η(w) = n. Exercício 1. Sejam os PDs: a) determinar se um número natural n, para 1 n 200, é um número primo; b) dada uma equação do segundo grau de coeficientes a, b e c, determinar se suas raízes são ambas reais, se cada um dos coeficientes é um númeronatural entre 10 e 20 (exclusive); 9 Esse tipo de gramática será definido na Seção?? como uma gramática livre do contexto.

24 24 Editora Thomson Introdução aos fundamentos da computação c) dada uma equação do segundo grau de coeficientes a, b e c, determinar se suas raízes são ambas reais, se seus coeficientes podem ser números reais quaisquer; d) dada uma fórmula da lógica de predicados, determinar se ela é válida; e) dados dois conjuntos finitos, determinar se eles são disjuntos; f) determinar se uma árvore A tem altura menor ou igual a n; g) determinar se uma palavra w é palíndromo, se w {0,1}. Dizer quantos parâmetros e quantas instâncias tem cada um. 2. Dentre os PDs a seguir, quais são decidíveis? a) Determinar se existe vida extraterrestre. b) Determinar se para todo número natural n existe um par de números primos gêmeos maior que n. (m e n são primos gêmeos sse são ambos primos e m n = 2. Atualmente não se sabe se o conjunto dos primos gêmeos é finito ou não.) c) Dado um número natural n, determinar se existe um par de números primos gêmeos maior que n. (Primos gêmeos são como definidos na questão anterior.) d) Dado um conjunto finito de números naturais, determinar se ele contém algum número primo. e) Dado um programa em C (sem entrada) que tenha no máximo 1GB, determinar se ele para. f) dada uma equação do segundo grau de coeficientes a, b e c, determinar se suas raízes são ambas reais, se cada um dos coeficientes é um númeronatural entre 10 e 20 (exclusive); g) dada uma equação do segundo grau de coeficientes a, b e c, determinar se suas raízes são ambas reais, se seus coeficientes podem ser números reais quaisquer; h) Dados dois conjuntos finitos, determinar se eles são disjuntos. 3. Diz-se que um PD P é redutível a um PD Q, se existe um algoritmo R que, recebendo x como entrada, produz um resultado y tal que a resposta a P para a entrada x é idêntica ou complementar 10 à resposta a Q para a entrada y, qualquer que seja a entrada x. Diz-se, com isso, que o algoritmo R pode ser usado para reduzir o problema P ao problema Q. Seja D um PD decidível e I um PD indecidível. O que se pode dizer de um PD X, com relação à sua decidibilidade, se: a) D é redutível a X? b) X é redutível a D? c) I é redutível a X? 10 A resposta complementar a sim é não, e a não é sim.

25 Newton José Vieira Capítulo 1: Conceitos preliminares 25 d) X é redutível a I? 4. Considere o problema de redução de um problema de decisão a outro, como descrito no exercício anterior. a) Dê um exemplo de redução de um problema decidível a um problema indecidível. b) Explique porque um problema indecidível não pode ser reduzido a um problema decidível. 1.5 Exercícios adicionais 1. Seja um alfabeto qualquer Σ. Prove que Σ é enumerável. Prove que P(Σ ) não é enumerável. Ou seja, qualquer linguagem é enumerável, mas o conjunto de todas as linguagens não! Consequência: como o conjunto dos compiladores é enumerável, existem linguagens para as quais não há compiladores. 2. Faça uma definição recursiva da função v : {0,1} N tal que v(w) é o número natural representado por w na base 2. Por exemplo, v(01) = 1, v(101) = 5, v(0010) = 2 etc. 3. Seja o alfabeto Σ = {a,(,),+, }. Segue uma definição recursiva de uma linguagem E, de expressões aritméticas: a) a E; b) se x,y E então (x+y) E e (x y) E; c) só pertencem a E as palavras especificadas por (a) e (b). Prove que nenhuma palavra de E contém a subpalavra )(. 4. Seja a seguinte definição recursiva da linguagem L sobre o alfabeto {0, 1}: a) λ L; b) se x L, então 0x L e x1 L; c) nada mais pertence a L. Que linguagem é L? Prove sua resposta. 5. Considere a linguagem L = {ab} {ba}. a) Faça uma definição recursiva de L. b) Construa uma gramática que gere L. c) Em quantos passos é derivada uma palavra de n símbolos na gramática construída? 6. Faça definições recursivas das seguintes linguagens: a) {w {0,1} w é par}; b) {w {0,1} w é palíndromo};

26 26 Editora Thomson Introdução aos fundamentos da computação c) {w {0,1} w contém 00}; d) {w {0,1} w não contém 00}; e) {w {0,1} w o número de 0s em w é igual ao de 1s}; f) {0 n2 n N}. 7. Sejam Σ = {0,1}, L 1 = Σ{0}Σ e L 2 = Σ {0}Σ {0}Σ. Para cada linguagem a seguir, escreva uma propriedade necessária e suficiente para que uma palavra w Σ pertença à linguagem. Não é preciso dizer que ela é constituída apenas de 0s e 1s. a) L 2. b) L 1 L 2. c) L 2 L 1. d) L 1 (ΣΣ). 8. Expresse as linguagens a seguir utilizando operações sobre conjuntos finitos de palavras de {0,1}, se for possível. Se não for, faça uma descrição o mais formal que conseguir. a) O conjunto das palavras que têm de 5 a 10 símbolos. b) O conjunto das palavras que não tenham 00 como subpalavra, nem 11. Exemplos: λ, 0, 01, 10, 101. c) O conjunto das palavras em que as posições ímpares só têm 1s. Exemplos: λ, 101, 111, d) O conjunto das palavras que contêm um ou dois 1s. e) O conjunto das palavras de tamanho múltiplo de 3 terminadas em 11. f) O conjunto das palavras de tamanho par que não contêm 11. g) O conjunto das palavras em que as posições pares contêm apenas 0s e as ímpares apenas 1s. Exemplos: λ, 1, 10, 101 etc. h) O conjunto das palavras em que entre cada par de 0s o número de 1s consecutivos é par. Exemplos: λ, 10, 00, 001, i) O conjunto das palavras de tamanho ímpar que têm um 1 no meio. 9. Sejam L = {w {0,1} w não termina com 1 nem contém 11} e F = {0,10}. Mostre que L = F. 10. Seja L = {w {0,1} w não contém 11}. Mostre que não existe X {0,1} tal que L = X. 11. O conjunto das palavras sobre um alfabeto Σ, Σ, pode ser definido recursivamente a partir da operação de justapor um símbolo à direita assim: a) λ Σ ; b) se x Σ e a Σ, então xa Σ.

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano Módulo de Equações do Segundo Grau Equações do Segundo Grau: Resultados Básicos. Nono Ano Equações do o grau: Resultados Básicos. 1 Exercícios Introdutórios Exercício 1. A equação ax + bx + c = 0, com

Leia mais

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões Prof. Carlos A. Heuser Dezembro de 2009 Duração: 2 horas Prova com consulta Questão 1 (Construção de modelo ER) Deseja-se projetar a base de

Leia mais

Emparelhamentos Bilineares Sobre Curvas

Emparelhamentos Bilineares Sobre Curvas Emparelhamentos Bilineares Sobre Curvas Eĺıpticas Leandro Aparecido Sangalli sangalli@dca.fee.unicamp.br Universidade Estadual de Campinas - UNICAMP FEEC - Faculdade de Engenharia Elétrica e de Computação

Leia mais

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios O Método Intuitivo de elaboração de circuitos: As técnicas de elaboração de circuitos eletropneumáticos fazem parte

Leia mais

Unidade 1: O Computador

Unidade 1: O Computador Unidade : O Computador.3 Arquitetura básica de um computador O computador é uma máquina que processa informações. É formado por um conjunto de componentes físicos (dispositivos mecânicos, magnéticos, elétricos

Leia mais

I. Conjunto Elemento Pertinência

I. Conjunto Elemento Pertinência TEORI DOS CONJUNTOS I. Conjunto Elemento Pertinência Conjunto, elemento e pertinência são três noções aceitas sem definição, ou seja, são noções primitivas. idéia de conjunto é praticamente a mesma que

Leia mais

OPERAÇÕES COM FRAÇÕES

OPERAÇÕES COM FRAÇÕES OPERAÇÕES COM FRAÇÕES Adição A soma ou adição de frações requer que todas as frações envolvidas possuam o mesmo denominador. Se inicialmente todas as frações já possuírem um denominador comum, basta que

Leia mais

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc. PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO Esta aula tem por base o Capítulo 2 do livro de Taha (2008): Introdução O modelo de PL de duas variáveis Propriedades

Leia mais

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES 2014 1 a QUESTÃO Valor: 1,00 a) (0,30) Defina gramáticas livre de contexto. b) (0,30) Crie uma gramática

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados

Leia mais

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo: Aula 5 5. Funções O conceito de função será o principal assunto tratado neste curso. Neste capítulo daremos algumas definições elementares, e consideraremos algumas das funções mais usadas na prática,

Leia mais

2 Segmentação de imagens e Componentes conexas

2 Segmentação de imagens e Componentes conexas Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Informática (DAINF) Algoritmos II Professor: Alex Kutzke (alexk@dainf.ct.utfpr.edu.br) Especificação do Primeiro Trabalho Prático

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

Leia mais

QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES

QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE SUGESTÕES DE RESOLUÇÕES QUESTÕES PARA A 3ª SÉRIE ENSINO MÉDIO MATEMÁTICA 2º BIMESTE QUESTÃO 01 SUGESTÕES DE RESOLUÇÕES Descritor 11 Resolver problema envolvendo o cálculo de perímetro de figuras planas. Os itens referentes a

Leia mais

Fundamentos de Programação. Diagrama de blocos

Fundamentos de Programação. Diagrama de blocos Fundamentos de Programação Diagrama de blocos Prof. M.Sc.: João Paulo Q. dos Santos E-mail: joao.queiroz@ifrn.edu.br Página: http://docente.ifrn.edu.br/joaoqueiroz/ O processo de desenvolvimento (programação),

Leia mais

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas. Definição Uma matriz do tipo m n (lê-se m por n), com m e n, sendo m e n números inteiros, é uma tabela formada por m n elementos dispostos em m linhas e n colunas. Estes elementos podem estar entre parênteses

Leia mais

Exercício. Exercício

Exercício. Exercício Exercício Exercício Aula Prática Utilizar o banco de dados ACCESS para passar o MER dos cenários apresentados anteriormente para tabelas. 1 Exercício oções básicas: ACCESS 2003 2 1 Exercício ISERIDO UMA

Leia mais

Função. Adição e subtração de arcos Duplicação de arcos

Função. Adição e subtração de arcos Duplicação de arcos Função Trigonométrica II Adição e subtração de arcos Duplicação de arcos Resumo das Principais Relações I sen cos II tg sen cos III cotg tg IV sec cos V csc sen VI sec tg VII csc cotg cos sen Arcos e subtração

Leia mais

Optimização e Algoritmos (2004/2005)

Optimização e Algoritmos (2004/2005) Optimização e Algoritmos (2004/2005) Instituto Superior Técnico Engenharia Electrotécnica e de Computadores Série de Problemas 3 Regras de Armijo e Wolfe, Introdução às funções convexas Problema 1.[Regras

Leia mais

Aula 11: Desvios e Laços

Aula 11: Desvios e Laços Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam

Leia mais

M =C J, fórmula do montante

M =C J, fórmula do montante 1 Ciências Contábeis 8ª. Fase Profa. Dra. Cristiane Fernandes Matemática Financeira 1º Sem/2009 Unidade I Fundamentos A Matemática Financeira visa estudar o valor do dinheiro no tempo, nas aplicações e

Leia mais

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR Assuntos: Produtos Notáveis; Equações; Inequações; Função; Função Afim; Paridade;

Leia mais

Seu pé direito nas melhores Faculdades

Seu pé direito nas melhores Faculdades 10 Insper 01/11/009 Seu pé direito nas melhores Faculdades análise quantitativa 40. No campeonato brasileiro de futebol, cada equipe realiza 38 jogos, recebendo, em cada partida, 3 pontos em caso de vitória,

Leia mais

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas

Leia mais

Matrizes de Transferência de Forças e Deslocamentos para Seções Intermediárias de Elementos de Barra

Matrizes de Transferência de Forças e Deslocamentos para Seções Intermediárias de Elementos de Barra Matrizes de Transferência de Forças e Deslocamentos para Seções Intermediárias de Elementos de Barra Walter Francisco HurtaresOrrala 1 Sílvio de Souza Lima 2 Resumo A determinação automatizada de diagramas

Leia mais

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial Álgebra Linear Aplicada à Compressão de Imagens Universidade de Lisboa Instituto Superior Técnico Uma Breve Introdução Mestrado em Engenharia Aeroespacial Marília Matos Nº 80889 2014/2015 - Professor Paulo

Leia mais

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Universidade Federal de Goiás Campus Catalão Departamento de Matemática Universidade Federal de Goiás Campus Catalão Departamento de Matemática Disciplina: Álgebra Linear Professor: André Luiz Galdino Aluno(a): 4 a Lista de Exercícios 1. Podemos entender transformações lineares

Leia mais

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está

Leia mais

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel EGEA ESAPL - IPVC Resolução de Problemas de Programação Linear, com recurso ao Excel Os Suplementos do Excel Em primeiro lugar deverá certificar-se que tem o Excel preparado para resolver problemas de

Leia mais

Aplicações Diferentes Para Números Complexos

Aplicações Diferentes Para Números Complexos Material by: Caio Guimarães (Equipe Rumoaoita.com) Aplicações Diferentes Para Números Complexos Capítulo II Aplicação 2: Complexos na Geometria Na rápida revisão do capítulo I desse artigo mencionamos

Leia mais

Entropia, Entropia Relativa

Entropia, Entropia Relativa Entropia, Entropia Relativa e Informação Mútua Miguel Barão (mjsb@di.uevora.pt) Departamento de Informática Universidade de Évora 13 de Março de 2003 1 Introdução Suponhamos que uma fonte gera símbolos

Leia mais

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006. ISS Eletrônico Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE Caro contribuinte. A transmissão de arquivos é uma facilidade fornecida pelo sistema de ISS Eletrônico

Leia mais

Matemática - Módulo 1

Matemática - Módulo 1 1. Considerações iniciais Matemática - Módulo 1 TEORIA DOS CONJUNTOS O capítulo que se inicia trata de um assunto que, via-de-regra, é abordado em um plano secundário dentro dos temas que norteiam o ensino

Leia mais

15.053 26 de fevereiro de 2002

15.053 26 de fevereiro de 2002 15.053 26 de fevereiro de 2002 Análise de Sensibilidade apresentado como Perguntas Freqüentes Pontos ilustrados em um exemplo contínuo de fabricação de garrafas. Se o tempo permitir, também consideraremos

Leia mais

O Cálculo λ sem Tipos

O Cálculo λ sem Tipos Capítulo 2 O Cálculo λ sem Tipos 21 Síntaxe e Redução Por volta de 1930 o cálculo lambda sem tipos foi introduzido como uma fundação para a lógica e a matemática Embora este objectivo não tenha sido cumprido

Leia mais

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA Nome: Turma: Data / / Prof: Walnice Brandão Machado Equações de primeiro grau Introdução Equação é toda sentença matemática aberta que exprime

Leia mais

Uso de escalas logaritmicas e linearização

Uso de escalas logaritmicas e linearização Uso de escalas logaritmicas e linearização Notas: Rodrigo Ramos 1 o. sem. 2015 Versão 1.0 Obs: Esse é um texto de matemática, você deve acompanhá-lo com atenção, com lápis e papel, e ir fazendo as coisas

Leia mais

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS Dois ou mais eventos são mutuamente exclusivos, ou disjuntos, se os mesmos não podem ocorrer simultaneamente. Isto é, a ocorrência de um

Leia mais

PROGRAMAÇÃO DE COMPUTADORES

PROGRAMAÇÃO DE COMPUTADORES PROGRAMAÇÃO DE COMPUTADORES COMANDOS E FORMATOS DE ENTRADA E SAÍDA 1 COMANDOS E FORMATOS DE ENTRADA E SAÍDA Os comandos de entrada e saída, na sua forma mais simplificada, possuem a seguinte estrutura:

Leia mais

Usando potências de 10

Usando potências de 10 Usando potências de 10 A UUL AL A Nesta aula, vamos ver que todo número positivo pode ser escrito como uma potência de base 10. Por exemplo, vamos aprender que o número 15 pode ser escrito como 10 1,176.

Leia mais

1 Circuitos Pneumáticos

1 Circuitos Pneumáticos 1 Circuitos Pneumáticos Os circuitos pneumáticos são divididos em várias partes distintas e, em cada uma destas divisões, elementos pneumáticos específicos estão posicionados. Estes elementos estão agrupados

Leia mais

Figura 4.1: Diagrama de representação de uma função de 2 variáveis

Figura 4.1: Diagrama de representação de uma função de 2 variáveis 1 4.1 Funções de 2 Variáveis Em Cálculo I trabalhamos com funções de uma variável y = f(x). Agora trabalharemos com funções de várias variáveis. Estas funções aparecem naturalmente na natureza, na economia

Leia mais

Programação Linear - Parte 4

Programação Linear - Parte 4 Mestrado em Modelagem e Otimização - CAC/UFG Programação Linear - Parte 4 Profs. Thiago Alves de Queiroz Muris Lage Júnior 1/2014 Thiago Queiroz (DM) Parte 4 1/2014 1 / 18 Solução Inicial O método simplex

Leia mais

Se inicialmente, o tanque estava com 100 litros, pode-se afirmar que ao final do dia o mesmo conterá.

Se inicialmente, o tanque estava com 100 litros, pode-se afirmar que ao final do dia o mesmo conterá. ANÁLISE GRÁFICA QUANDO y. CORRESPONDE A ÁREA DA FIGURA Resposta: Sempre quando o eio y corresponde a uma taa de variação, então a área compreendida entre a curva e o eio do será o produto y. Isto é y =

Leia mais

DISTRIBUIÇÕES ESPECIAIS DE PROBABILIDADE DISCRETAS

DISTRIBUIÇÕES ESPECIAIS DE PROBABILIDADE DISCRETAS VARIÁVEIS ALEATÓRIAS E DISTRIBUIÇÕES DE PROBABILIDADES 1 1. VARIÁVEIS ALEATÓRIAS Muitas situações cotidianas podem ser usadas como experimento que dão resultados correspondentes a algum valor, e tais situações

Leia mais

Registro de Retenções Tributárias e Pagamentos

Registro de Retenções Tributárias e Pagamentos SISTEMA DE GESTÃO DE PRESTAÇÃO DE CONTAS (SiGPC) CONTAS ONLINE Registro de Retenções Tributárias e Pagamentos Atualização: 20/12/2012 A necessidade de registrar despesas em que há retenção tributária é

Leia mais

Unidade 3 Função Afim

Unidade 3 Função Afim Unidade 3 Função Afim Definição Gráfico da Função Afim Tipos Especiais de Função Afim Valor e zero da Função Afim Gráfico definidos por uma ou mais sentenças Definição C ( x) = 10. x + Custo fixo 200 Custo

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 26 http://www.ic.uff.br/~bianca/engsoft2/ Aula 26-21/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

Leia mais

Exercícios e questões de Álgebra Linear

Exercícios e questões de Álgebra Linear CEFET/MG Exercícios e questões de Álgebra Linear Versão 1.2 Prof. J. G. Peixoto de Faria Departamento de Física e Matemática 25 de outubro de 2012 Digitado em L A TEX (estilo RevTEX). 2 I. À GUISA DE NOTAÇÃO

Leia mais

OBSERVAÇÕES: EXERCÍCIOS

OBSERVAÇÕES: EXERCÍCIOS OBSERVAÇÕES: 1. Esta lista de exercícios poderá ser resolvida individualmente ou em grupos de 2 pessoas. 2. A lista possui 25 exercícios, destes você deve responder os 5 primeiros exercícios e os outros

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Lista de Exercícios n o 2 Revisão de Autômatos 1. Fazer os seguintes exercícios do

Leia mais

MODELO SUGERIDO PARA PROJETO DE PESQUISA

MODELO SUGERIDO PARA PROJETO DE PESQUISA MODELO SUGERIDO PARA PROJETO DE PESQUISA MODELO PARA ELABORAÇÃO DE PROJETO DE PESQUISA (Hospital Regional do Mato Grosso do Sul- HRMS) Campo Grande MS MÊS /ANO TÍTULO/SUBTÍTULO DO PROJETO NOME DO (s) ALUNO

Leia mais

Introdução à orientação a objetos

Introdução à orientação a objetos Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos

Leia mais

Módulo de Princípios Básicos de Contagem. Segundo ano

Módulo de Princípios Básicos de Contagem. Segundo ano Módulo de Princípios Básicos de Contagem Combinação Segundo ano Combinação 1 Exercícios Introdutórios Exercício 1. Numa sala há 6 pessoas e cada uma cumprimenta todas as outras pessoas com um único aperto

Leia mais

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido Manual de Instalação do Gold Pedido 1 Visão Geral Programa completo para enviar pedidos e ficha cadastral de clientes pela internet sem usar fax e interurbano. Reduz a conta telefônica e tempo. Importa

Leia mais

Em linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer.

Em linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer. MATEMÁTICA BÁSICA 5 EXPRESSÕES ALGÉBRICAS - EQUAÇÕES A expressão numérica é aquela que apresenta uma sequência de operações e de números. Também já sabemos que as letras são usadas em Matemática para representar

Leia mais

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes Equações básicas Uma análise de qualquer problema em Mecânica dos Fluidos, necessariamente se inicia, quer diretamente ou indiretamente, com a definição das leis básicas que governam o movimento do fluido.

Leia mais

Conteúdo programático por disciplina Matemática 6 o ano

Conteúdo programático por disciplina Matemática 6 o ano 60 Conteúdo programático por disciplina Matemática 6 o ano Caderno 1 UNIDADE 1 Significados das operações (adição e subtração) Capítulo 1 Números naturais O uso dos números naturais Seqüência dos números

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 1- Visão Geral de Testes de Software Aula 2 Estrutura para o Teste de Software SUMÁRIO 1. Introdução... 3 2. Vertentes

Leia mais

Matemática Discreta - 08

Matemática Discreta - 08 Universidade Federal do Vale do São Francisco urso de Engenharia da omputação Matemática Discreta - 08 Prof. Jorge avalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas Informática II Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II) Por: Artur Sousa / Jorge Loureiro Conceitos de entidade e atributo Tipos

Leia mais

EXAME DE MACS 2º FASE 2014/2015 = 193

EXAME DE MACS 2º FASE 2014/2015 = 193 EXAME DE MACS 2º FASE 2014/2015 1. Divisor Padrão: 00+560+80+240 200 = 190 = 19 200 20 Filiais A B C D Quota Padrão 1,088 58,01 86,010 24,870 L 1 58 86 24 L(L + 1) 1,496 58,498 86,499 24,495 Quota Padrão

Leia mais

Aula 01 TEOREMAS DA ANÁLISE DE CIRCUITOS. Aula 1_Teoremas da Análise de Circuitos.doc. Página 1 de 8

Aula 01 TEOREMAS DA ANÁLISE DE CIRCUITOS. Aula 1_Teoremas da Análise de Circuitos.doc. Página 1 de 8 ESCOLA TÉCNICA ESTADUAL ZONA SUL CURSO TÉCNICO EM ELETRÔNICA II. CIRCUITOS ELÉTRICOS Aula 0 TEOREMAS DA ANÁLISE DE CIRCUITOS Prof. Marcio Leite Página de 8 0 TEOREMA DA ANÁLISE DE CIRCUITOS.0 Introdução

Leia mais

Técnicas de Contagem I II III IV V VI

Técnicas de Contagem I II III IV V VI Técnicas de Contagem Exemplo Para a Copa do Mundo 24 países são divididos em seis grupos, com 4 países cada um. Supondo que a escolha do grupo de cada país é feita ao acaso, calcular a probabilidade de

Leia mais

Sistemas Numéricos. Tiago Alves de Oliveira

Sistemas Numéricos. Tiago Alves de Oliveira Sistemas Numéricos Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Operações aritméticas binária e hexadecimal Operações lógicas binárias e decimais Representação Interna de

Leia mais

Disciplina: Álgebra Linear - Engenharias ], C = Basta adicionar elemento a elemento de A e B que ocupam a mesma posição na matriz.

Disciplina: Álgebra Linear - Engenharias ], C = Basta adicionar elemento a elemento de A e B que ocupam a mesma posição na matriz. Universidade Federal de Goiás Campus Catalão Departamento de Matemática Disciplina: Álgebra Linear - Engenharias Professor: André Luiz Galdino Gabarito da 1 a Lista de Exercícios 1. Sejam Encontre: [ 1

Leia mais

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto 25 de novembro de 2011 Definição 1 Uma Regra (ou produção) é um elemento do conjunto V (V Σ). Sendo que V é um conjunto finito de elementos chamados de variáveis e Σ um conjunto

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Um conjunto estruturado

Leia mais

Manual Remessa Bancária

Manual Remessa Bancária Manual Remessa Bancária SUPERANDO DESAFIOS Identificação: 12.06a Autora: Laila M G Gechele Doc. Vrs. 01 Aprovado em: Revisores: Nota de copyright Copyright 2012 Teorema Informática, Guarapuava. Todos os

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro O volume de dados está crescendo sem parar Gigabytes, Petabytes, etc. Dificuldade na descoberta do conhecimento Dados disponíveis x Análise dos Dados Dados disponíveis Analisar e compreender os dados 2

Leia mais

COMENTÁRIO DA PROVA DO BANCO DO BRASIL

COMENTÁRIO DA PROVA DO BANCO DO BRASIL COMENTÁRIO DA PROVA DO BANCO DO BRASIL Prezados concurseiros, segue abaixo os comentários das questões de matemática propostas pela CESPE no último concurso para o cargo de escriturário do Banco do Brasil

Leia mais

MATÉRIA TÉCNICA APTTA BRASIL SENSORES MAGNETO-RESTRITIVOS UM CRUZAMENTO DE DOIS TIPOS DE SENSORES CONHECIDOS.

MATÉRIA TÉCNICA APTTA BRASIL SENSORES MAGNETO-RESTRITIVOS UM CRUZAMENTO DE DOIS TIPOS DE SENSORES CONHECIDOS. MATÉRIA TÉCNICA APTTA BRASIL SENSORES MAGNETO-RESTRITIVOS UM CRUZAMENTO DE DOIS TIPOS DE SENSORES CONHECIDOS. Figura 1: Aqui uma vista dos sensores do eixo comando de válvulas de um NISSAN Máxima 2012.

Leia mais

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE Seqüências George Darmiton da Cunha Cavalcanti CIn - UFPE Introdução Uma seqüência é uma estrutura discreta usada para representar listas ordenadas. Definição 1 Uma seqüência é uma função de um subconjunto

Leia mais

Probabilidade. Luiz Carlos Terra

Probabilidade. Luiz Carlos Terra Luiz Carlos Terra Nesta aula, você conhecerá os conceitos básicos de probabilidade que é a base de toda inferência estatística, ou seja, a estimativa de parâmetros populacionais com base em dados amostrais.

Leia mais

Universidade Estadual de Campinas

Universidade Estadual de Campinas Universidade Estadual de Campinas Nathalia Cristina Ribeiro Ra: 105480 Universidade Estadual de Campinas Fernando Torres 2 Sumário. Introdução 4 Biografia de Leonardo Fibonacci 5 O que é uma seqüência?

Leia mais

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira Tipos de problemas de programação inteira (PI) Programação Inteira Pesquisa Operacional I Flávio Fogliatto Puros - todas as variáveis de decisão são inteiras Mistos - algumas variáveis de decisão são inteiras

Leia mais

0.1 Introdução Conceitos básicos

0.1 Introdução Conceitos básicos Laboratório de Eletricidade S.J.Troise Exp. 0 - Laboratório de eletricidade 0.1 Introdução Conceitos básicos O modelo aceito modernamente para o átomo apresenta o aspecto de uma esfera central chamada

Leia mais

Aula de Exercícios - Teorema de Bayes

Aula de Exercícios - Teorema de Bayes Aula de Exercícios - Teorema de Bayes Organização: Rafael Tovar Digitação: Guilherme Ludwig Primeiro Exemplo - Estagiários Três pessoas serão selecionadas aleatóriamente de um grupo de dez estagiários

Leia mais

AULA 07 Distribuições Discretas de Probabilidade

AULA 07 Distribuições Discretas de Probabilidade 1 AULA 07 Distribuições Discretas de Probabilidade Ernesto F. L. Amaral 31 de agosto de 2010 Metodologia de Pesquisa (DCP 854B) Fonte: Triola, Mario F. 2008. Introdução à estatística. 10 ª ed. Rio de Janeiro:

Leia mais

MODELAGENS. Modelagem Estratégica

MODELAGENS. Modelagem Estratégica Material adicional: MODELAGENS livro Modelagem de Negócio... Modelagem Estratégica A modelagem estratégica destina-se à compreensão do cenário empresarial desde o entendimento da razão de ser da organização

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Agenda Análise e Técnicas de Algoritmos Jorge Figueiredo Conceitos básicos Classes de de Complexidade P NP Redução Problemas NPC NP-Completude Introdução Existem alguns problemas computacionais que são

Leia mais

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL BANCO DE DADOS GERENCIAL 1 AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS Um banco de dados é uma coleção de dados (ou informações) organizadas de forma lógica, e que

Leia mais

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS PRISMAS Os prismas são sólidos geométricos muito utilizados na construção civil e indústria. PRISMAS base Os poliedros representados a seguir são denominados prismas. face lateral base Nesses prismas,

Leia mais

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.) Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.) De acordo com o PMBok 5ª ed., o escopo é a soma dos produtos, serviços e resultados a serem fornecidos na forma de projeto. Sendo ele referindo-se a: Escopo

Leia mais

p. 2 Trechos de Material Didático (Apostila) e Conteúdo do Livro Texto, de autoria de Marcus Ramos, João José Neto e Ítalo Vega i <= 1

p. 2 Trechos de Material Didático (Apostila) e Conteúdo do Livro Texto, de autoria de Marcus Ramos, João José Neto e Ítalo Vega i <= 1 Observação: os trechos extraídos do livro apresentados a seguir já incluem as correções da errata (http://www.univasf.edu.br/~marcus.ramos/livro-lfa/errata.pdf). Para outras passagens não incluídas nesse

Leia mais

Aprendendo a trabalhar com frações parciais

Aprendendo a trabalhar com frações parciais Parte 1: Aprendendo a trabalhar com frações parciais Para trabalhar com frações parciais em Matlab, você tem que conhecer o funcionamento das seguintes funções: roots, poly e residue. Os pontos abaixo

Leia mais

Adição de probabilidades. O número de elementos da união dos conjuntos A e B n(aub) = n(a B) Dividindo os dois membros por n(e):

Adição de probabilidades. O número de elementos da união dos conjuntos A e B n(aub) = n(a B) Dividindo os dois membros por n(e): Adição de probabilidades O número de elementos da união dos conjuntos A e B n(aub) = n(a B) Dividindo os dois membros por n(e): Dois eventos A e B são ditos mutuamente exclusivos se, e somente se, A B

Leia mais

Matemática. Resolução das atividades complementares. M3 Conjuntos

Matemática. Resolução das atividades complementares. M3 Conjuntos Resolução das atividades complementares Matemática M Conjuntos p. (UEMG) Numa escola infantil foram entrevistadas 8 crianças, com faia etária entre e anos, sobre dois filmes, e. Verificou-se que 4 delas

Leia mais

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves Tópicos Apresentação Entidade, Atributo e Relacionamento Cardinalidade Representação simbólica Generalizações / Especializações Agregações Apresentação O Modelo Entidade-Relacionamento tem o objetivo de

Leia mais

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002....

GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002.... GIL, Antonio Carlos. Como elaborar projetos de pesquisa. São Paulo, Editora Atlas, 2002.... 1 Como encaminhar uma Pesquisa? A pesquisa é um projeto racional e sistemático com objetivo de proporcionar respostas

Leia mais

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access CRIAÇÃO DE TABELAS NO ACCESS Criação de Tabelas no Access Sumário Conceitos / Autores chave... 3 1. Introdução... 4 2. Criação de um Banco de Dados... 4 3. Criação de Tabelas... 6 4. Vinculação de tabelas...

Leia mais

Exercícios de Aprofundamento Mat Polinômios e Matrizes

Exercícios de Aprofundamento Mat Polinômios e Matrizes . (Unicamp 05) Considere a matriz A A e A é invertível, então a) a e b. b) a e b 0. c) a 0 e b 0. d) a 0 e b. a 0 A, b onde a e b são números reais. Se. (Espcex (Aman) 05) O polinômio q(x) x x deixa resto

Leia mais

Dureza Rockwell. No início do século XX houve muitos progressos. Nossa aula. Em que consiste o ensaio Rockwell. no campo da determinação da dureza.

Dureza Rockwell. No início do século XX houve muitos progressos. Nossa aula. Em que consiste o ensaio Rockwell. no campo da determinação da dureza. A UU L AL A Dureza Rockwell No início do século XX houve muitos progressos no campo da determinação da dureza. Introdução Em 1922, Rockwell desenvolveu um método de ensaio de dureza que utilizava um sistema

Leia mais

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos

Leia mais

Arquitecturas de Software Enunciado de Projecto 2007 2008

Arquitecturas de Software Enunciado de Projecto 2007 2008 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Enunciado de Projecto 2007 2008 1 Introdução Na primeira metade da década de 90 começaram a ser desenvolvidas as primeiras

Leia mais

Universidade Estadual de Campinas Departamento de Matemática. Teorema de Jacobson. Adriana Wagner(RA: 144768) Gustavo Terra Bastos(RA: 143800)

Universidade Estadual de Campinas Departamento de Matemática. Teorema de Jacobson. Adriana Wagner(RA: 144768) Gustavo Terra Bastos(RA: 143800) Universidade Estadual de Campinas Departamento de Matemática Teorema de Jacobson Adriana Wagner(RA: 144768) Gustavo Terra Bastos(RA: 143800) Campinas - SP 2013 1 Resumo Nesta monografia apresentamos a

Leia mais

Prática. Exercícios didáticos ( I)

Prática. Exercícios didáticos ( I) 1 Prática Exercício para início de conversa Localize na reta numérica abaixo os pontos P correspondentes aos segmentos de reta OP cujas medidas são os números reais representados por: Exercícios didáticos

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael É parte do software, e deve atender os requisitos do usuário Controla o hardware, incluindo periféricos de entrada e saída Usa um conjunto de comandos e regras:

Leia mais