Vous êtes sur la page 1sur 2

Algoritmo para carregar e testar um autmato:

De acordo com o problema apresentado, necessrio ler os dados do autmato fornecidos na entrada e
criar um autmato na memria do computador, para depois ler o nmero de cadeias de teste. Depois, ler a
cadeia 1, testar e mostrar o resultado, ..., ler a cadeia n, testar e mostrar o resultado. Ento o problema
dividido nos seguintes passos:
1. Carregar o autmato na memria;
2. Ler o nmero de cadeias a serem testadas;
3. Para cada cadeia, ler o tamanho e os elementos, testar o autmato e mostrar o resultado.

Passo 1: Carregar um autmato para a memria:

Conjunto Q (estados):

1. Criar uma varivel inteira para ler o nmero de estados;


2. Ler um valor para essa varivel;
3. Criar um vetor de caracteres para os estados do tamanho da varivel lida.
4. Fazer um loop para preencher o vetor de caracteres dos estados, um a um.

Conjunto (alfabeto):

1. Criar uma varivel inteira para ler o nmero de elementos do alfabeto;


2. Ler um valor para essa varivel;
3. Criar um vetor de caracteres para o alfabeto do tamanho da varivel lida;
4. Fazer um loop para preencher o vetor de caracteres do alfabeto, um a um;

Funo (a matriz de transies:

1. Criar uma matriz de caracteres (tamanho do vetor de estados) x (tamanho do vetor de alfabeto)
2. Fazer um loop dentro de um loop para ler cada estado de transio:
Ex: for i de zero at o tamanho de estados
For j de zero at o tamanho do alfabeto
Ler um caractere
Matriz de transies [i][j] = caractere lido

Estado inicial:

1. criar uma varivel caractere para ler o estado inicial


2. ler o valor (caractere) para essa varivel

Conjunto F (estados de aceitao):

1. Criar uma varivel inteira para ler o nmero de estados de aceitao;


2. Ler um valor para essa varivel;
3. Criar um vetor de caracteres para os estados de aceitao do tamanho da varivel lida;
4. Fazer um loop para preencher o vetor de caracteres lidos um a um

Passo 2: Quantidade de cadeias de teste:

1. Criar uma varivel inteira para ler a quantidade de cadeias de teste;


2. Ler um valor para essa varivel;

Passo 3: Leitura das cadeias e teste do autmato:

1. Fazer um loop de acordo com a quantidade de cadeias de testes lida


anteriormente
2. Para cada iterao dentro desse loop:
* Leitura da cadeia de teste

1. Ler o tamanho da cadeia em uma varivel inteira;


2. criar um vetor de caracteres do tamanho da varivel lida (cadeia)
3. Fazer um loop para preencher esse vetor um a um;

* Navegao pela matriz de transies


1. Criar uma varivel para conter o estado atual
2. Estado atual = estado inicial
3. Fazer um loop de acordo com o tamanho da cadeia lida.
a. ler o elemento cadeia[valor do loop]
b. fazer o estado atual = matriz de transies[estado atual][elemento
da cadeia]

* Verificao de aceita ou no:


* Se o estado atual estiver contido no vetor de estados de aceitao, ACEITA

1. fazer um loop de acordo com o tamanho do vetor de estados de aceitao


2. se aceitao[valor do loop] = estado atual:
1. escreve aceita;
2. encerra o loop.
3. se o valor do loop for maior ou igual o estado atual
1. escreve rejeita

Vous aimerez peut-être aussi