Esempio di automa di moore.
Questo automa controlla una vasca che possiede due sensori, alto e basso.
Entrambi i sensori sono ad off se non sono coperi dall'acqua, sono ad on se sono
ragguinti dall'acqua.
L'automa ha due uscite:
Esempio di automa di Mealy.
Descrive il funzionamento di un distributore di merendine, in grado di distribuire
merendine da 600 o 800 Lire. Accetta monete da 100, 200 e 500 Lire. Possiede
un display, sul quale vengono indicate le azioni possibili ed il credito accumulato,
una gettoniera che restituisce le monete inserite oltre massimo credito per ottenere
una merednina ed un cassetto (merenda) dal quale si può ritirare il prodotto.
Esempio di automa di riconoscitore.
Questo automa accetta una stringa nell'alfabeto { '0' , '1' }. Riconosce
occorrenze, anche sovrapposte della stringa 101 in una stringa continua.
Indica con un'uscita si (messaggio Stringa riconosciuta) il riconscimento della stringa.
// Script di definizione dell'automa // relativo alla vasca /* Il commento puo' anche essere aperto * * e chiuso con i soliti simboli **/ autore { "Prof Stefano Salvi" } moore { input { alto { off, on} basso { off, on} } stati {s0, s1, s2} output { pompa { {on,"Manda Acqua"}, off} sirena { {on, "Suona"}, off} } transizione { //a a A A //b B b B {s1,s0,s2,s0}, {s1,s1,s2,s0}, {s2,s2,s2,s2} } // s0 s1 s2 uscite { {off,off}, {on,off}, {off,on} } }
// Distributore di merendine autore {"Prof Stefano Salvi"} mealy { immediato input { azione { 100 200 500 Merendina600 Merendina800 }} stati { s0 s100 s200 s300 s400 s500 s600 s700 s800 s900 s1000 s1100 s1200 } output { messaggio { { m0,"Inserisci Moneta" } { m100,"100 - Inserisci Moneta" } { m200,"200 - Inserisci Moneta" } { m300,"300 - Inserisci Moneta" } { m400,"400 - Inserisci Moneta" } { m500,"500 - Inserisci Moneta" } { m600,"600 - Inserisci Moneta o Chiedi merenda" } { m700,"700 - Inserisci Moneta o Chiedi merenda" } { m800,"800 - Chiedi merenda" } { m900,"900 - Chiedi merenda" } { m1000,"1000 - Chiedi merenda" } { m1100,"1100 - Chiedi merenda" } { m1200,"1200 - Chiedi merenda" } } gettoniera { fe, { re "Restituisce moneta"}} merenda { fe {m600 "Merendina da 600 Lire"} { m800 "Merendina da 800 Lire"}} } transizione { // 100 200 500 M600 M800 {s100 s200 s500 s0 s0 } // S0 {s200 s300 s600 s100 s100 } // S100 {s300 s400 s700 s200 s200 } // S200 {s400 s500 s800 s300 s300 } // S300 {s500 s600 s900 s400 s400 } // S400 {s600 s700 s1000 s500 s500 } // S500 {s700 s800 s1100 s0 s600 } // S600 {s800 s900 s1200 s100 s700 } // S700 {s800 s800 s800 s200 s0 } // S800 {s900 s900 s900 s300 s100 } // S900 {s1000 s1000 s1000 s400 s200 } // S1000 {s1100 s1100 s1100 s500 s300 } // S1100 {s1200 s1200 s1200 s600 s400 } // S1200 } uscite { // 100 200 500 M600 M800 // m g m m g m m g m m g m m g m {{m100 fe fe }{m200 fe fe }{m500 fe fe }{m0 fe fe }{m0 fe fe}} // S0 {{m200 fe fe }{m300 fe fe }{m600 fe fe }{m100 fe fe }{m100 fe fe}} // S100 {{m300 fe fe }{m400 fe fe }{m700 fe fe }{m100 fe fe }{m200 fe fe}} // S200 {{m400 fe fe }{m500 fe fe }{m800 fe fe }{m300 fe fe }{m300 fe fe}} // S300 {{m500 fe fe }{m600 fe fe }{m900 fe fe }{m400 fe fe }{m400 fe fe}} // S400 {{m600 fe fe }{m700 fe fe }{m1000 fe fe }{m500 fe fe }{m500 fe fe}} // S500 {{m700 fe fe }{m800 fe fe }{m1100 fe fe }{m0 fe m600}{m600 fe fe}} // S600 {{m800 fe fe }{m900 fe fe }{m1200 fe fe }{m100 fe m600}{m700 fe fe}} // S700 {{m800 re fe }{m800 re fe }{m800 re fe }{m200 fe m600}{m0 fe m800}} // S800 {{m900 re fe }{m900 re fe }{m900 re fe }{m300 fe m600}{m100 fe m800}} // S900 {{m1000 re fe }{m1000 re fe }{m1000 re fe }{m400 fe m600}{m200 fe m800}} // S1000 {{m1100 re fe }{m1100 re fe }{m1100 re fe }{m500 fe m600}{m300 fe m800}} // S1100 {{m1200 re fe }{m1200 re fe }{m1200 re fe }{m600 fe m600}{m400 fe m800}} // S1200 } }
// Riconoscitore di sequenza 101 autore {"Prof Stefano Salvi"} mealy { alfabeto { "01" } stati { si s1 s10 } output { risultato { no { si,"Stringa riconosciuta" } } } transizione { // 0 1 {si s1 } // Si {s10 si } // S1 {si si } // S10 } uscite { // 0 1 {{no} {no}} // si {{no} {no}} // s1 {{no} {si}} // s10 } }