Responda às questões abaixo: 1 a Questão: Indique todos casos de não determinismo do AFN acima

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

Download "Responda às questões abaixo: 1 a Questão: Indique todos casos de não determinismo do AFN acima"

Transcrição

1 Exercícios 04 CENTRO UNIVERSITÁRIO DE BRASÍLIA - UniCEUB O Autômato Finito Não Determinístico (AFN) abaixo reconhece sentenças da linguagem L, definida sobre o alfabeto Σ = {0, 1, onde as sentenças: possuem um número múltiplo de 3 bits 0 e a primeira primitiva é um bit 1, ou possuem um número múltiplo de 4 bits 0 e a primeira primitiva é um bit 1 ou possuem um número múltiplo de 3 bits 1 e a primeira primitiva é um bit 0 ou possuem um número ímpar de bits 1 e a primeira primitiva é um bit 0.

2 Responda às questões abaixo: 1 a Questão: Indique todos casos de não determinismo do AFN acima Exemplo: o AF, estando no estado q0, ao processar a primitiva 0 pode assumir mais de um estado alternativo a saber: q10 ou q14. Ou seja: q0 x 0 q10 ou q0 x 0 q14 Cite os demais casos de forma semelhante ao acima exemplificado. 2 a Questão: Julgue em V (verdadeiro) ou F (falso) [ ] A linguagem L possui infinitas sentenças [ ] Se w = , então w L [ ] A linguagem L possui finitas sentenças [ ] Se w = , então w L [ ] Se w = 01011, então w L [ ] Se w = 1110, então w L [ ] Se w = 1011, então w L [ ] Se w = 0111, então w L [ ] Se w = , então w L [ ] Se w = 111 então w L [ ] Se w = , então w L [ ] Se w = , então w L [ ] Se w = , então w L [ ] Se w = , então w L 3 a Questão: Codifique no programa JFLAP o AFN acima. Após a codificação do AFN, teste no JFLAP as seguintes sentenças: (1) (2) Para testar no JFLAP, utilize a opção INPUT Step by State... clicando no botão Step. 3.1) a sentença w = pertence à linguagem L? Quantos caminhos o AFN montou após o processamento? Quais os estados após o término do processamento? 3.2) a sentença w = pertence à linguagem L? Quantos caminhos o AFN montou após o processamento? Quais os estados após o término do processamento?

3 4 a Questão: Mostre os caminhos que o AFN contrói para as sentenças (1) (2) ? Exemplo: Veja os caminhos iniciais que o AFN monta para as sentença w = Complete este processamento e faça para a outra sentença.

4 Implementação de AFN/AFD em linguagem de programação Uma maneira de se implementar um AFN/AFD pode ser utilizando-se basicamente três estruturas de dados simples: Estrutura 1: fita de entrada da sentença. Estrutura 2: Lista de transições do AF: uma estrutura de lista encadeada onde cada elemento da lista contém um objeto que por sua vez armazena o estado atual da máquina (estado do AF), a primitiva que está sendo lida na fita e o novo estado da máquina. Ou seja, esta lista encadeada nada mais é do que o grafo contendo as transições da máquina AF. Figura 1 Exemplo de AFN e estrutura para a Lista de transições do AFN

5 Estrutura 3: Lista de processamento do AF: uma estrutura de lista encadeada onde cada elemento da lista armazena um estado decorrente do processamento e um ponteiro para apontar para o estado que o originou (estado pai ). Esta estrutura é criada durante o processo de processamento da sentença que está armazenada na fita de entrada. Para entender a Lista de processamento do AF, considere o AFN acima e a sequência de processamento que o mesmo efetua para validar a sentença w = 11100, apresentada abaixo: Figura 2 Processamento do AFN para a sentença w = O processamento acima pelo AF será registrado na Lista de processamento do AF da seguinte forma: Figura 3 Lista de processamento do AFN para a sentença w = 11100

6 Codificação em JAVA Em ANEXO I, encontra-se um código em Java para processamento de AF (AFN ou AFD). Observe que no código apresentado no ANEXO I, as principais estruturas de dados estão implementadas na forma de variável do tipo ArrayList. //---> Principais Estruturas de Dados para o AFN e seu processamento ArrayList mtransicoesafn = new ArrayList(); ArrayList mestadosfinaisdoafn = new ArrayList(); ArrayList mcaminhos = new ArrayList(); Uma vantagem de uso do tipo ArrayList em Java deve-se ao fato de que este tipo de variável já implementa os ponteiros para os objetos anteriores e posteriores, pois o ArrayList é gerenciado como se fosse um vetor e, por isso, só precisamos referenciar algum elemento do vetor através de seu índice. Por exemplo, observe a Lista de processamento do AFN na Figura 3. No código em Java do ANEXO I, esta lista é o ArrayList mcaminhos. Para exemplificar, Em mcaminhos(0) encontra-se um objeto que tem o estado q0 e o índice de nó pai igual a 1. Em mcaminhos(8) encontra-se um objeto que tem o estado q1 e o índice de nó pai igual a 4. objeto armazenado na Lista de processamento foi implementado na classe denominada CNoProc (classe nó de processamento ) que tem o campo mestadoproc e o campo mindicenopai. //========================================================= // Classe para o objeto-elemento "Nó de processamanto" da lista mcaminhos //========================================================= class CNoProc { String mestadoproc; int mindicenopai; CNoProc() { public void fsetestadoproc(string avalor) { mestadoproc = avalor; public void fsetindicenopai(int avalor) { mindicenopai = avalor; public String fgetestadoproc() { return mestadoproc; public int fgetindicenopai() { return mindicenopai;

7 Para exemplificar (ver Figura 3), Em mcaminhos(0).mestadoproc o valor é q0 Em mcaminhos(0).mindicenopai o valor é 1 Em mcaminhos(8).mestadoproc o valor é q1 Em mcaminhos(8).mindicenopai o valor é 4 Em mcaminhos(1).mestadoproc o valor é q0 Em mcaminhos(1).mindicenopai o valor é 1 Para implementar as transições de estado do AFN (ver Figura 1), foi criado no código o ArrayList mtransicoesafn que deve conter objetos da classe CTransicao que tem o campo mestado (que é o estado em que máquina AF se encontra), o campo mprimitiva (que for lida na fita contendo a sentença processada) e o campo mnovoestado. //=================================== // Classe para o objeto Transição //=================================== class CTransicao { String mestado; String mprimitiva; String mnovoestado; CTransicao() { public void fsetestado(string avalor) { mestado = avalor; public void fsetprmitiva(string avalor) { mprimitiva = avalor; public void fsetnovoestado(string avalor) { mnovoestado = avalor; public String fgetestado() { return mestado; public String fgetprimitiva() { return mprimitiva; public String fgetnovoestado() { return mnovoestado;

8 Por exemplo, o seguinte trecho de código que se encontra na função fdefinirtransicoesdoafn() armazena as transições q0 x 0 q0 e q0 x 1 q0: //--- vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("0"); vtransicao.fsetnovoestado("q0"); mtransicoesafn.add(vtransicao); //--- vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("1"); vtransicao.fsetnovoestado("q0"); mtransicoesafn.add(vtransicao);

9 ANEXO I import java.awt.*; import java.awt.event.actionlistener; import java.awt.event.actionevent; import java.util.arraylist; public class AFN01a extends Frame implements ActionListener { int mlargura = 500; FlowLayout mfl = new FlowLayout(FlowLayout.CENTER); Panel mpainel1; Panel mpainel2; Panel mpainel3; Panel mpainel4; Panel mpainel5; Panel mpainel6; Panel mpainel7; Label mlbsentenca; TextField msentenca; Button mbtexecutar; TextArea mtxtexecucao; TextArea mtxtcaminhos; Label mlbsql; Button mbtfim; //---> Principais Estruturas de dados para o AFN e seu processamento ArrayList mtransicoesafn = new ArrayList(); ArrayList mestadosfinaisdoafn = new ArrayList(); ArrayList mcaminhos = new ArrayList(); //---> Construtor da Classe AFN01a... AFN01a() { super("afn - Processamento de AFN"); //------> Desenhar "lay-out" da tela... mpainel1 = new Panel(); mpainel2 = new Panel(); mpainel3 = new Panel(); mpainel4 = new Panel(); mpainel5 = new Panel(); mpainel6 = new Panel(); mpainel7 = new Panel(); mlbsentenca = new Label("Digite abaixo a senetença desejada");

10 msentenca = new TextField(50); mbtexecutar = new Button("Executar"); mtxtexecucao = new TextArea("Execução"); mtxtcaminhos = new TextArea("Caminhos ao final do processamento"); mlbsql = new Label(">>> A sentença é aceita ou não pelo AF? <<<"); mbtfim = new Button("Fim"); //------> Disposição dos painéis... mpainel1.setlocation(0,0); mpainel1.setbackground(new Color(255,128,128)); mpainel1.setsize(mlargura,50); mpainel1.add(mlbsentenca); add(mpainel1); // mpainel2.setlocation(0,50); mpainel2.setbackground(new Color(255,255,255)); mpainel2.setsize(mlargura,50); mpainel2.add(msentenca); add(mpainel2); // mpainel3.setlocation(0,100); mpainel3.setbackground(new Color(255,128,128)); mpainel3.setsize(mlargura,50); mpainel3.add(mbtexecutar); add(mpainel3); mbtexecutar.addactionlistener(this); // mpainel4.setlocation(0,150); mpainel4.setbackground(new Color(0,255,0)); mpainel4.setsize(mlargura,150); mpainel4.add(mtxtexecucao); add(mpainel4); // mpainel5.setlocation(0,350); mpainel5.setbackground(new Color(255,0,0)); mpainel5.setsize(mlargura,150); mpainel5.add(mtxtcaminhos); add(mpainel5); // mpainel6.setlocation(0,500); mpainel6.setbackground(new Color(255,128,128)); mpainel6.setsize(mlargura,50); mpainel6.add(mlbsql); add(mpainel5); // mpainel7.setlocation(0,550); mpainel7.setbackground(new Color(255,128,255));

11 mpainel7.setsize(mlargura,50); mpainel7.add(mbtfim); add(mpainel7); mbtfim.addactionlistener(this); //------> Mostar janela this.resize(mlargura,600); mfl.sethgap(100); this.setlayout(mfl); this.show(); //------> Definir os estado finais do AFN fdefinirestadosfinaisdoafn(); //------> Definir as transições do AFN ("desenhar" o grafo do autômato) fdefinirtransicoesdoafn(); //---> Implementação do AFN //===> Indicar aqui os estados finais do AFN... private void fdefinirestadosfinaisdoafn() { mestadosfinaisdoafn.add("q4"); //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ //---> ALUNO: complete aqui os estados finais do AF //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ //---> Implementação do AFN //===> Criar aqui o AFN propriamente dito... private void fdefinirtransicoesdoafn() { CTransicao vtransicao; vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("0"); vtransicao.fsetnovoestado("q10"); mtransicoesafn.add(vtransicao); //---

12 vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("0"); vtransicao.fsetnovoestado("q14"); mtransicoesafn.add(vtransicao); //--- vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("1"); vtransicao.fsetnovoestado("q1"); mtransicoesafn.add(vtransicao); //--- vtransicao = new CTransicao(); vtransicao.fsetestado("q0"); vtransicao.fsetprmitiva("1"); vtransicao.fsetnovoestado("q1"); mtransicoesafn.add(vtransicao); //--- //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ //---> ALUNO: complete aqui as transições do AF //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ //---> Processamento de Sentenca pelo AFN public void fprocessamentopeloafn() { String vfita = msentenca.gettext(); int vtamanhofita = vfita.length(); int icursor; String vprimitivalida; String Q; CNoProc vnoproc; int indnoatual; int indproximono; // é o nó que na lista será processado com a próxima primitiva lida... int indiniciodosresultados; // a partir deste nó, os estados são os estados dos // caminhos ao final do processamento das primitivas String vestadoproc; CTransicao vtransicao; int k; String vestado; String vprimitiva; String vnovoestado; String venter = String.valueOf((char)13) + String.valueOf((char)10); String vaux;

13 String vehqerro; mtxtexecucao.settext("inicio DO PROCESSAMENTO" + venter + "=========================" + venter); mcaminhos.clear(); // "limpar" para iniciar um novo processamento... //---> Estado inicial da máquina AFN Q = "q0"; vnoproc = new CNoProc(); vnoproc.fsetestadoproc(q); // estado atual de processamento vnoproc.fsetindicenopai(-1); // Nó-raiz não tem nó pai... mcaminhos.add(vnoproc); indnoatual = 0; // é o nó que atualmente está em processamento... indproximono = indnoatual + 1; // Próximo nó a ser processado com a próxima primitiva lida indiniciodosresultados = indnoatual; //---> loop para processar a fita... for (icursor = 0; icursor < vtamanhofita; icursor++) { vprimitivalida = vfita.substring(icursor,icursor+1); vaux = String.valueOf(iCursor+1); vaux = "Primitiva " + vaux + " = " + vprimitivalida; mtxtexecucao.append(" " + venter); mtxtexecucao.append(vaux + venter + venter); //------> Processamento de todos os estados disponíveis para a primitiva em questão... while (indnoatual < indproximono) { vnoproc = (CNoProc)mCaminhos.get(indNoAtual); vestadoproc = vnoproc.fgetestadoproc(); // é o estado atual de processamento... vaux = vestadoproc + " x " + vprimitivalida + " -> "; vehqerro = "S"; // em princípio supõe-se que não tem transição (ou seja, qe).. // > Avalia toda a lista de transições do AFN... for (k = 0; k < mtransicoesafn.size(); k++) { vtransicao = (CTransicao)mTransicoesAFN.get(k); vestado = vtransicao.fgetestado(); vprimitiva = vtransicao.fgetprimitiva(); if ( (vestadoproc.equalsignorecase(vestado)) && (vprimitivalida.equalsignorecase(vprimitiva)) ) { vnovoestado = vtransicao.fgetnovoestado(); vnoproc = new CNoProc(); vnoproc.fsetestadoproc(vnovoestado); vnoproc.fsetindicenopai(indnoatual); mcaminhos.add(vnoproc);

14 vaux += " " + vnovoestado + " ou "; vehqerro = "N"; // próxima transição da lista de transições do AFN if (vehqerro.equalsignorecase("n")) { vaux = vaux.substring(0,vaux.length()-4); else { vaux += " qe"; mtxtexecucao.append(vaux + venter); indnoatual++; // Próximo estado a ser avaliada com a primitiva lida indiniciodosresultados = indnoatual; indproximono = mcaminhos.size(); // próxima primitiva a ser lida... mtxtexecucao.append(venter + "====================" + venter + " FIM " + venter); //---> A variavel indiniciodosresultados marca os nós (até o final da lista mcaminhos) //---> que são os estados dos caminhos ao término da leitura da fita de entrada.. fmostrarcaminhos(indiniciodosresultados); //---> Mostrar os caminhos processados pelo AFN private void fmostrarcaminhos(int aindiniciodosestados) { String vfita = msentenca.gettext(); String venter = String.valueOf((char)13) + String.valueOf((char)10); mtxtcaminhos.settext("caminhos CONSTRUÍDOS PELO AFN" + venter + "=================================" + venter); //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ //---> ALUNO: implemente aqui a rotina de apresentação dos caminhos gerados pelo AF //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

15 //---> Verificar se é estado final private String fverificaseehestadofinal(string aestadoproc) { String vehestadofinal = "N"; int k; String vestadofinal; for(k = 0; k < mestadosfinaisdoafn.size(); k++) { vestadofinal = (String)mEstadosFinaisDoAFN.get(k); if (vestadofinal.equalsignorecase(aestadoproc)) { vehestadofinal = "S"; return vehestadofinal; // //---> Listener // public void actionperformed(actionevent e) { if (e.getactioncommand() == "Fim") { System.exit(0); if (e.getactioncommand() == "Executar") { fprocessamentopeloafn(); // //---> Programa principal // public static void main(string[] args) { new AFN01a();

16 //=================================== // Classe para o objeto Transição //=================================== class CTransicao { String mestado; String mprimitiva; String mnovoestado; CTransicao() { public void fsetestado(string avalor) { mestado = avalor; public void fsetprmitiva(string avalor) { mprimitiva = avalor; public void fsetnovoestado(string avalor) { mnovoestado = avalor; public String fgetestado() { return mestado; public String fgetprimitiva() { return mprimitiva; public String fgetnovoestado() { return mnovoestado; //======================================================================= // Classe para o objeto-elemento "Nó de processamento" da lista mcaminhos //======================================================================= class CNoProc { String mestadoproc; int mindicenopai; CNoProc() { public void fsetestadoproc(string avalor) { mestadoproc = avalor; public void fsetindicenopai(int avalor) { mindicenopai = avalor; public String fgetestadoproc() { return mestadoproc; public int fgetindicenopai() { return mindicenopai;

17 1 a Questão Codifique no JFLAP e codifique em linguagem Java (ou outra linguagem de sua preferência) um AFN para os seguintes problemas abaixo apresentados: Obs. 1: O código de programação DEVE receber como informação de entrada uma sentença e informar se a mesma pertence ou não à linguagem em questão. E todas as sequências de processamento do AFN devem ser impressas. Obs. 2: Você DEVE indicar onde ocorrem os não determinismos do AFN (1) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo cca ou cba, e possuam ao menos uma subpalavra (um substring) aaa ou bac e sufixo cba ou sufixo ca. (2) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo cca ou cba, e não possuam subpalavra (substring) aaa nem bac e possuam sufixo cba ou sufixo ca. (3) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bcb ou bab, e possuam ao menos uma subpalavra (um substring) abc ou acc, e sufixo aaa ou sufixo ab. (4) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bcb ou bab, e não possuam subpalavra (substring) abc nem acc, e possuam sufixo aaa ou sufixo ab.

18 (5) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo abc ou acc, e possuam ao menos uma subpalavra (um substring) bcb ou bab, e sufixo ccc ou sufixo cb. (6) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo abc ou acc, e não possuam subpalavra (substring) bcb nem bab, e possuasufixo ccc ou cb. (7) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aaa ou bac, e possuam ao menos uma subpalavra (um substring) cca ou cbb, e sufixo cba ou sufixo ca. (8) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aaa ou bac, e não possuam subpalavra (substring) cca nem cbb, e possuam sufixo cba ou sufixo ca. (9) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo cba ou aba, e possuam ao menos uma subpalavra (um substring) cab ou caa, e sufixo bbb ou sufixo ba. (10) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bbb ou aba, e possuam ao menos uma subpalavra (um substring) cab ou caa, e sufixo acb ou sufixo bb. (11) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bbb ou aba, e não possuam subpalavra (um substring) cab nem caa, e possuam sufixo acb ou sufixo bb. (12) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aaa ou aac, e possuam ao menos uma subpalavra (um substring) aab ou aca, e sufixo cca ou sufixo cc.

19 (13) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aaa ou aac, e não possuam subpalavra (um substring) aab nem aca, e possuam sufixo cca ou sufixo cc. (14) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo ccb ou cac, e possuam ao menos uma subpalavra (um substring) abc ou cba, e sufixo bbb ou sufixo bc. (15) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo ccb ou cac, e não possuam (substring) abc nem cba, e possuam sufixo bbb ou sufixo bc. (16) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aca ou bca, e não possuam subpalavra (um substring) bba nem cbc, e possuam sufixo ccc ou sufixo ca. (17) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo aca ou bca, e possuam ao menos uma subpalavra (um substring) bba ou cbc, e sufixo ccc ou sufixo ca. (18) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bcc ou acb, e possuam ao menos uma subpalavra (um substring) cba ou ccb, e sufixo aab ou sufixo ac. (19) Construa um Autômato Finito Não Determinístico (AFN) sobre o alfabeto Σ = {a, b, c, que reconheça a linguagem L onde as sentenças possuem prefixo bcc ou acb, e não possuam subpalavra (substring) cba nem ccb, e possuem sufixo aab ou sufixo ac. ** FIM ***

Exercícios 03. Questão 1.5) Qual o estado do AFD após processar a sentença w = abbbbaaaaab? A sentença w L?

Exercícios 03. Questão 1.5) Qual o estado do AFD após processar a sentença w = abbbbaaaaab? A sentença w L? Exercícios 03 CENTRO UNIVERSITÁRIO DE BRASÍLIA - UniCEUB 1 a Questão: Codifique no programa JFLAP o AFD definido sobre o alfabeto Σ={a,b, que reconhece sentenças de determinada linguagem L, conforme apresentado

Leia mais

Lista de exercícios 1

Lista de exercícios 1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro

Leia mais

Autómatos Finitos Determinísticos (AFD)

Autómatos Finitos Determinísticos (AFD) Folha Prática Autómatos Finitos 1 Autómatos Finitos Determinísticos (AFD) 1. Determine e implemente computacionalmente um AFD que aceita todas as cadeias de cada uma das seguintes linguagens sobre o alfabeto

Leia mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

1) Responda de acordo com os conceitos de orientação a objetos (0,5). Avalição II (Teórica) 22/06/2017 Disciplina Linguagem de Programação II Prof. Wagner, dos Santos C. de Jesus Curso Engenharia da Computação Questões Solução da Avaliação 1) Responda de acordo com os conceitos

Leia mais

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Ficha 3 Autómatos Finitos Objectivos: Introdução ao conceito de Autómato Finito e notações utilizadas na sua representação;

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Mestrando em Ciência da Computação Departamento de Ciência da Computação Universidade Federal

Leia mais

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

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior. LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

Exercícios 02. A gramática acima gera sentenças que tenham os N primeiros bits 0 e o último bit é sempre 1.

Exercícios 02. A gramática acima gera sentenças que tenham os N primeiros bits 0 e o último bit é sempre 1. Exercícios 02 CENTRO UNIVERSITÁRIO DE BRASÍLIA - UniCEUB 1 a Questão Considere a gramática abaixo que gera sentenças da linguagem L onde L = { w w = 0 m 1, m 1. A gramática acima gera sentenças que tenham

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

Leia mais

Linguagens e Programação Automátos Finitos. Paulo Proença

Linguagens e Programação Automátos Finitos. Paulo Proença Linguagens e Programação Automátos Finitos Autómatos finitos Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais

Leia mais

Terceira Lista de Exercícios 2004/2...

Terceira Lista de Exercícios 2004/2... UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Terceira Lista de Exercícios 2004/2

Leia mais

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

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

private void btapresentanomeactionperformed(java.awt.event.actionevent evt) {

private void btapresentanomeactionperformed(java.awt.event.actionevent evt) { Jorge Ferreira 1 NOTAS DE AULA JAVA 5 E NETBEANS 5 Seguindo as configurações iniciais do formulário, devemos definir o comportamento de apresentação da janela quando executarmos o programa. Para tanto,

Leia mais

Capítulo 1: Alfabetos, cadeias, linguagens

Capítulo 1: Alfabetos, cadeias, linguagens Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de

Leia mais

MÓDULO 4 SWING Parte 3

MÓDULO 4 SWING Parte 3 Aplicações de Linguagem de Programação Orientada a Objetos 2ºsem/2011 (Professores: Tiago e Daniele) // Exemplo11 Ação do Mouse import javax.swing.*; import java.awt.*; import java.awt.event.actionevent;

Leia mais

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos

Leia mais

Modelos de Computação Folha de trabalho n. 8

Modelos de Computação Folha de trabalho n. 8 Modelos de Computação Folha de trabalho n. 8 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos

Leia mais

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo MODEL-VIEW-CONTROLER Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) O Que é MVC? Modelo de arquitetura de software Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo

Leia mais

Apostila 03 - Linguagens Livres de Contexto Exercícios

Apostila 03 - Linguagens Livres de Contexto Exercícios Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Lógica de Programação e Algoritmos

Lógica de Programação e Algoritmos Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 4 Estruturas de Dados Homogêneas Vetores e Matrizes Conteúdo: 4.1 Variáveis compostas homogêneas... 55 4.2 Vetores... 56 Exercícios

Leia mais

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos Curso: Ciência da Computação Turma: 6ª Série Aula 3 Autômatos Finitos Alfabeto Alfabeto Conjunto finito de símbolos; Normalmente descrito por ; Exemplos: ={a, b} ={1, 2, 3} ={00, 11} Ø Alfabeto romano

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 09/09/2013 Panorama do Restante da Disciplina 1 Próximo Tópicos da Matéria Linguagens Autômatos Regulares Autômatos Finitos Máquinas de Moore e Mealy Livres

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 4 Análise Léxica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Conversão de Expressões Regulares (ER) para Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Introdução A construção sistemática de um Autômato Finito para

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 13 Prof. ISVega Maio de 2004 Arrays CONTEÚDO 13.1Arrays e Seqüências de Variáveis.........

Leia mais

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Linguagem de programação métodos/funções

Linguagem de programação métodos/funções Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação métodos/funções Professor: Saulo Henrique Cabral Silva MÉTODOS / MODULARIZANDO Modularizando... 2 Métodos Funções Sub-rotinas

Leia mais

JavaScript (ou JScript)

JavaScript (ou JScript) 1. Introdução JavaScript (ou JScript) Uma linguagem como o JavaScript permite criar interfaces interativas na web (permite a interação do usuário). Para desenvolver web sites interativos precisamos de

Leia mais

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

Leia mais

Propriedades de Fecho de Linguagens Regulares.

Propriedades de Fecho de Linguagens Regulares. Propriedades de Fecho de Linguagens Regulares. Gerando Linguagens Regulares Recorde a seguinte teorema: THM: Linguagens regulares são aquelas que podem ser geradas a partir de linguagens finitas pela aplicação

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos 1. Para a construção de uma aplicação gráfica se faz necessário conceber a interface de aplicação, identificando-se

Leia mais

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes

Leia mais

Introdução à Programação Gráfica em Java

Introdução à Programação Gráfica em Java Introdução à Programação Gráfica em Java U N I V E R S I D A D E T E C N O L Ó G I C A F E D E R A L D O P A R A N Á D E P A R T A M E N T O A C A D Ê M I C O D E E L E T R Ô N I C A P R O F. V I T O R

Leia mais

Sintaxe da linguagem Java

Sintaxe da linguagem Java Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

Linguagens e Autômatos

Linguagens e Autômatos 167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges gaborges@ene.unb.br

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Expressões Regulares e Gramáticas Regulares

Expressões Regulares e Gramáticas Regulares Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão

Leia mais

Comando de Seleção em Java

Comando de Seleção em Java Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Comando de Seleção Comando de Seleção em Java Conteúdo 1. Introdução... 1 2. Comando de seleção... 2 3. Comandos

Leia mais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:

Leia mais

Estruturas de Controle em c#

Estruturas de Controle em c# Estruturas de Controle em c# Fábio Moura Governo de Pernambuco Agenda Tipos de estruturas de controle; if; if-else; if-else-if; switch-case; while; do-while; for; foreach; Exercício. Tipos de Estruturas

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel) Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo

Leia mais

TRABALHO DE RECUPERAÇÃO Menção máxima = MM

TRABALHO DE RECUPERAÇÃO Menção máxima = MM Nome Completo TRABALHO DE RECUPERAÇÃO Menção máxima = MM Rubrica INSTRUÇÕES 1) ATENÇÃO!!! Entregar o trabalho com a resolução das questões totalmente escrita à mão!!! Não será aceita em hipótese alguma

Leia mais

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR

DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Eng. Informática Linguagens Formais e Compilação 2º Semestre Resolução da Frequência 1 20/Abril/2010 Pergunta A.1 A.2 A.3 A.4 B C.1 C.2 Total Cotação 0,75

Leia mais

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada 5COP088 Laboratório de Programação Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Exercícios - Laços 2) Ponteiros 3) Funções 4) Procedimentos 5) Recursividade 2 Exercícios sobre

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais

AFNs, Operações Regulares e Expressões Regulares

AFNs, Operações Regulares e Expressões Regulares AFNs, Operações Regulares e Expressões Regulares AFNs. OperaçõesRegulares. Esquematicamente. O circulo vermelho representa o estado inicial q 0, a porção verde representa o conjunto de estados de aceitação

Leia mais

Natureza do Software e dos Sistemas

Natureza do Software e dos Sistemas Natureza do Software e dos Sistemas Jorge H C Fernandes Diferença Fundamental entre Engenharia de Software e outras Engenharias! Os materiais são diferentes As teorias fundamentais são diferentes Dificuldades

Leia mais

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos Teoria da Computação Segundo Semestre, 24 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor

Leia mais

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;

Leia mais

Dada a linguagem, números romanos, construir uma representação para a gramática dela junto com um interpretador para essa gramática.

Dada a linguagem, números romanos, construir uma representação para a gramática dela junto com um interpretador para essa gramática. Resumo Interpreter Amanda e Nikson Problema Dada uma linguagem, definir uma representação para a sua gramática e um interpretador que usa esta representação para interpretar sentenças da linguagem. Exemplo

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Herança Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo 11 de setembro

Leia mais

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos Teoria da Computação Primeiro Semestre, 25 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor

Leia mais

A classe JTextField

A classe JTextField 8.1.4. A classe JTextField É uma caixa para digitação do usuário que permite a inclusão de um texto de apenas uma única linha. Principais métodos setbounds(int x, int y, int Width, int Height) define as

Leia mais

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

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000) Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade

Leia mais

Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java

Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java O tipo String é uma classe da linguagem Java onde se definem muitos métodos que podemos e devemos usar para manipular cadeiras de

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um

Leia mais

Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1 Aula de Revisão para AV1 Conteúdo Programático desta aula Rever os principais conceitos apresentados Resolução de Exercícios para a prova Quantas bibliotecas de GUI existem em Java: a) Uma: Swing b) Duas:

Leia mais

Outras Máquinas de Turing

Outras Máquinas de Turing Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal

Leia mais

TCC 00308: Programação de Computadores I Introdução

TCC 00308: Programação de Computadores I Introdução TCC 00308: Programação de Computadores I 2017.1 Introdução Processo de resolução de problemas Definição dos requisitos do problema (fazer o programa certo) Entradas Cálculos Casos especiais Saídas Desenvolvimento

Leia mais

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich paulovic@icmc.usp.br

Leia mais

Processamento da Informação Teoria. Exercícios sobre strings

Processamento da Informação Teoria. Exercícios sobre strings Processamento da Informação Teoria Exercícios sobre strings Semana 04 Prof. Jesús P. Mena-Chalco 18/05/2013 Uma string é uma sequência Uma string (cadeia) é uma sequência de caracteres. Podemos acessar

Leia mais

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1 2006/2007 Trabalho prático nº 1 Trabalho realizado por: Pedro Oliveira (501062444) Rui Costa (501062452) Turma: TP1 1 - Introdução O objectivo deste trabalho era implementar um simulador de Autómatos Finitos

Leia mais

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

Matemática Discreta para Computação e Informática Matemática Discreta para Computação e Informática P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Computação e Informática

Leia mais

Aula 4 Estruturas de Controle

Aula 4 Estruturas de Controle UNIP Universidade Paulista Ciência da Computação Aula 4 Estruturas de Controle Prof. Célio Ricardo Castelano 1 Tópicos Abordados 1) Instruções de seleção em Java: 2) Instruções de repetição em Java: 2

Leia mais

Algoritmos I Aula 13 Linguagem de Programação Java

Algoritmos I Aula 13 Linguagem de Programação Java Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto

Leia mais

Linguagens Regulares, Operações Regulares

Linguagens Regulares, Operações Regulares Linguagens Regulares, Operações Regulares 1 Definição de Linguagem Regular Relembre a definição de linguagem regular: DEF: A linguagem aceita por um AF M é o conjunto de todos os strings que são aceitos

Leia mais

String. Demonstrar a utilização e manipulação com os métodos da classe String.

String. Demonstrar a utilização e manipulação com os métodos da classe String. String 1. Objetivos Demonstrar a utilização e manipulação com os métodos da classe String. 2. Strings 2.1. O que são Strings? Em Java, String é uma seqüência de caracteres utilizada para representação

Leia mais

Linguagens Formais e Autômatos 02/2017. LFA Aula 03. Gramáticas regulares /09/2017 Celso OliveteJúnior.

Linguagens Formais e Autômatos 02/2017. LFA Aula 03. Gramáticas regulares /09/2017 Celso OliveteJúnior. Linguagens Formais e Autômatos 02/2017 LFA Aula 03 Linguagens regulares Gramáticas regulares 25-27/09/2017 Celso OliveteJúnior olivete@fct.unesp.br 1 Linguagens Formais e Autômatos 02/2017 Classificação

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 9 Prof. ISVega Março de 2004 Controle de Execução: Seleção Múltipla CONTEÚDO

Leia mais

Herança e Polimorfismo

Herança e Polimorfismo Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais

Leia mais

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 Dados de identificação do Acadêmico: Nome: Login: CA: Cidade:

Leia mais