private void ConfigurarTransicoes() { Console.WriteLine("Nessa etapa você deve informar para cada estado o símbolo de entrada e o estado de transição. \nCaso tenha terminado o mapeamento ou não desejas mapear para o estado informado, digite proximo."); Dictionary <string, Dictionary <string, string> > transicoes = new Dictionary <string, Dictionary <string, string> >(); foreach (string estado in Estados) { Dictionary <string, string> mapaEstado = new Dictionary <string, string>(); Console.WriteLine($"Para o estado: {estado}, digite o símbolo de entrada com o estado de transição separado por vírgula.\n Após aperte enter. Ex: Letra,estado"); string mapeamento = ""; do { mapeamento = Console.ReadLine(); if (!mapeamento.Contains(",")) { Console.WriteLine("Entrada não está no formato especificado."); continue; } string[] vetorLeitura = mapeamento.Split(","); if (!Alfabeto.Contains(vetorLeitura[0]) || !Estados.Contains(vetorLeitura[1])) { Console.WriteLine("Entrada não está no alfabeto cadastrado ou estado informado não foi cadastrado previamente. Verfique e tente novamente."); continue; } mapaEstado.Add(vetorLeitura[0], vetorLeitura[1]); } while (!mapeamento.Equals("proximo")); transicoes.Add(estado, mapaEstado); } Transicoes = transicoes; }
private void ConfigurarEstadoInicial() { string leitura; do { Console.WriteLine("Insira qual estado será o início - Após pressione ENTER"); leitura = Console.ReadLine(); } while (!Estados.Contains(leitura)); EstadoInicial = leitura; }
public string AgregarEstado(Estado e) { string msg = ""; if (!Estados.Contains(e)) { Estados.Add(e); msg = "Ok"; } else { msg = "Estado existente"; } return(msg); }
public string EliminarEstado(Estado e) { string msg = ""; if (Estados.Contains(e)) { ListaTransiciones.RemoveAll(t => t.q.Equals(e.Etiqueta) || t.p.Equals(e.Etiqueta)); Estados.Remove(e); msg = "Ok"; } else { msg = "Error al eliminar el estado"; } return(msg); }