none
Como puedo crear una prueba de frecuencias, para un listbox y me muestre el rango en que se encuentra? en c# RRS feed

  • Pregunta

  • Buenas tardes, necesito ayuda, estoy haciendo un programa en c#, donde tengo un  textbox que da respuesta en decimales (ya programado). con esos datos quiero hacer una prueba de frecuencias que va desde. 
     0 - 0.2

    0.2 - 0.4 

    0.4 - 0.6
    0.6 - 0.8 
    0.8 - 1

    de antemano muchas gracias!

    datos del listbox

    :

    -- double m1, a1, c1, xo1, aleatorio1, W;
                double Promedio_total = 0;
                double final;
                double lol = 1;
                double contador  = 0;
                double fn = 1; 
                m1 = Convert.ToDouble(textBox1.Text);
                a1 = Convert.ToDouble(textBox2.Text);
                c1 = Convert.ToDouble(textBox3.Text);
                xo1 = Convert.ToDouble(textBox4.Text);

                aleatorio1 = xo1;

                do
                {
                    aleatorio1 = (aleatorio1 * a1 + c1) % m1;
                    W = aleatorio1 / m1;
                    //  listprom.Items.Add(W);
                    Promedio_total = Promedio_total + aleatorio1;


                }
                while (aleatorio1 != xo1);
                {
                    Promedio_total = Promedio_total / m1;


                    lol = ((Promedio_total - 0.5) * Math.Sqrt(m1));
                    lol = lol / (Math.Sqrt(1 / 12));

                    

                    //iniciando ciclo if 
                    if (lol < 1.96)
                    {

                    }
                    else
                    {
                        final = ((lol - 1) / 2);


                    }

                } 
            }

    • Editado Daphne_S lunes, 10 de septiembre de 2018 16:43
    lunes, 10 de septiembre de 2018 16:13

Respuestas

  • okey,

    El problema que tienes ahí, es que un listbox almacena datos como object, en este caso, tu quieres evaluarlo como double, lo que podrías haces es iterar los objetos del listbox, convertirlos a double, y simplemente compararlos, por ejemplo:

    //Obtenemos los datos del listbox como doubles
    foreach (var item in listBox1.Items.Cast<double>())
    {
        var resultado = GetFrecuencia(item);
    }
    
    //Funcion para comprobar cada item
    string GetFrecuencia(double valor)
    {
      if (valor >= 0 && valor < 0.2)
        return "F1";
      else if (valor >= 0.2 && valor < 0.4)
        return "F2";
      else if (valor >= 0.4 && valor < 0.6)
        return "F3";
      else if (valor >= 0.6 && valor < 0.8)
        return "F4";
      else if (valor >= 0.1 && valor < 1)
        return "F5";
      else
        return "Error";
    }

    Cualquier duda nos comentas

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    lunes, 10 de septiembre de 2018 17:09

Todas las respuestas

  • Buenas,

    A que te refieres por una prueba de frecuencias? 

    No entiendo el concepto...podrías explicarlo más?

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    lunes, 10 de septiembre de 2018 16:35
  • Buenas, claro. 

    mediante los datos que me aparecen en un listbox en el que me genera numeros decimales. se evalua de acuerdo a rangos desde: 

     0 - 0.2 ..... F1

    0.2 - 0.4 ... F2
    0.4 - 0.6..... F3
    0.6 - 0.8 ..... F4
    0.8 - 1. ..... F5

    con los datos ya obtenidos del listbox se realiza la prueba de frecuencias que consiste en ver a que intervalo pertenece. 

    por ejemplo: 0.27, pertenece a F2





    • Editado Daphne_S lunes, 10 de septiembre de 2018 16:43
    lunes, 10 de septiembre de 2018 16:42
  • okey,

    El problema que tienes ahí, es que un listbox almacena datos como object, en este caso, tu quieres evaluarlo como double, lo que podrías haces es iterar los objetos del listbox, convertirlos a double, y simplemente compararlos, por ejemplo:

    //Obtenemos los datos del listbox como doubles
    foreach (var item in listBox1.Items.Cast<double>())
    {
        var resultado = GetFrecuencia(item);
    }
    
    //Funcion para comprobar cada item
    string GetFrecuencia(double valor)
    {
      if (valor >= 0 && valor < 0.2)
        return "F1";
      else if (valor >= 0.2 && valor < 0.4)
        return "F2";
      else if (valor >= 0.4 && valor < 0.6)
        return "F3";
      else if (valor >= 0.6 && valor < 0.8)
        return "F4";
      else if (valor >= 0.1 && valor < 1)
        return "F5";
      else
        return "Error";
    }

    Cualquier duda nos comentas

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    lunes, 10 de septiembre de 2018 17:09
  • muchisimas gracias!

    lunes, 10 de septiembre de 2018 17:27