29.01.2015 Views

ficha resolvida - Universidade do Minho

ficha resolvida - Universidade do Minho

ficha resolvida - Universidade do Minho

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

-- alinea 1<br />

type Esta<strong>do</strong>Robot<br />

= State Integer<br />

-- alinea 2<br />

esta<strong>do</strong>InicialRobot = 0<br />

-- alinea 3<br />

robotSt :: Dfa Esta<strong>do</strong>Robot [Char] [Char]<br />

-- alinea 4<br />

robotSt = Dfa<br />

["esquerda","direita","largar","pegar"]<br />

["C0 sem pepita","C0 com pepita","C1 sem pepita","C1 com pepita"]<br />

"C0 sem pepita"<br />

["C0 sem pepita"]<br />

delta<br />

where<br />

delta "C0 sem pepita" "direita"<br />

delta "C0 sem pepita" _<br />

delta "C0 com pepita" "largar"<br />

delta "C0 com pepita" "direita"<br />

delta "C0 com pepita" _<br />

delta "C1 sem pepita" "esquerda"<br />

delta "C1 sem pepita" "pegar"<br />

delta "C1 sem pepita" _<br />

delta "C1 com pepita" "esquerda"<br />

delta "C1 com pepita" "largar"<br />

delta "C1 com pepita" _<br />

= return "C1 sem pepita"<br />

= return "C0 sem pepita"<br />

= return "C0 sem pepita"<br />

= return "C1 com pepita"<br />

= return "C0 com pepita"<br />

= return "C0 sem pepita"<br />

= <strong>do</strong> modify ( c -> c+1)<br />

return "C1 com pepita"<br />

= return "C1 sem pepita"<br />

= return "C0 com pepita"<br />

= return "C1 sem pepita"<br />

= return "C1 com pepita"<br />

Para executarmos este autómato reactivo temos de dar um valor inicial ao esta<strong>do</strong>.<br />

Solução<br />

runRobotSt :: [String] -> (Bool, Integer)<br />

runRobotSt inp = runDfa robotSt esta<strong>do</strong>InicialRobot inp<br />

4.2 Considere de novo a linguagem L definida pela expressão regular p no exercício 2.2.<br />

Apresenta os seguinte autómatos reactivos:<br />

1. Autómato reactivo que conta o número de símbolos b existentes numa frase.<br />

2. Autómato reactivo que conta o número de símbolos b e c existentes numa frase.<br />

10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!