En
estadística se utilizan ecuaciones para determinar la media, mediana y la moda
para hallar estas se requiere saber acerca de los métodos de ordenación, ya que
en la mediana y la moda la posición importa. Para hallar cada una de ellas aquí
se presenta el código de cada una de
ellas.
Este es el diseño del proyecto realizado.
Se utiliza el siguiente código:
Public Class frmMediaMedianaModa
Dim
numeros() As Integer
'agregamos un vector y no le ponemos tamaño xk es
homogeneo
Dim tamano As Integer 'agregamos una
variable y le ponemos -1 xk no podemos ponerlo en cero
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles Button1.Click
Dim tamano
As Integer ' guarda el tamano
tamano = Val(Txttamano.Text) 'pide el tamaño del arreglo
ReDim
numeros(tamano)
For b As Integer = 1 To tamano
numeros(b) = InputBox("Introduce un valor numérico :", "Introducción de números")
Lstnumeros.Items.Add(numeros(b)) ' lo manda a la lista
Next
End Sub
Private Sub
Estadistica_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
txtmdia.Enabled = False
txtmediana.Enabled = False
txtmoda.Enabled = False
Lstnumeros.Enabled = False
End Sub
Private Sub
btnresultado_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnresul.Click
Dim media As Double = 0.0 ' guarda la media
Dim
total As Double
' guarda el total de la suma
For i As Integer = 0 To
Lstnumeros.Items.Count
total = total + numeros(i)
Next
media =
total / Lstnumeros.Items.Count
txtmdia.Text = media
Dim
vueltas As Integer
= 0
Dim
comparaciones As Integer
= 0
Dim
puntero As Integer
= 1
Dim aux
As Integer = 0
vueltas = Lstnumeros.Items.Count - 1 'controla el numero de vueltas que dará el método de
inserción
For i As Integer = 1 To vueltas ' determina el
numero de comparaciones por cada vueltas
comparaciones = i 'espara disminuir las vueltas
puntero = i
'se
explica los pasos
Dim cont As Integer = 1
For j As Integer = comparaciones To
1 Step -1
If
Lstnumeros.Items(puntero) < Lstnumeros.Items(puntero - 1) Then 'se explica como se
esta asiendo los paso
aux =
Lstnumeros.Items(puntero - 1)
Lstnumeros.Items(puntero -
1) = Lstnumeros.Items(puntero)
Lstnumeros.Items(puntero)
= aux
End If
puntero = puntero - 1
cont += 1
Next
Dim
posmedia As Double
'guarda la posicion
Dim
mediana As Double
' saca la media
If Lstnumeros.Items.Count Mod
2 = 0 Then
posmedia = Int(Lstnumeros.Items.Count / 2)
mediana = (Lstnumeros.Items(posmedia) + Lstnumeros.Items(posmedia - 1))
/ 2
' txtmediana.Text = mediana
Else
posmedia = Int(Lstnumeros.Items.Count / 2) + 1
mediana = Lstnumeros.Items(posmedia - 1)
End If
txtmediana.Text = mediana
Next
'**************************************MODA****************************************************************
'Este vector
contendrá la lista de numeros diferentes que existan
Dim
Elementos() As Integer
'Este vector
contendrá el numero de veces que un numero este presente (El vector elementos y
Conteo estan vinculados por la posicion)
Dim
Conteo() As Integer
'Servirá para
contar el numero de veces que existe un numero
Dim
contador As Integer
= 0
'Cuenta el
numero de elementos distintos que hay en la lista
Dim
CantElementos As Integer
= -1
'Apunta al
elemento que esta siendo contado
Dim
punterom As Integer
= 0
'Apunta al
elemento a comparar con el elemento seleccionado
Dim sig
As Integer = 0
'Mientras
existan elementos para contar
While sig <= Lstnumeros.Items.Count - 1
'SI el elemento a contar es igual al
siguiente elemento
If Lstnumeros.Items(punterom) = Lstnumeros.Items(sig) Then
'Se cuenta el elemento
contador = contador + 1
'Se
incrementa para comparar con el siguiente
sig += 1
Else
'Si
no son iguales, entonces son diferentes. por tanto se incrementa se deduce que
se tiene un elemento nuevo
CantElementos += 1
'Se
dimensiona al vector al nuevo tamaño
ReDim
Preserve Elementos(CantElementos)
'Se
guarda el numero apuntado
Elementos(CantElementos) =
Lstnumeros.Items(punterom)
ReDim
Preserve Conteo(CantElementos)
'Se
guarda el numero de veces que el numero ocurre en el vector
Conteo(CantElementos) =
contador
'MsgBox(LstNumeros.Items(puntero)
& " " & cont)
'Como
el que sigue es un nuevo numero entonces
'Se
inicia el contador de ocurrencias
contador = 0
'Se
mueve el puntero para que apunte a un numero distinto
punterom = sig
End If
End While
CantElementos += 1
ReDim Preserve Elementos(CantElementos)
Elementos(CantElementos) =
Lstnumeros.Items(punterom)
ReDim Preserve Conteo(CantElementos)
Conteo(CantElementos) = contador
Dim N, C As String
For i As Integer = 0 To
CantElementos
N =
N & Elementos(i) & " "
C =
C & Conteo(i) & " "
Next
'MsgBox(N )
Dim mayor As Integer
Dim POS As Integer
mayor =
Conteo(0)
POS = 0
For I As Integer = 1 To
Conteo.Length - 1
If Conteo(I) > mayor Then
mayor = Conteo(I)
POS = I
End If
Next
txtmoda.Text = Elementos(POS)
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnlimpiar.Click
Lstnumeros.Items.Clear()
txtmdia.Clear()
txtmediana.Clear()
Txttamano.Clear()
txtmoda.Clear()
End Sub
End Class
En este link podrá encontrar el proyecto ya funcional.
No hay comentarios:
Publicar un comentario