elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Calcular media Aritmética, Geométrica, Armónica.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Calcular media Aritmética, Geométrica, Armónica.  (Leído 8,376 veces)
Ahinoam

Desconectado Desconectado

Mensajes: 25


Fue divertido y estresante hacer el código


Ver Perfil
Calcular media Aritmética, Geométrica, Armónica.
« en: 2 Junio 2016, 21:50 pm »

Buenas, quisiera que me ayudaran para este programa que estoy realizando.

Bueno, estoy realizando un programa para un maestro de probabilidad y estadística, y el encargo fue, realizar un programa que calcule las medias de tendencia central.

Comencé a realizar el código el martes pero me encontré con un problema en la media geométrica, el cual es la raíz cuadra e-nesima osea la n ^ √ , no se como ponerla en el código.


Bueno les dejo lo que tengo, la media aritmética esta correcta, el problema lo ayo en la media geométrica....

El programa lo estoy haciendo en Windows Visual Studio 2008, estoy utilizando Botones, texbox y listbox.

Pd: y si de paso saben hacer la media armónica se los agradeceré.


Código:
Public Class Media_de_tendencias_central
    Dim d As Double = 0
    Dim c As Double = 0
    Dim suma As Double = 0.0
    Dim multi As Double = 0.0
    Dim numero As String

// MEDIA ARITMÉTICA //

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim num As Double
        num = TextBox1.Text
        suma = suma + num
        d = d + 1
        numero = numero & num & " + "
        ListBox1.Items.Add(TextBox1.Text)
        TextBox1.Text = ""
        TextBox1.Focus()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Sorted = True
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim aritmetica As Double
        aritmetica = suma / d
        TextBox2.Text = aritmetica
    End Sub

// MEDIA GEOMÉTRICA //

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim num2 As Double
        num2 = TextBox3.Text
        multi = multi * num2
        c = c + 1
        numero = numero & num2 & " * "
        ListBox2.Items.Add(TextBox3.Text)
        TextBox3.Text = ""
        TextBox3.Focus()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ListBox2.Sorted = True
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Dim geometrica As Double
        geometrica = Math.Sqrt(multi ^ 1 / c)
        TextBox4.Text = geometrica
    End Sub
End Class

y así es como se ve el form




espero y me puedan ayudar.


En línea

FurioMoltisanti

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Calcular media Aritmética, Geométrica, Armónica.
« Respuesta #1 en: 3 Junio 2016, 00:15 am »

Con este vídeo te debería servir: https://www.youtube.com/watch?v=1_VNR-o48wM

En cuanto a la desviación armónica ahora mismo no te puedo ayudar. Suerte.

Un saludo.


En línea

CM2ARY

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Calcular media Aritmética, Geométrica, Armónica.
« Respuesta #2 en: 10 Junio 2016, 02:55 am »

Envíame las formulas Matemáticas bien expresadas y separadas para ver si puedo ayudarte, la Matemática no es mi fuerte pero voy a ver que puedo hacer.
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: Calcular media Aritmética, Geométrica, Armónica.
« Respuesta #3 en: 10 Junio 2016, 16:23 pm »

Primero, cuida tu redacción, esto no tiene sentido:

la raíz cuadra e-nesima

Ahora, la raiz n-ésima es como dices:

\sqrt[n]{x}=x^{1/n}

Ya a partir de ahí puedes trabajar, claro está que tienes que tener cuidado con el trabajo de fracciones y el uso de la aritmética de punto flotante de tu PC, pues puedes producir errores de cálculo, más aun trabajando con datos de probabilidades y estadísticos.

Espero esto te pueda ayudar. Cualquier otra cosa, dilo!

Salu2s
« Última modificación: 10 Junio 2016, 16:27 pm por DarK_FirefoX » En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Calcular media Aritmética, Geométrica, Armónica.
« Respuesta #4 en: 12 Junio 2016, 20:46 pm »

hola

para poner esto:

Código:
 n ^ √ 

en código vb.net es así:

Código
  1. n ^ Math.Sqrt(x)


Por ejemplo esto :

25 ^ √12

Se podría así:

Código
  1. 25 ^ Math.Sqrt(12)

y devuelve esto:

Código:
69599,5195898361




Espero sirva..

Creo que está todo bien, si eso comentais y corrijo.



Código
  1. Option Strict On
  2.  
  3. Public Class Form1
  4.    Dim lstValorMedAritmetica As New List(Of Double) 'Variable para los valores de la media aritmética
  5.    Dim indice As Integer
  6.  
  7.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.        Dim myFont As New Font("Arial", 10, FontStyle.Bold)
  9.        RadioButton1.Checked = True
  10.        RadioButton1.Text = "Media Aritmética"
  11.        RadioButton2.Text = "Media Armónica"
  12.        RadioButton3.Text = "Media Geométrica"
  13.        RadioButton4.Text = "Moda"
  14.        RadioButton5.Text = "Mediana "
  15.        RadioButton1.Font = myFont
  16.        RadioButton2.Font = myFont
  17.        RadioButton3.Font = myFont
  18.        RadioButton4.Font = myFont
  19.        RadioButton5.Font = myFont
  20.        Me.Text = "Medidas de centralizaciónl"
  21.        Me.MaximizeBox = False
  22.        btAgregar.Text = "<< Agregar"
  23.        btCalcMed.Text = "Calcular"
  24.        txtValue.TextAlign = HorizontalAlignment.Right
  25.  
  26.    End Sub
  27.  
  28.    Private Sub btAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAgregar.Click
  29.        Try
  30.            'Si no hay nada en la lista borra el listbox y el resultado anterior
  31.            If lstValorMedAritmetica.Count = 0 Then
  32.                ListBox1.Items.Clear()
  33.                txtResultMedArit.Text = ""
  34.            End If
  35.            'Añade un valor a la lista
  36.            lstValorMedAritmetica.Add(CDbl(txtValue.Text))
  37.            'Añade un valor a listbox
  38.            ListBox1.Items.Add(txtValue.Text)
  39.            btCalcMed.Enabled = True
  40.        Catch ex As Exception
  41.            MessageBox.Show("Valor no válido", _
  42.                            "Atención", _
  43.                            MessageBoxButtons.OK, _
  44.                            MessageBoxIcon.Exclamation)
  45.        End Try
  46.  
  47.    End Sub
  48.  
  49.    Private Sub btCalcMed_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btCalcMed.Click
  50.        'Calcula la media aritmética
  51.        If RadioButton1.Checked = True Then
  52.            txtResultMedArit.Text =
  53.                CStr(modEstadisticFunctions.MediaAritmetica(lstValorMedAritmetica).ToString("0.00"))
  54.        End If
  55.        'Calcula la media armónica
  56.        If RadioButton2.Checked = True Then
  57.            txtResultMedArit.Text =
  58.                CStr(modEstadisticFunctions.MediaArmonica(lstValorMedAritmetica).ToString("0.00"))
  59.        End If
  60.        'Calcula Media Geométrica
  61.        If RadioButton3.Checked = True Then
  62.            txtResultMedArit.Text =
  63.                CStr(modEstadisticFunctions.MediaGeometrica(lstValorMedAritmetica).ToString("0.00"))
  64.        End If
  65.        'Calcula moda
  66.        If RadioButton4.Checked = True Then
  67.            txtResultMedArit.Text = CStr(
  68.                modEstadisticFunctions.Moda(lstValorMedAritmetica))
  69.        End If
  70.        'Calcula mediana
  71.        If RadioButton5.Checked = True Then
  72.            txtResultMedArit.Text =
  73.                modEstadisticFunctions.Mediana(lstValorMedAritmetica)
  74.        End If
  75.        lstValorMedAritmetica.Clear()
  76.        btCalcMed.Enabled = False
  77.    End Sub
  78.  
  79.  
  80.    Private Sub txtArtimetica_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtValue.Click
  81.        txtValue.SelectAll()
  82.    End Sub
  83.  
  84. End Class
  85.  
  86. Module modEstadisticFunctions
  87.  
  88.    ''' <summary>
  89.    ''' Función para calcular la media aritmética
  90.    ''' </summary>
  91.    ''' <param name="dblValue">Variable array List</param>
  92.    ''' <returns></returns>
  93.    ''' <remarks></remarks>
  94.    Public Function MediaAritmetica(ByVal dblValue As List(Of Double)) As Double
  95.        Try
  96.            Dim Valor As Double
  97.            Dim md As Double
  98.            For I As Integer = 0 To dblValue.Count - 1
  99.                Valor += +dblValue(I)
  100.            Next
  101.            md = Valor / dblValue.Count
  102.            Return md
  103.        Catch ex As Exception
  104.            MessageBox.Show("Valor no válido", _
  105.                     "Atención", _
  106.                     MessageBoxButtons.OK, _
  107.                     MessageBoxIcon.Exclamation)
  108.            Return Nothing
  109.        End Try
  110.  
  111.    End Function
  112.    ''' <summary>
  113.    ''' Función para calcular la media armónica
  114.    ''' </summary>
  115.    ''' <param name="dblValue">Variable array List</param>
  116.    ''' <returns></returns>
  117.    ''' <remarks></remarks>
  118.    Public Function MediaArmonica(ByVal dblValue As List(Of Double)) As Double
  119.        Try
  120.            Dim Valor As Double
  121.            Dim md As Double
  122.            For I As Integer = 0 To dblValue.Count - 1
  123.                Valor += +(1 / dblValue(I))
  124.            Next
  125.            md = dblValue.Count / Valor
  126.            Return md
  127.        Catch ex As Exception
  128.            MessageBox.Show("Valor no válido", _
  129.                        "Atención", _
  130.                        MessageBoxButtons.OK, _
  131.                        MessageBoxIcon.Exclamation)
  132.            Return Nothing
  133.        End Try
  134.  
  135.    End Function
  136.    ''' <summary>
  137.    ''' Función para calcular la media geométrica
  138.    ''' </summary>
  139.    ''' <param name="dblValue">Variable array List</param>
  140.    ''' <returns></returns>
  141.    ''' <remarks></remarks>
  142.    Public Function MediaGeometrica(ByVal dblValue As List(Of Double)) As Double
  143.        Try
  144.            Dim Valor As Double = 1
  145.            Dim md As Double
  146.            For I As Integer = 0 To dblValue.Count - 1
  147.                Valor = Valor * dblValue(I)
  148.            Next
  149.            md = Valor ^ (1 / dblValue.Count)
  150.            Return md
  151.        Catch ex As Exception
  152.            MessageBox.Show("Valor no válido", _
  153.                               "Atención", _
  154.                               MessageBoxButtons.OK, _
  155.                               MessageBoxIcon.Exclamation)
  156.            Return Nothing
  157.        End Try
  158.  
  159.  
  160.    End Function
  161.    ''' <summary>
  162.    ''' Función para calcular la Moda
  163.    ''' </summary>
  164.    ''' <param name="dblValue">Variable array List</param>
  165.    ''' <returns></returns>
  166.    ''' <remarks></remarks>
  167.    Public Function Moda(ByVal dblValue As List(Of Double)) As Double
  168.        Try
  169.            Return dblValue.Max() 'Obtiene el número mayor
  170.        Catch ex As Exception
  171.            MessageBox.Show("Valor no válido", _
  172.                      "Atención", _
  173.                      MessageBoxButtons.OK, _
  174.                      MessageBoxIcon.Exclamation)
  175.            Return Nothing
  176.        End Try
  177.    End Function
  178.    ''' <summary>
  179.    ''' Función para calcular la Mediana
  180.    ''' </summary>
  181.    ''' <param name="dblValue">Variable array List</param>
  182.    ''' <returns></returns>
  183.    ''' <remarks></remarks>
  184.    Public Function Mediana(ByVal dblValue As List(Of Double)) As String
  185.        Try
  186.            Dim par As Double
  187.            Dim Madn As String = Nothing
  188.           dblValue.Sort()
  189.            If (dblValue.Count / 2) = CInt(dblValue.Count / 2) Then
  190.                par = CDbl(True)
  191.            Else
  192.                par = CDbl(False)
  193.            End If
  194.            Select Case par
  195.                Case CDbl(True) : Madn = String.Format("{0}-{1}",
  196.                    CStr(dblValue(CInt((dblValue.Count / 2) - 1))),
  197.                    CStr(dblValue(CInt(dblValue.Count / 2))))
  198.                Case CDbl(False) : Madn = String.Format("{0}",
  199.                    CStr(dblValue(CInt(Conversion.Int(dblValue.Count / 2)))))
  200.  
  201.            End Select
  202.            Return Madn
  203.        Catch ex As Exception
  204.            MessageBox.Show("Valor no válido", _
  205.                           "Atención", _
  206.                           MessageBoxButtons.OK, _
  207.                           MessageBoxIcon.Exclamation)
  208.            Return Nothing
  209.        End Try
  210.  
  211.    End Function
  212. End Module



Faltaría la media aritmética ponderada, pero no la he puesto porque requiere hacerlo aparte y añadir más código. Ya que se necesitan dos datos, los valores y los coeficientes de importancia.


Error corregido

Había un error en el cálculo de la mediana. Se me olvidó ordenar la lista de valores.

He añadido
Código
  1.   dblValue.Sort()

Mis disculpas :-\

S2s
« Última modificación: 15 Junio 2016, 02:28 am por Lekim » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON MEDIA ARITMETICA PLISSSSS
Programación Visual Basic
love_magic 4 3,677 Último mensaje 22 Julio 2006, 21:13 pm
por love_magic
Media aritmetica de un array entero
Programación C/C++
dairus20 2 14,899 Último mensaje 5 Marzo 2011, 13:20 pm
por dairus20
Calcular moda, mediana, media aritmética, media geométrica de n números en C « 1 2 »
Programación C/C++
ERIK546 13 55,093 Último mensaje 30 Noviembre 2013, 19:31 pm
por EnriqueRodriguezM
calcular media aritmética con while
Programación C/C++
indict 6 9,313 Último mensaje 8 Noviembre 2012, 22:49 pm
por leosansan
Media Armonica con arrays en c
Dudas Generales
EnriqueRodriguezM 0 2,427 Último mensaje 30 Noviembre 2013, 19:43 pm
por EnriqueRodriguezM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines