Autômato Finito
AutomatoFinito(estado, entrada, MatrizTransiçao, MatrizAçao) => execução do diagrama de estados
Matriz de transições
estados\entradas | 1 | 2 | 3 | 4 | 5 |
ligado | |||||
preparo | espera | ligado | |||
espera | |||||
ligado | ligado | ||||
operação |
estados\entradas | 1 | 2 | 3 | 4 | 5 |
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
Equipamento de segurança TENS | |||
---|---|---|---|
desligado
(inicio)
|
|
||
1 0 0 0 0 | espera |
|
|
espera |
|
||
1 0 | Ligado | Informa: equipamento ligado | |
0 . . 1 |
espera | Informa motivo de espera | |
ligado (termino) |
|
||
0 0 | Termina | Desligar Tomada | |
0 1 | espera | Informa motivo de espera | |
em operação |
|
||
0 . . . . . . 0 . . . . . . 1 . . . . . . 1 . . . . . . 1 . . . . . . 1 |
espera | Informa motivo de espera | |
|
|||
1 . . 1 |
espera | remover aparelho Informa motivo de espera |
condições | ||
|
||
regras | estado | ações |
0 . . . . . . . . 0 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 |
espera | Informa motivo de espera |
em operação | ||
---|---|---|
|
||
0 . . . . . . . . 0 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . 1 |
espera | Informa motivo de espera |