Sobre o Simulador da Máquina de Post
Para realizar as simulações e escrever programas para a máquina de post utilizo o simulador que deixei disponível nesse
link. Seguem os créditos (retirados do Simulador de Máquina de Post):
Utilizando o simulador: Tutorial do Simulador de Máquina de Post Passo a Passo
Criando um programa do zero
Ao ser executado o simulador fica como segue (clique para ampliar):
Criando um programa (a extensão dos programas para o simulador é .mpt):
Para editar um programa no simulador, primeiramente precisamos definir um alfabeto para que ele possa trabalhar com esse conhecimento prévio, a seguir um passo a passo inicial para criarmos um programa que leia uma palavra formada apenas pelas letras a e b (procurei destacar com uma elipse vermelha a opção clicada):
Após clicarmos na opção, a janela para editarmos o alfabeto de entrada é aberta, veja como o símbolo auxiliar e da palavra vazia já estão definidos:
 |
| Janela para edição do alfabeto de entrada |
 |
| Adicionando a letra a como parte do alfabeto de entrada |
 |
| Inserindo a letra a como parte do alfabeto de entrada |
 |
| Letra a foi inserida como parte do alfabeto de entrada |
Após a inserção da letra
a, também inseri como parte do alfabeto de entrada da minha máquina de post a letra
b, pois quero que meu programa leia palavras que possua ambas as letras:
 |
| Letras a e b inseridas como alfabeto de entrada |
Também nessa mesma janela devemos inserir um nome para nosso programa:
Com isso feito, como o programa está sendo criado agora, devemos ir em arquivo e salvar como, caso estivéssemos alterando um programa existente bastaria darmos um salvar (lembre-se sempre de salvar alterações feitas):
Como podemos ver nas imagens acima, para abrir um programa já existente basta selecionarmos abrir e pronto!
Criando o Fluxograma
Como você pode ver, existe do lado esquerdo uma pequena janela intitulada
Instruções e uma janela
Fluxograma, são basicamente estas que utilizaremos para criar o nosso fluxograma para a Máquina de Post que eu chamei de
programaLerAB (poderia ser qualquer outro nome). Sempre que selecionarmos uma nova instrução, vamos encaixando estas às que já existem no fluxograma, eu gosto de comparar isso como encaixar blocos de lego.
Atenção: não esqueça de SALVAR as alterações ou suas modificações serão perdidas.
Rótulos do Simulador:
 |
| Rótulos do Simulador de Máquina de Post |
Vamos criar nosso fluxograma (clique para ampliar)
 |
| Primeiramente devemos selecionar o rótulo de partida. |
 |
| Após o rótulo selecionado, basta clicar no local onde queremos que ele fique, não se preocupe, as instruções podem ser movidas de local. |
 |
| Selecionamos o rótulo de atribuição para concatenar ao fim da palavra X o símbolo auxiliar #. |
 |
| Selecionamos o rótulo de transição, ele serve para "ligar" uma instrução na outra, preste atenção na flecha indicando que transição vai do rótulo anterior para o próximo, você liga as transições com o mouse mesmo. |
 |
| Agora adicionamos um rótulo de leitura para ler a palavra X. |
 |
| Inserindo a transição para ligar as instruções. |
 |
| Agora vamos adicionar um novo rótulo de atribuição, para que caso o símbolo "a" seja lido ele seja adicionado ao fim da nossa fila. (Lembre-se isso deve ser feito porque a leitura é destrutiva e queremos guardar o símbolo). |
 |
| Inserindo a transição para caso o símbolo lido seja "a". |
 |
| Vamos fazer o mesmo para o "b". |
 |
| Agora devemos fazer o programa voltar para a parte de leitura após ler os símbolos (caso sejam os símbolos esperados). Veja que, caso não quiséssemos guardar esses símbolos bastava inserir direto a transição sem precisar inserir os rótulos de atribuição antes. |
 |
| Adiconando um rótulo de parada ACEITA caso o programa tenha chegado ao símbolo auxiliar "#" pois senão entraria em loop pois a palavra começará novamente. |
 |
| Adicionando um rótulo de REJEITA caso esteja vazio. |
 |
| Vamos inserir as transições finais. |
 |
| Fluxograma Finalizado! |
Conclusão
 |
Programa para ler palavras formadas por "a" e "b" na máquina de post.
|
Nenhum comentário :
Postar um comentário
Comente!