Exemple #1
0
 private static void enviarAmbulancia(Simulacion simulacion, int i, Double TA, Char codigo)
 {
     simulacion.STOA[i]         += simulacion.T - simulacion.ITOA[i];
     simulacion.TPSA[i].tiempo   = simulacion.T + TA;
     simulacion.TPSA[i].codigo   = codigo;
     simulacion.TPSA[i].asignado = true;
 }
Exemple #2
0
        private static void verificarYEnviarAmbulancia(Simulacion simulacion, Double TA, Char codigo)
        {
            if ((simulacion.NSR + simulacion.NSA) <= simulacion.TPSA.Length)
            {
                int i = buscarAmbulanciaLibre(simulacion.TPSA);

                if (i != -1)
                {
                    enviarAmbulancia(simulacion, i, TA, codigo);
                }
            }
            else
            {
                simulacion.SLLC += simulacion.T;
            }
        }
Exemple #3
0
        public static void llegadaLlamado(Simulacion simulacion)
        {
            int    i;
            Double IA     = 0;
            Double TAR    = 0;
            Double TAA    = 0;
            Double TAV    = 0;
            Random random = new Random();
            double r      = random.NextDouble();

            simulacion.T    = simulacion.TPLL;
            IA              = Funciones.IA();
            simulacion.TPLL = simulacion.T + IA;

            if (r <= 0.12)
            {
                TAR = Funciones.TAR();
                simulacion.NSR++;
                verificarYEnviarAmbulancia(simulacion, TAR, 'R');
            }
            else if (r <= 0.33)
            {
                TAA = Funciones.TAA();
                simulacion.NSA++;
                verificarYEnviarAmbulancia(simulacion, TAA, 'A');
            }
            else
            {
                simulacion.NSV++;
                if (simulacion.NSV <= simulacion.TPSV.Length)
                {
                    i = Events.buscarVehiculoLibre(simulacion.TPSV);
                    if (i != -1)
                    {
                        simulacion.STOV[i] += simulacion.T - simulacion.ITOV[i];
                        TAV = Funciones.TAV();
                        simulacion.TPSV[i].asignado = true;
                        simulacion.TPSV[i].tiempo   = simulacion.T + TAV;
                    }
                }
                else
                {
                    simulacion.SLLC += simulacion.T;
                }
            }
        }
Exemple #4
0
        public static void salidaVehiculo(Simulacion simulacion, int i)
        {
            Double TAV = 0;

            simulacion.NSV--;

            if (simulacion.NSV >= simulacion.TPSV.Length)
            {
                simulacion.SSC             += simulacion.T;
                TAV                         = Funciones.TAV();
                simulacion.TPSV[i].tiempo   = simulacion.T + TAV;
                simulacion.TPSV[i].asignado = true;
            }
            else
            {
                simulacion.TPSV[i].tiempo = Double.MaxValue;
                simulacion.ITOV[i]        = simulacion.T;
            }
        }
Exemple #5
0
        public static void salidaAmbulancia(Simulacion simulacion, int i)
        {
            Double TA  = 0;
            Double TAR = 0;
            Double TAA = 0;

            switch (simulacion.TPSA[i].codigo)
            {
            case 'R':
                simulacion.NSR--;
                break;

            case 'A':
                simulacion.NSA--;
                break;
            }

            if (simulacion.NSA + simulacion.NSR >= simulacion.TPSA.Length)
            {
                simulacion.SSC += simulacion.T;

                if (simulacion.cantidadRojos() >= simulacion.cantidadAmarillos())
                {
                    TAR = Funciones.TAR();
                    enviarAmbulancia(simulacion, i, TA, 'R');
                }
                else
                {
                    TAA = Funciones.TAA();
                    enviarAmbulancia(simulacion, i, TA, 'A');
                }
            }
            else
            {
                simulacion.TPSA[i].tiempo = Double.MaxValue;
                simulacion.ITOA[i]        = simulacion.T;
            }
        }