Esempio n. 1
0
    private void CalcularReaccion()
    {
        Cantidad = cantidadInicial;

        LlenarTablaExperimental();

        Reaccion d;

        CalcularReaccion(out d, Cantidad);
        DatosReaccion  = d;
        TiempoReaccion = DatosReaccion.TiempoOxidacion;

        for (int i = 0; i < Reacciones.Count; i++)
        {
            Reacciones[i].TiempoReaccion = TiempoReaccion;

            if (Reacciones[i].GetType() == typeof(ReaccionCantidadLiquido))
            {
                reaccionCantidadAcido = (ReaccionCantidadLiquido)Reacciones[i];
            }

            if (Reacciones[i].GetType() == typeof(ReaccionCambioTamanho))
            {
                reaccionCantidadAzufre = (ReaccionCambioTamanho)Reacciones[i];
            }
        }

        reaccionCantidadAcido.CambiarCantidadInicial(DatosReaccion.CantidadInicialAcido);
        reaccionCantidadAcido.CantidadFinal = DatosReaccion.CantidadFinalAcido;

        reaccionCantidadAzufre.CantidadInicial = DatosReaccion.CantidadInicialAzufre;
        reaccionCantidadAzufre.CantidadFinal   = DatosReaccion.CantidadFinalAzufre;

        reaccionCantidadAzufre.gameObject.SetActive(false);
    }
Esempio n. 2
0
    public void CalcularReaccion(out Reaccion datos, float cantidadAcido)
    {
        Assert.IsTrue(cantidadAcido >= 10f, "La cantidad de acido inicial no debe ser menor a 10 ml.");

        Assert.IsTrue(cantidadAcido <= 150f, "La cantidad de acido inicial no debe ser mayor a 150 ml.");

        datos = new Reaccion(cantidadAcido);

        for (int i = 1; i < TablaExperimental.Count; i++)
        {
            if (cantidadAcido == TablaExperimental [i].CantidadInicialAcido)
            {
                datos = TablaExperimental [i];
                break;
            }
            else if (TablaExperimental[i].CantidadInicialAcido > cantidadAcido &&
                     TablaExperimental[i - 1].CantidadFinalAcido < cantidadAcido)
            {
                Reaccion datosMin = TablaExperimental[i - 1];
                Reaccion datosMax = TablaExperimental[i];

                float rel = Mathf.Abs(datos.CantidadInicialAcido - datosMin.CantidadInicialAcido) / Mathf.Abs(datosMax.CantidadFinalAcido - datosMin.CantidadInicialAcido);
                datos.TiempoOxidacion     = rel * (datosMax.TiempoOxidacion - datosMin.TiempoOxidacion) + datosMin.TiempoOxidacion;
                datos.CantidadFinalAzufre = rel * (datosMax.CantidadFinalAzufre - datosMin.CantidadFinalAzufre) + datosMin.CantidadFinalAzufre;
                datos.CantidadFinalAcido  = rel * (datosMax.CantidadFinalAcido - datosMin.CantidadFinalAcido) + datosMin.CantidadFinalAcido;

                DatosReaccion = datos;

                break;
            }
        }
    }
Esempio n. 3
0
        public Respuesta <Dato> Reaccionar(TipoReaccion tipo, long referencia, Reaccion reaccion, long?referenciaComentario)
        {
            JObject prms = new JObject();

            prms.Add("tipo", tipo.GetStringValue());
            prms.Add("referencia", referencia);
            prms.Add("reaccion", reaccion.GetStringValue());
            prms.Add("ref_comentario", referenciaComentario);

            string rsp = base.ProcesarOperacion(TipoOperacion.Servicio.GetStringValue(),
                                                NOMBRE_REACCIONAR,
                                                DOMINIO_OPERACION,
                                                prms.ToString(Formatting.None));
            var entityRsp = JsonConvert.DeserializeObject <YRespuesta <YDato> >(rsp);

            return(EntitiesMapper.GetRespuestaFromEntity <Dato, YDato>(entityRsp, EntitiesMapper.GetModelFromEntity <Dato, YDato>(entityRsp.Datos)));
        }
Esempio n. 4
0
    public void LlenarTablaExperimental()
    {
        TablaExperimental = new List <Reaccion> ();

        double[] acidoAntes   = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150 };
        double[] tiempos      = { 1, 2.2, 2.9, 3.7, 4.6, 5.1, 5.9, 6.5, 7.9, 8.4, 9.6, 9.7, 9.7, 9.7, 9.7 };
        double[] azufre       = { 2.3, 2.1, 1.85, 1.73, 1.61, 1.54, 1.32, 0.9, 0, 0, 0, 0, 0, 0, 0 };
        double[] acidoDespues = { 0, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 40, 50, 60, 70 };


        for (int i = 0; i < tiempos.Length; i++)
        {
            Reaccion r = new Reaccion();
            r.CantidadInicialAzufre = 2.4f;
            r.CantidadInicialAcido  = (float)acidoAntes [i];
            r.TiempoOxidacion       = (float)tiempos [i] * 60f;
            r.CantidadFinalAzufre   = (float)azufre[i];
            r.CantidadFinalAcido    = (float)acidoDespues[i];

            TablaExperimental.Add(r);
        }
    }