Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
        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
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public static void Resolver(int[] lista)
        {
            Ejercicio005.Resolver(lista);

            Console.WriteLine();
            Secuencia resultado = SumaMaxima(lista);

            MostrarResultado(lista, resultado);
        }
Ejemplo n.º 9
0
        public static void Resolver(int[] lista)
        {
            Secuencia resultado = SumaMaximaIterativo(lista);

            MostrarResultado(lista, resultado);

            Console.WriteLine();
            resultado = SumaMaxima(lista);
            MostrarResultado(lista, resultado);
        }
Ejemplo n.º 10
0
 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));
     }
 }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
 public ActionResult Create(Secuencia secuencia)
 {
     //try
     //{
     // TODO: Add insert logic here
     servicio.Insertar(secuencia);
     return(RedirectToAction("Index", "Home"));
     //}
     //catch
     //{
     //    return View(secuencia);
     //}
 }
Ejemplo n.º 13
0
 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);
     }
 }
Ejemplo n.º 14
0
 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;
     }
 }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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));
            }
        }
Ejemplo n.º 18
0
        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...");
            }
        }
Ejemplo n.º 19
0
        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;
        }
Ejemplo n.º 20
0
 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;
 }
Ejemplo n.º 21
0
        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;
        }
Ejemplo n.º 22
0
        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;
        }
Ejemplo n.º 23
0
 public static Secuencia Mayor2(Secuencia a, Secuencia b) {
     return (b.suma > a.suma) ? b : a;
 }
Ejemplo n.º 24
0
 public static Secuencia Suma(Secuencia inf, Secuencia sup) {
     return new Secuencia(inf.inicio,
                          (sup.inicio + sup.longitud) - inf.inicio,
                          inf.suma + sup.suma);
 }
Ejemplo n.º 25
0
 public static Secuencia Mayor2(Secuencia a, Secuencia b)
 {
     return((b.suma > a.suma) ? b : a);
 }
Ejemplo n.º 26
0
 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);
     }
 }
Ejemplo n.º 27
0
 public static Secuencia Suma(Secuencia inf, Secuencia sup)
 {
     return(new Secuencia(inf.inicio,
                          (sup.inicio + sup.longitud) - inf.inicio,
                          inf.suma + sup.suma));
 }
Ejemplo n.º 28
0
 public void Insertar(Secuencia secuencia)
 {
     entidadSecuencia.Secuencias.Add(secuencia);
     entidadSecuencia.SaveChanges();
 }
Ejemplo n.º 29
0
 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);
 }
Ejemplo n.º 30
0
        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...");
            }
        }