Пример #1
0
 public static void Prijelaz(TS automat, FunkcijePrijelaza prijelaz)
 {
     writer.WriteLine(prijelaz);
 }
Пример #2
0
        private static FunkcijePrijelaza GenerirajPrijelazeZaRedak(string redak)
        {
            FunkcijePrijelaza funkcija = new FunkcijePrijelaza();

            String[] polje     = redak.Split(new String[] { "->" }, StringSplitOptions.None);
            String   lijeviDio = polje[0];
            String   desniDio  = polje[1];

            String[] dvojka = lijeviDio.Split(',');

            Stanje    trenutnoStnaje = null;
            ZnakTrake znakTrake      = null;

            foreach (Stanje st in TS.SkupStanja)
            {
                if (st.Ime == dvojka[0])
                {
                    trenutnoStnaje = st;
                }
            }

            foreach (ZnakTrake zn in TS.SkupZnakovaTrake)
            {
                if (zn.Znak == dvojka[1])
                {
                    znakTrake = zn;
                }
            }

            String[] trojka = desniDio.Split(',');

            Stanje    novoStanje    = null;
            ZnakTrake noviZnakTrake = null;


            foreach (Stanje st in TS.SkupStanja)
            {
                if (st.Ime == trojka[0])
                {
                    novoStanje = st;
                }
            }

            foreach (ZnakTrake zn in TS.SkupZnakovaTrake)
            {
                if (zn.Znak == trojka[1])
                {
                    noviZnakTrake = zn;
                }
            }

            if (trojka[2] == "L")
            {
                funkcija.Pomak = PomakGlave.Lijevo;
            }
            else
            {
                funkcija.Pomak = PomakGlave.Desno;
            }

            funkcija.TrenutnoStanje  = trenutnoStnaje;
            funkcija.ZnakNaTraci     = znakTrake;
            funkcija.SljedeceStanje  = novoStanje;
            funkcija.ZnakNaTraciNovi = noviZnakTrake;

            return(funkcija);
        }