private string PrimerMovimientoResta(string cadena, int pos) { int i = pos; resta.Cabezal.Posicion = i; List <char> cinta = cadena.ToCharArray().ToList(); //Movimiento Inicial resta.Movimiento(cinta[i].ToString(), 0); cinta[i] = resta.Cabezal.NuevoCaracter; i++; resta.Cabezal.NuevoCaracter = cinta[i]; resta.Cabezal.Posicion = i; //Escribir la cadena de salida string result = string.Empty; foreach (var element in cinta) { result += element.ToString(); } this.main = resta.Cabezal; this.finalizado = resta.Finalizado; this.error = resta.Finalizado; return(result); }
public Multiplicacion(string[,] tablaDeTransiciones) { this.transiciones = tablaDeTransiciones; this.error = false; this.finalizado = false; this.cabezal = new Cabezal(); }
private string PrimerMovimientoPalindromo(string cadena, int pos) { int i = pos; p.Cabezal.Posicion = i; List <char> cinta = cadena.ToCharArray().ToList(); //Movimiento Inicial p.Movimiento(cinta[i].ToString(), 0); cinta[i] = p.Cabezal.NuevoCaracter; i++; p.Cabezal.NuevoCaracter = cinta[i]; p.Cabezal.Posicion = i; //Escribir la cadena de salida string result = string.Empty; foreach (var element in cinta) { result += element.ToString(); } //Alieneación de cabezal this.main = p.Cabezal; this.finalizado = p.Finalizado; this.error = p.Error; return(result); }
public MaquinaTuring() { main = new Cabezal(); p = new Palindromos(new string[, ] { { " ", "a", "b", "c", "β" }, { "-> q0", "q1,β,R", "q2,β,R", "q3,β,R", "q11,β,L" }, { "q1", "q4,a,R", "q4,b,R", "q4,c,R", "q11,β,L" }, { "q2", "q5,a,R", "q5,b,R", "q5,c,R", "q11,β,L" }, { "q3", "q6,a,R", "q6,b,R", "q6,c,R", "q11,β,L" }, { "q4", "q4,a,R", "q4,b,R", "q4,c,R", "q7,β,L" }, { "q5", "q5,a,R", "q5,b,R", "q5,c,R", "q8,β,L" }, { "q6", "q6,a,R", "q6,b,R", "q6,c,R", "q9,β,L" }, { "q7", "q10,β,L", "-", "-", "-" }, { "q8", "", "q10,β,L", "-", "-" }, { "q9", "-", "-", "q10,β,L", "-" }, { "q10", "q10,a,L", "q10,b,L", "q10,c,L", "q0,β,R" }, { "* q11", "-", "-", "-", "-" } }); copy = new CopiaPatrones(new string[, ] { }); mult = new Multiplicacion(new string[, ] { }); sum = new Suma(new string[, ] { }); resta = new Resta(new string[, ] { }); finalizado = false; error = false; }
public CopiaPatrones(string[,] tablaDeTransiciones) { this.transiciones = tablaDeTransiciones; this.error = false; this.finalizado = false; this.cabezal = new Cabezal(); }
public Palindromos(string[,] tablaDeTransiciones) { this.transiciones = tablaDeTransiciones; this.error = false; this.finalizado = false; this.cabezal = new Cabezal(); }
private string MovimientoResta(string cadena, int pos) { int i = pos; resta.Cabezal.Posicion = i; List <char> cinta = cadena.ToCharArray().ToList(); resta.Cabezal.NuevoCaracter = cinta[i]; resta.Cabezal.Posicion = i; resta.Movimiento(cinta[i].ToString(), resta.Cabezal.Estado); cinta[i] = resta.Cabezal.NuevoCaracter; //Movimiento del cabezal if (resta.Cabezal.Direccion == 0) { if (i == 0) { cinta.Insert(0, 'β'); } else { i--; resta.Cabezal.Posicion = i; } } if (resta.Cabezal.Direccion == 1) { if (i == cinta.Count - 1) { cinta.Add('β'); } i++; resta.Cabezal.Posicion = i; } //Escribir la cadena de salida string result = string.Empty; foreach (var element in cinta) { result += element.ToString(); } //Asignación de Cabezales this.main = resta.Cabezal; this.finalizado = resta.Finalizado; this.error = resta.Error; return(result); }