public static Secuencia SumaMaximaIterativo(int[] lista) { Secuencia result = new Secuencia(-1, 0, 0); if(lista.Length > 1) { Secuencia aux = new Secuencia(); result.inicio = 0; result.longitud = 1; result.suma = lista[0]; for(int i = 0; i < lista.Length; i++) { aux.inicio = i; aux.longitud = 0; aux.suma = 0; for(int j = i; j < lista.Length; j++) { aux.longitud++; aux.suma += lista[j]; if(aux.suma > result.suma) { result = aux; } } } } else if(lista.Length == 1) { result.inicio = 0; result.longitud = 1; } return result; }
public static Resultado SumaMaxima(int[] lista, int inf, int sup) { Resultado r = new Resultado(); if (sup == inf) { r.total = lista[sup]; r.maxIzq = new Secuencia(sup, 1, lista[sup]); r.maxDer = new Secuencia(sup, 1, lista[sup]); r.max = new Secuencia(sup, 1, lista[sup]); } else if (inf < sup) { int mitad = (inf + sup) / 2; Resultado i = SumaMaxima(lista, inf, mitad); Resultado d = SumaMaxima(lista, mitad + 1, sup); Secuencia totalIzq = new Secuencia(inf, mitad + 1 - inf, i.total); Secuencia totalDer = new Secuencia(mitad + 1, sup - mitad, d.total); r.total = i.total + d.total; r.maxIzq = Mayor2(i.maxIzq, Suma(totalIzq, d.maxIzq)); r.maxDer = Mayor2(d.maxDer, Suma(i.maxDer, totalDer)); r.max = Mayor3(d.max, i.max, Suma(i.maxDer, d.maxIzq)); } return(r); }
public void Create(Tercero entity) { try { SiinErpContext context = new SiinErpContext(); using (var tran = context.Database.BeginTransaction()) { Secuencia entitySec = context.Secuencia.FirstOrDefault(x => x.Prefijo.Equals(entity.TipoTercero) && x.IdEmpresa == entity.IdEmpresa); entitySec.NoSecuencia++; context.SaveChanges(); entity.CodTercero = Util.GetPrefijoSecuencia(entitySec.Prefijo, entitySec.NoSecuencia, entitySec.Longitud); entity.NombreBusqueda = entity.CodTercero + " - " + entity.NitCedula + " - " + entity.NombreTercero; entity.FechaCreacion = DateTimeOffset.Now; context.Terceros.Add(entity); context.SaveChanges(); tran.Commit(); } } catch (Exception ex) { errorBusiness.Create("CreateTercero", ex.Message, null); throw; } }
private void GuardarRutina(RutinaViewModels viewModel) { //var Cliente = new Cliente //{ // RazonSocial = viewModel.RazonSocial, //}; // guarar lciente var Rutina = new Rutina { FechaInicio = viewModel.FechaInicio, FechaFin = viewModel.FechaFin, //SeguimientoId = Cliente.Id, }; // guarda venta foreach (var item in viewModel.Detalle) { var VentaProducto = new Secuencia { RutinaId = Rutina.Id, EjercicioId = item.EjercicioId, Dia = item.Dia, Serie = item.Serie, Repeticiones = item.Repeticion, Orden = item.Orden, }; //guardo } }
public static Secuencia SubsecMayorIterativo(string lista) { Secuencia result = new Secuencia(-1, 0); if (lista.Length > 1) { Secuencia aux = new Secuencia(1, 1); for (int i = 1; i < lista.Length; i++) { if (lista[i - 1] == lista[i]) { aux.longitud++; } else { if (result.longitud < aux.longitud) { result.inicio = aux.inicio; result.longitud = aux.longitud; } aux.inicio = i; aux.longitud = 1; } } } else if (lista.Length == 1) { result.inicio = 0; result.longitud = 1; } return(result); }
// PUT: api/Secuencias/5 public HttpResponseMessage Put([FromBody] Secuencia secuencia) { try { var target = _dbContext.Secuencias.Find(secuencia.ID); if (target == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Secuencia con id=" + secuencia.ID + "no encontrada")); } target.FechaModificacion = DateTime.Now; target.Descripcion = secuencia.Descripcion; target.Nombre = secuencia.Nombre; target.CodigoEjecutable = secuencia.CodigoEjecutable; target.CodigoEstructura = secuencia.CodigoEstructura; _dbContext.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, target)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
public static Secuencia SumaMaximaIterativo(int[] lista) { Secuencia result = new Secuencia(-1, 0, 0); if (lista.Length > 1) { Secuencia aux = new Secuencia(); result.inicio = 0; result.longitud = 1; result.suma = lista[0]; for (int i = 0; i < lista.Length; i++) { aux.inicio = i; aux.longitud = 0; aux.suma = 0; for (int j = i; j < lista.Length; j++) { aux.longitud++; aux.suma += lista[j]; if (aux.suma > result.suma) { result = aux; } } } } else if (lista.Length == 1) { result.inicio = 0; result.longitud = 1; } return(result); }
public static void Resolver(int[] lista) { Ejercicio005.Resolver(lista); Console.WriteLine(); Secuencia resultado = SumaMaxima(lista); MostrarResultado(lista, resultado); }
public static void Resolver(int[] lista) { Secuencia resultado = SumaMaximaIterativo(lista); MostrarResultado(lista, resultado); Console.WriteLine(); resultado = SumaMaxima(lista); MostrarResultado(lista, resultado); }
public static Secuencia Mayor3(Secuencia a, Secuencia b, Secuencia c) { if ((c.suma > a.suma) && (c.suma > b.suma)) { return(c); } else { return(Mayor2(a, b)); } }
public static Secuencia SubsecuenciaMayor(string lista, int inf, int sup) { Secuencia result = new Secuencia(sup, 1); if (inf < sup) { int mitad = (inf + sup) / 2; Secuencia r1 = SubsecuenciaMayor(lista, inf, mitad); Secuencia r2 = SubsecuenciaMayor(lista, mitad + 1, sup); if ((r1.inicio + r1.longitud == r2.inicio) && (lista[r1.inicio] == lista[r2.inicio])) { result.inicio = r1.inicio; result.longitud = r1.longitud + r2.longitud; } else { if (r2.longitud > r1.longitud) { result.inicio = r2.inicio; result.longitud = r2.longitud; } else { result.inicio = r1.inicio; result.longitud = r1.longitud; } if (lista[mitad] == lista[mitad + 1]) { Secuencia r3 = new Secuencia(mitad, 2); for (int i = mitad - 1; (i >= inf) && (lista[mitad] == lista[i]); i--) { r3.inicio--; r3.longitud++; } for (int i = mitad + 2; (i <= sup) && (lista[mitad] == lista[i]); i++) { r3.longitud++; } if (r3.longitud > result.longitud) { result.inicio = r3.inicio; result.longitud = r3.longitud; } } } } return(result); }
public ActionResult Create(Secuencia secuencia) { //try //{ // TODO: Add insert logic here servicio.Insertar(secuencia); return(RedirectToAction("Index", "Home")); //} //catch //{ // return View(secuencia); //} }
public static void MostrarResultado(string víctima, Secuencia resultado) { Console.WriteLine("Víctima: {0}", víctima); if (resultado.inicio != -1) { Console.WriteLine("Secuencia: {0}, {1}, {2}", resultado.inicio, resultado.longitud, víctima.Substring(resultado.inicio, resultado.longitud)); } else { Console.WriteLine("Secuencia: {0}, {1}", resultado.inicio, resultado.longitud); } }
public string GetPrefijoSecuencia(string Prefijo, int IdEmpresa) { try { SiinErpContext context = new SiinErpContext(); Secuencia entitySec = context.Secuencia.FirstOrDefault(x => x.Prefijo.Equals(Prefijo) && x.IdEmpresa == IdEmpresa); string StrSecuencia = Util.GetPrefijoSecuencia(entitySec.Prefijo, entitySec.NoSecuencia + 1, entitySec.Longitud); return(StrSecuencia); } catch (Exception ex) { throw; } }
public static void Resolver() { string víctima = "as222df1111as333df"; Secuencia resultado = SubsecMayorIterativo(víctima); MostrarResultado(víctima, resultado); Console.WriteLine(); resultado = SubsecuenciaMayor(víctima); MostrarResultado(víctima, resultado); Console.WriteLine(); víctima = "as2222df888888df"; resultado = SubsecuenciaMayor(víctima); MostrarResultado(víctima, resultado); }
public static Secuencia SumaMaxima(int[] lista, int inf, int sup) { Secuencia result = new Secuencia(sup, 1, lista[sup]); if (inf < sup) { int mitad = (inf + sup) / 2; Secuencia r1 = SumaMaxima(lista, inf, mitad); Secuencia r2 = SumaMaxima(lista, mitad + 1, sup); if (r1.suma >= r2.suma) { result = r1; } else { result = r2; } Secuencia r3 = r1; int final = r2.inicio + r2.longitud; for (int i = r1.inicio + r1.longitud; i < final; i++) { r3.longitud++; r3.suma += lista[i]; if (r3.suma >= result.suma) { result = r3; } } r3 = r2; final = r1.inicio + r1.longitud; for (int i = r2.inicio - 1; i >= final; i--) { r3.inicio--; r3.longitud++; r3.suma += lista[i]; if (r3.suma >= result.suma) { result = r3; } } } return(result); }
// POST: api/Secuencias public HttpResponseMessage Post([FromBody] Secuencia secuencia) { try { secuencia.FechaCreacion = DateTime.Now; secuencia.FechaModificacion = DateTime.Now; _dbContext.Secuencias.Add(secuencia); _dbContext.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, secuencia.ID)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
public static void MostrarResultado(int[] lista, Secuencia resultado) { Console.WriteLine("Lista: " + lista.Select(x => x.ToString()) .Aggregate((x, xs) => x + " " + xs)); if (resultado.inicio != -1) { IEnumerable <int> sublista = lista.Skip(resultado.inicio) .Take(resultado.longitud); Console.WriteLine("Secuencia: {0}, {1}", resultado.inicio, resultado.longitud); Console.WriteLine("Suma: {0}", sublista.Sum()); Console.WriteLine("Sublista: " + sublista.Select(x => x.ToString()) .Aggregate((x, xs) => x + " " + xs)); } else { Console.WriteLine("No se ha encontrado solución..."); } }
public static Secuencia SubsecuenciaMayor(string lista, int inf, int sup) { Secuencia result = new Secuencia(sup, 1); if(inf < sup) { int mitad = (inf + sup) / 2; Secuencia r1 = SubsecuenciaMayor(lista, inf, mitad); Secuencia r2 = SubsecuenciaMayor(lista, mitad + 1, sup); if((r1.inicio + r1.longitud == r2.inicio) && (lista[r1.inicio] == lista[r2.inicio])) { result.inicio = r1.inicio; result.longitud = r1.longitud + r2.longitud; } else { if(r2.longitud > r1.longitud) { result.inicio = r2.inicio; result.longitud = r2.longitud; } else { result.inicio = r1.inicio; result.longitud = r1.longitud; } if(lista[mitad] == lista[mitad + 1]) { Secuencia r3 = new Secuencia(mitad, 2); for(int i = mitad - 1; (i >= inf) && (lista[mitad] == lista[i]); i--) { r3.inicio--; r3.longitud++; } for(int i = mitad + 2; (i <= sup) && (lista[mitad] == lista[i]); i++) { r3.longitud++; } if(r3.longitud > result.longitud) { result.inicio = r3.inicio; result.longitud = r3.longitud; } } } } return result; }
public static Secuencia SubsecMayorIterativo(string lista) { Secuencia result = new Secuencia(-1, 0); if(lista.Length > 1) { Secuencia aux = new Secuencia(1, 1); for(int i = 1; i < lista.Length; i++) { if(lista[i - 1] == lista[i]) { aux.longitud++; } else { if(result.longitud < aux.longitud) { result.inicio = aux.inicio; result.longitud = aux.longitud; } aux.inicio = i; aux.longitud = 1; } } } else if(lista.Length == 1) { result.inicio = 0; result.longitud = 1; } return result; }
public static Resultado SumaMaxima(int[] lista, int inf, int sup) { Resultado r = new Resultado(); if(sup == inf) { r.total = lista[sup]; r.maxIzq = new Secuencia(sup, 1, lista[sup]); r.maxDer = new Secuencia(sup, 1, lista[sup]); r.max = new Secuencia(sup, 1, lista[sup]); } else if(inf < sup) { int mitad = (inf + sup) / 2; Resultado i = SumaMaxima(lista, inf, mitad); Resultado d = SumaMaxima(lista, mitad + 1, sup); Secuencia totalIzq = new Secuencia(inf, mitad + 1 - inf, i.total); Secuencia totalDer = new Secuencia(mitad + 1, sup - mitad, d.total); r.total = i.total + d.total; r.maxIzq = Mayor2(i.maxIzq, Suma(totalIzq, d.maxIzq)); r.maxDer = Mayor2(d.maxDer, Suma(i.maxDer, totalDer)); r.max = Mayor3(d.max, i.max, Suma(i.maxDer, d.maxIzq)); } return r; }
public static Secuencia SumaMaxima(int[] lista, int inf, int sup) { Secuencia result = new Secuencia(sup, 1, lista[sup]); if(inf < sup) { int mitad = (inf + sup) / 2; Secuencia r1 = SumaMaxima(lista, inf, mitad); Secuencia r2 = SumaMaxima(lista, mitad + 1, sup); if(r1.suma >= r2.suma) { result = r1; } else { result = r2; } Secuencia r3 = r1; int final = r2.inicio + r2.longitud; for(int i = r1.inicio + r1.longitud; i < final; i++) { r3.longitud++; r3.suma += lista[i]; if(r3.suma >= result.suma) { result = r3; } } r3 = r2; final = r1.inicio + r1.longitud; for(int i = r2.inicio - 1; i >= final; i--) { r3.inicio--; r3.longitud++; r3.suma += lista[i]; if(r3.suma >= result.suma) { result = r3; } } } return result; }
public static Secuencia Mayor2(Secuencia a, Secuencia b) { return (b.suma > a.suma) ? b : a; }
public static Secuencia Suma(Secuencia inf, Secuencia sup) { return new Secuencia(inf.inicio, (sup.inicio + sup.longitud) - inf.inicio, inf.suma + sup.suma); }
public static Secuencia Mayor2(Secuencia a, Secuencia b) { return((b.suma > a.suma) ? b : a); }
public static void MostrarResultado(string víctima, Secuencia resultado) { Console.WriteLine("Víctima: {0}", víctima); if(resultado.inicio != -1) { Console.WriteLine("Secuencia: {0}, {1}, {2}", resultado.inicio, resultado.longitud, víctima.Substring(resultado.inicio, resultado.longitud)); } else { Console.WriteLine("Secuencia: {0}, {1}", resultado.inicio, resultado.longitud); } }
public static Secuencia Suma(Secuencia inf, Secuencia sup) { return(new Secuencia(inf.inicio, (sup.inicio + sup.longitud) - inf.inicio, inf.suma + sup.suma)); }
public void Insertar(Secuencia secuencia) { entidadSecuencia.Secuencias.Add(secuencia); entidadSecuencia.SaveChanges(); }
public static Secuencia Mayor3(Secuencia a, Secuencia b, Secuencia c) { if((c.suma > a.suma) && (c.suma > b.suma)) return c; else return Mayor2(a, b); }
public static void MostrarResultado(int[] lista, Secuencia resultado) { Console.WriteLine("Lista: " + lista.Select(x => x.ToString()) .Aggregate((x, xs) => x + " " + xs)); if(resultado.inicio != -1) { IEnumerable<int> sublista = lista.Skip(resultado.inicio) .Take(resultado.longitud); Console.WriteLine("Secuencia: {0}, {1}", resultado.inicio, resultado.longitud); Console.WriteLine("Suma: {0}", sublista.Sum()); Console.WriteLine("Sublista: " + sublista.Select(x => x.ToString()) .Aggregate((x, xs) => x + " " + xs)); } else { Console.WriteLine("No se ha encontrado solución..."); } }