示例#1
0
        /// <summary>
        /// hace correr el algoritmo
        /// </summary>
        public void RYA()
        {
            EstructuraDatos ed = this.creaEstructuraDatos();

            this.calculaSolucionInicial();
            T o = this.calculaNodoInicial();

            while (!this.fin(o, ed))
            {
                T[] hijos = this.expandir(o);
                for (int i = 0; i < hijos.Length; i++)
                {
                    if (this.esMejorCota(hijos[i]))
                    {
                        if (this.esSolucion(hijos[i]))
                        {
                            this.actualizaSolucion(hijos[i]);
                            this.eliminaNodos(hijos[i], ed);
                        }
                        else
                        {
                            ed.añade(hijos[i]);
                        }
                    }
                }
                if (ed.esVacia())
                {
                    o = null;
                }
                else
                {
                    o = ed.obtener();
                }
            }
        }
示例#2
0
        static void Main()
        {
            try
            {
                Conexion oConexion = new Conexion();

                if ((Conexion.company != null) && (Conexion.company.Connected))
                {
                    Conexion.application.StatusBar.SetText("Verificando estructura de datos del AddOn...", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None);
                    EstructuraDatos oEstructuraDatos = new EstructuraDatos();
                    Conexion.application.StatusBar.SetText("Verificación completada.", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None);

                    GC.KeepAlive(oConexion);
                    Application.Run();
                }
                else
                {
                    MessageBox.Show("No se pudo obtener la compañía desde la sesión actual, reinicie la aplicación. ", "No se pudo iniciar AddOn Mobile");
                    Application.Exit();
                }

                Application.Run();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Se ha producido un error que impidió la ejecución de la aplicación: " + ex.Message, "No se pudo iniciar AddOn Mobile");
            }
        }
示例#3
0
 /// <summary>
 /// corta el algoritmo cuando se llege al fin.
 /// Si o es igual a null retorna cierto
 /// </summary>
 /// <param name="o"></param>
 /// <param name="ed"></param>
 /// <returns></returns>
 public abstract bool fin(T o, EstructuraDatos ed);
示例#4
0
 /// <summary>
 /// elimina los nodos de la estructura de datos
 /// </summary>
 /// <param name="o"></param>
 /// <param name="ed"></param>
 public abstract void eliminaNodos(T o, EstructuraDatos ed);