Buscar

TRABALHO PRÁTICO II – PRÁTICA DE ENSINO DE COMPUTABILIDADE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TRABALHO PRÁTICO II – PRÁTICA DE ENSINO DE COMPUTABILIDADE
DATA DE ENTREGA: 13/06/2014
OBS:
O TRABALHO PODERÁ SER REALIZADO EM GRUPO OU INDIVIDUAL
CÓPIAS DE TRABALHO SERÁ ATRIBUIDA NOTA ZERO
O TRABALHO DEVERÁ CONTER A DESCRIÇÃO DA ESTRUTURA DE DADOS UTILIZADA. 
PARA SABER MAIS SOBRE SOMADOR E SUBTRATOR CONSULTAR O LIVRO DE ARQUITETURA DE COMPUTADORES.
Problema: ( Autômatos Finitos Determinísticos ) 
Seja um AFD M = ( V, , , I, F ). V é o conjunto dos estados.  é o alfabeto.  é a função de transição de estado . I é o estado inicial e F o conjunto de estados de aceitação. Elabore um programa em QUALQUER LINGUAGEM DE PROGRAMAÇÃO que utilize o conceito de AFD desenvolvido em classe para criação de uma máquina de estado finito que leia um conjunto de entrada e um símbolo representando a operação matemática ( S – Somador, M - Subtrator ). Retornando o resultado da operação através da saída de seu estado. (OBS: o resultado fornecido pela AFD deve ser interpretado através do bit menos significativo até o mais significativo. Cada conjunto de entrada é formado por dois bits, sendo o primeiro representa o bit do primeiro número e o segundo representa o bit do segundo número, que dever ser somado). 
Descrição: 
Os dados de entrada devem ser lidos do teclado. Na primeira linha o número de operações. Para cada operação temos uma letra que representa a operação e a linha seguinte estão os conjuntos de bits.
Exemplo:
2 – número de operações (somador e subtrator)
S - somador
M - subtrator
Implementação:
Desenvolva duas funções, uma para o somador e outra para subtrator que recebe um conjunto de bits para a soma ou subtração. Esta função recebe o conjunto de bits e muda as transições do AFD que gera uma saída a cada transição. Os valores somados em bits e o resultado fornecido pelo AFD. (obs: Utilize uma pilha para guardar estes bits para facilitar em sua representação) 
Saida:
A saída do programa deve conter o tipo de operação, os valores utilizados para operação e seu resultado escrito na tela. 
Exemplo
Operação Somador
Entrada: 0111 + 1101
 0 1 1 1
+ 1 1 0 1
------------
 1 0 1 0 0
O que entregar para avaliação:
Relatório com a descrição do problema, implementação dos AFD.
Programa fonte e o executável em cd.
Script da saída, utilizando o arquivo de teste disponível abaixo. 
******** SUBTRATOR *********
 1 1 1 0 1 1 1
 1 1 1 1 1 0 0
---------------------
Colocar o resultado da operação aqui.
********* SOMADOR *********
 1 1 1 0 1 1 0
 1 1 0 0 0 1 1
--------------------
 Colocar o resultado da operação aqui.
********* SOMADOR *********
 1 1 1 1 1
 1 1 1 1 1
--------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 1 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0
---------------------
Colocar o resultado da operação aqui.
********* SOMADOR *********
 1 0 0 0 0 0 0 0
 1 0 0 0 0 0 0 0
--------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 0 0 0 0 0 0 0 0
 1 0 0 0 0 0 0 0
---------------------
Colocar o resultado da operação aqui.
********* SOMADOR *********
 1 1
 1 1
--------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 1 0 0
 0 1 1
---------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 0 0 0
 1 1 1
---------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 0 0 0 0
 1 1 1 1
---------------------
Colocar o resultado da operação aqui.
********* SOMADOR *********
 0 1 0 1 0 1 0 1 0 1 0 1
 1 0 1 0 1 0 1 0 1 0 1 0
--------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 0 0 0 0 0 0 0 0 0 0 0 0
 1 1 1 1 1 1 1 1 1 1 1 1
---------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 0
 1
---------------------
Colocar o resultado da operação aqui.
********* SOMADOR *********
 1
 1
--------------------
Colocar o resultado da operação aqui.
******** SUBTRATOR *********
 1
 1
---------------------
Colocar o resultado da operação aqui.
http://robolivre.org/conteudo/maquina-de-estados-finitos
http://www.academia.edu/2543590/Implementando_Automatos_Finitos_em_Java