public Inicial() { InitializeComponent(); //this.cARGARToolStripMenuItem.Click += new System.EventHandler(this.button6_Click); pincel = new SolidBrush(Color.Red); panel_quintupla.Visible = false; panel_tabla.Visible = false; <<<<<<< HEAD automata = new Clases.Automata(); prueba = new Clases.Estado(); timer1.Enabled = true; p = new Rectangle(50, 50, 50, 50); b1 = false; ======= panel_diagrama.Visible = false; >>>>>>> origin/master crearAutomata(); }
public Transicion(Clases.Estado origen, String simbolo, Clases.Estado destino) { this.origen = origen; this.simbolo = simbolo; this.destino = destino; this.doble = false; this.auto = false; if (origen.nombre.Equals(destino.nombre)) { this.auto = true; } }
private void agregar_transicion_button_Click(object sender, EventArgs e) { String origen = transicion_origen_comboBox.Text; String caracter = transicion_caracter_comboBox.Text; String destino = transicion_destino_comboBox.Text; Clases.Estado d = new Clases.Estado(); Clases.Estado o = new Clases.Estado(); //buscar destino for (int i = 0; i < automata.listEstados.Count; i++) { if (automata.listEstados.ElementAt(i).nombre.Equals(destino)) { d = automata.listEstados.ElementAt(i); } } //buscar origen for (int i = 0; i < automata.listEstados.Count; i++) { if (automata.listEstados.ElementAt(i).nombre.Equals(origen)) { o = automata.listEstados.ElementAt(i); } } //todas las transiciones juntas LinkedList<Clases.Transicion> todasT = new LinkedList<Clases.Transicion>(); for (int i = 0; i < automata.listEstados.Count; i++) { for (int j = 0; j < automata.listEstados.ElementAt(i).listTransiciones.Count; j++) { todasT.AddLast(automata.listEstados.ElementAt(i).listTransiciones.ElementAt(j)); } } Clases.Transicion t = new Clases.Transicion(o, caracter, d); for (int i = 0; i < todasT.Count; i++) { if (todasT.ElementAt(i).origen.nombre.Equals(d.nombre)) { t.doble = true; } } //agregar la transiccion o.listTransiciones.AddLast(t); }
private void agregar_estado_button_Click(object sender, EventArgs e) { String estado = "Q" + automata.listEstados.Count; estados_textBox.Enabled = false; Clases.Estado es = new Clases.Estado(estado); if (automata.listEstados.Count>0) { es.x = automata.listEstados.Last().x + 150; } automata.listEstados.AddLast(es); reiniciarComboxEstados(transicion_origen_comboBox); reiniciarComboxEstados(transicion_destino_comboBox); reiniciarComboxEstados(aceptador_comboBox); reiniciarComboxEstados(inicial_comboBox); estados_textBox.Text = automata.listEstados.Count + ""; }
public static Clases.Automata reverso(Clases.Automata auto) { Clases.Automata nuevo= new Clases.Automata(); int cont=0; //vamos aver si tiene mas aceptadores for (int i = 0; i <auto.listEstados.Count; i++) { if(auto.listEstados.ElementAt(i).aceptador) { cont++; } } if(cont>1)//tiene mas aceptadores creamos un nuevo estado y todos loa ceptadores los mandamos por vacias a ese nuevo { Clases.Estado estadonuevo= new Clases.Estado("nuevo", true); for (int i = 0; i <auto.listEstados.Count; i++) { if(auto.listEstados.ElementAt(i).aceptador) { auto.listEstados.ElementAt(i).listTransiciones.AddLast(new Clases.Transicion(auto.listEstados.ElementAt(i).nombre,"-",estadonuevo.nombre)); auto.listEstados.ElementAt(i).aceptador=false; } } auto.listEstados.AddLast(estadonuevo); nuevo=cambiar(auto); } else { nuevo=cambiar(auto); } return nuevo; }
public static void completar(Clases.Automata automata) { Clases.Estado trampa= new Clases.Estado("Trampa"); for (int p = 0; p < automata.alfabeto.Count; p++) { trampa.listTransiciones.AddFirst(new Clases.Transicion("trampa", automata.alfabeto.ElementAt(p), "trampa")); } automata.listEstados.AddLast(trampa); for (int i = 0; i < automata.listEstados.Count;i++) { if(automata.listEstados.ElementAt(i).listTransiciones.Count!=automata.alfabeto.Count) { Boolean estado = true; for (int j = 0; j < automata.alfabeto.Count; j++) { for (int k = 0; k < automata.listEstados.ElementAt(i).listTransiciones.Count; k++) { if(automata.alfabeto.ElementAt(j).Equals(automata.listEstados.ElementAt(i).listTransiciones.ElementAt(k).simbolo)) { estado = false; break; } } if (estado == true) { automata.listEstados.ElementAt(i).listTransiciones.AddLast(new Clases.Transicion(automata.listEstados.ElementAt(i).nombre, automata.alfabeto.ElementAt(j), trampa.nombre)); } } } } }
public void creaEstado(MouseEventArgs e) { this.mouseX = e.X; this.mouseY = e.Y; bool ban = false; for (int i = 0; i < automata.listEstados.Count; i++) { if (mouseX >= automata.listEstados.ElementAt(i).x && mouseX <= automata.listEstados.ElementAt(i).x + automata.listEstados.ElementAt(i).ancho && mouseY >= automata.listEstados.ElementAt(i).y && mouseY <= automata.listEstados.ElementAt(i).y + automata.listEstados.ElementAt(i).alto) { ban = true; break; } } if (!ban) { String estado = "Q" + automata.listEstados.Count; estados_textBox.Enabled = false; Clases.Estado es = new Clases.Estado(estado); es.x = e.X; es.y = e.Y; automata.listEstados.AddLast(es); } }
private void button3_Click(object sender, EventArgs e) { String estado = "Q" + automata.listEstados.Count; Clases.Estado es = new Clases.Estado(estado); if (automata.listEstados.Count > 0) { es.x = automata.listEstados.Last().x + 150; } automata.listEstados.AddLast(es); reiniciarComboxEstados(destino_tabla_comboBox); reiniciarComboxEstados(origen_tabla_comboBox); reiniciarComboxEstados(tabla_aceptadores_comboBox); reiniciarComboxEstados(tabla_inicial_comboBox); estados_textBox.Text = automata.listEstados.Count + ""; cargartabla(); }