Vous êtes sur la page 1sur 3

LISTA DE EXERCCIOS 1

NOME: Wellington Luis de Oliveira Lima


Antnio Valdeci R. Valentim Jnior
CURSO: Cincias da Computao
DISCIPLINA: Linguagens Formais
Professor: Jos Avelino Placca
INSTRUES:
Durao: o tempo da aula
O trabalho em grupo e com consulta;

RA: 3226009474
RA: 4243835825
SRIE: 5/6
DATA: 23/03/2015

TURMA:A

Nota Trabalhos:

1. (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 <stdio.h>
#include <conio.h>
#include <string.h>
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<strlen(alfabeto); i++)
{
if(alfabeto[i] == alfaT[0])
pertence = pertence +1;
if(alfabeto[i] == alfaT[1])
pertence = pertence +1;
}
if(strlen(alfabeto) == pertence)
printf("\nEsta cadeia pertence a linguagem T!");

else
printf("\nEsta cadeia nao pertence a linguagem T!");
printf("\nAlfabeto: %s Tamanho do alfabeto: %d", alfabeto, strlen(alfabeto));
system("\nPAUSE");
}
2.

Para A = { 1,2 } e B = { {1}, {2}, 1, 2} determine o conjunto resultante em cada um dos itens
seguintes:

a)
b)
c)
d)
e)
f)
g)
h)

A U B = {1,2, {1}, {2}, 1, 2}


A B = {1,2}
B U = {{1}, {2}, 1, 2}
B=
B U N = {1,2,3,4,5,6,7,8,9 ...}
B N = {1,2}
B U N U R = {1, , 2, 2 ...}
(B U N) U R = {1, , 2, 2 ...}

3. Seja o alfabeto T = {a,b,c} e as linguagens definidas abaixo:


L = {a, b, aa, bb, cc} {a, b, aa, bb, cc}
M = {ab, ac, bc, cc}
Determine:
a)
b)
c)
d)

L U M = {a, b, aa, bb, cc, ab, ac, bc, cc}


L M = { cc}
L M = {a, b, aa, bb}
L o M = {aab, aac, abc, acc, bab, bac, bbc, bcc, aaab, aaac, aabc, aacc, bbab, bbac, bbbc, bbcc, ccab,
ccac, ccbc, cccc}
e) L2 = {aa, ab, aaa, abb, acc, ba, bb, baa, bbb, bcc, aaa, aab, aaaa, aabb, aacc, bba, bbb, bbaa, bbbb, bbcc,
cca, ccb, ccaa, ccbb, cccc}
4. Faa um procedimento em pseudo-cdigo que mostre que o conjunto dos inteiros recursivamente
enumervel.
OBS. O procedimento dever gerar uma enumerao para o conjunto (vide exemplo do conjunto dos
Naturais)
1.
2.
3.
4.
5.
6.
7.

i=0
y=0
Emita i
i=i+1
y=y-1
Emita i e y
V para 4 ou V para 5

5. Dadas as gramticas abaixo pede-se:

a) Diga que tipo cada gramtica segundo a Hierarquia de Chomsk


G1 = Tipo 3 (Regular)
G2 = Tipo 1 (Sensveis ao Contexto)
G3 = Tipo 2 (Livre de Contexto)
G4 = Tipo 2 (Livre de Contexto)
G5 = Tipo 0 (Irrestrita)
b) Mostre o caminho de derivao de pelo menos 2 cadeias diferentes para cada gramtica.

G1 = S -> a
S -> aS -> aaS -> aaa
G2= 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 ->

Vous aimerez peut-être aussi