Lista de Exercicios Linguagens Formais

4
LISTA DE EXERCÍCIOS 1 NOME: Wellington Luis de Oliveira Lima Antônio Valdeci R. Valentim Júnior RA: 3226009474 RA: 4243835825 CURSO: Ciências da Computação SÉRIE: 5°/6º TURMA:A DISCIPLINA: Linguagens Formais DATA: 23/03/2015 Professor: José Avelino Placca INSTRUÇÕES: Duração: o tempo da aula O trabalho é em grupo e com consulta; Nota Trabalhos: 01. (EM LABORATÓRIO) Implementar um algoritmo em Linguagem C que leia uma string (tamanho máximo de 10 caracteres) e verifique se a mesma pertence a linguagem T* do alfabeto T = {a,b}. Exemplo: Entrada: abc Saída: Não pertence (o símbolo “c” não faz parte do alfabeto) Entrada: aabaa Saída: Pertence (todos os símbolos fazem parte do alfabeto) OBS. O algoritmo proposto prova que o conjunto T* é um conjunto RECURSIVO (pois é possível para qualquer cadeia identificar se a mesma pertence ou não ao conjunto) Resposta: #include <stdio.h> #include <conio.h> #include <string.h> int main() { //Foi declarado o vetor de 11 posições pois 10 são para os valores do alfabeto e a última posição é para o símbolo terminal "\0" char alfabeto[11], alfaT[] = {'a','b'}, op; int i=0, pertence=0; printf("Digite os caracteres do alfabeto a ser comparado: ", i+1); gets(alfabeto);

description

Lista de Exercícios de Linguagens Formais e Autômatos

Transcript of Lista de Exercicios Linguagens Formais

LISTA DE EXERCCIOS 1

NOME: Wellington Luis de Oliveira Lima Antnio Valdeci R. Valentim JniorRA: 3226009474RA: 4243835825

CURSO: Cincias da ComputaoSRIE: 5/6 TURMA:A

DISCIPLINA: Linguagens FormaisDATA: 23/03/2015

Professor: Jos Avelino Placca

INSTRUES:

Durao: o tempo da aula

O trabalho em grupo e com consulta;Nota Trabalhos:

01. (EM LABORATRIO) Implementar um algoritmo em Linguagem C que leia uma string (tamanho mximo de 10 caracteres) e verifique se a mesma pertence a linguagem T* do alfabeto T = {a,b}.

Exemplo:

Entrada: abc

Sada: No pertence (o smbolo c no faz parte do alfabeto)

Entrada: aabaa

Sada: Pertence (todos os smbolos fazem parte do alfabeto)

OBS. O algoritmo proposto prova que o conjunto T* um conjunto RECURSIVO (pois possvel para qualquer cadeia identificar se a mesma pertence ou no ao conjunto)Resposta:

#include

#include

#include

int main() { //Foi declarado o vetor de 11 posies pois 10 so para os valores do alfabeto e a ltima posio para o smbolo terminal "\0"

char alfabeto[11], alfaT[] = {'a','b'}, op;

int i=0, pertence=0;

printf("Digite os caracteres do alfabeto a ser comparado: ", i+1);

gets(alfabeto);

for(i=0; i a

S -> aS -> aaS -> aaaG2= S -> AS -> aS -> aAS -> abS -> aSb -> aASb -> aaSb ->

Obs.: Processo de derivao infinita.

G3 = S -> AS -> aAS -> aaAS -> aaaS -> aaab

S -> AS -> aAS -> aaAS -> aaaS -> aaaAS -> aaaaS -> aaaab

G4 = S -> ASB -> aASB -> aaSB -> aacB -> aacbB -> aacbbB -> aacbbbB -> aacbbbb

S -> ASB -> aASB -> aaASB -> aaaASB -> aaaaSB -> aaaacB -> aaaacbB -> aaaacbbB -> aaaacbbbB -> aaaacbbbb

G5 = S -> XC -> xC

S -> XC -> xXC -> xxC -> (