Autômato Finito

AutomatoFinito(estado, entrada, MatrizTransiçao, MatrizAçao) => execução do diagrama de estados

  1. MatrizAçao(estado, entrada) => acao
    //  acao=MatrizAçao[estado][entrada]
  2. ExecutarAcao(acao) => executar ações
  3. MatrizTransiçao(estado, entrada) => estado
    // estado=MatrizTransiçao[estado][entrada]
  4. AutomatoFinito(estado, PegarEntrada, MatrizTransiçao, MatrizAçao)

Matriz de transições

estados\entradas
1
2
3
4
5
inicial
ligado



preparo
espera
ligado

espera





ligado




ligado
operação





Matriz de ações

estados\entradas
1
2
3
4
5
inicial
LigaAparelho



preparo
espera
ligado

espera





ligado




ligado
operação





ExecutarAcao(acao) {
switch(acao) {
case '
LigaAparelho':
    instruçaoA;
    instruçaoF;
  break;

case 'FazerAlgo':

    instruçaoS;
    instruçaoF;
    instruçaoA;
    instruçaoD;
  break;

case 'OutraCoisa':

    instruçaoX;
    instruçaoY;
    instruçaoZ;
  break;

default:
    executar ações se não foi alguma ação definida} }

Condições => entrada // pode ser tabela(s) de decisões

PegarEntrada
if (cond1) return 1;
if (cond2) return 2;
...
if (condn) return n;
return 99;

talvez ajude a pensar:

MatrizTransiçao + Tabela de decisões + Matriz de ações

estados
entrada cond
novo estado
ações
inicial
-
inicial Mostrar mensagem -remover equipamentos proximidade
preparo

Chave
ControleIntensidade


0  0 espera
  1. Ligar equipamento na Tomada
  2. colocar Eletrodos no Paciente
0  1
af\adfa
sd\sds\af
espera



ligado



operação