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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con instruccion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con instruccion  (Leído 1,788 veces)
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Problema con instruccion
« en: 7 Mayo 2014, 21:46 pm »

Hola

tengo este codigo que es un boton que calcula la mediana

Ahora bien el problema es que cuando se calcula en la mediana y su resultado pasa a un txtbox
y despues calculo la moda me surge ese error antes dicho. no puedo ejecutar los dos al mismo tiempo. el resultado de los calculos se impremen en diferentes textbox.

Estoy trabajando en visual basic.

Código
  1. Private Sub btnCalMediana_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalMediana.Click
  2.        Dim temporal As Double
  3.        Try
  4.            Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
  5.            If listaElementos.Items.Count Mod 2 = 1 Then 'impar
  6.                txtMediana.Text = (valores(CInt(Math.Floor(listaElementos.Items.Count / 2))))
  7.            Else 'par
  8.                txtMediana.Text = (((CDec(valores(listaElementos.Items.Count \ 2 - 1)) + CDec(valores(listaElementos.Items.Count \ 2))) / 2).ToString)
  9.            End If
  10.        Catch ex As Exception
  11.            MsgBox("No puede hacer eso")
  12.        End Try
  13.  
  14.        'Ordena los elementos de menor a mayor en la lista
  15.        For elementos = 0 To listaElementos.Items.Count - 1
  16.            For ordenar = 0 To listaElementos.Items.Count - 2
  17.                If (listaElementos.Items.Item(ordenar) > listaElementos.Items.Item(elementos)) Then
  18.                    temporal = listaElementos.Items.Item(ordenar)
  19.                    listaElementos.Items.Item(ordenar) = listaElementos.Items.Item(elementos)
  20.                    listaElementos.Items.Item(elementos) = temporal
  21.                End If
  22.            Next
  23.        Next
  24.    End Sub


y este es otro boton que calcula la moda

Código
  1. Private Sub btnCalModa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalModa.Click
  2.  
  3.        Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
  4.        Dim concurrencias() As Integer = Array.ConvertAll(valores, Function(s1) valores.Count(Function(s2) s2 = s1))
  5.  
  6.        Dim hecho As New List(Of String)
  7.        Dim salida As String = ""
  8.        For x As Integer = 0 To concurrencias.GetUpperBound(0)
  9.            If concurrencias(x) = concurrencias.Max AndAlso Not hecho.Contains(valores(x)) Then
  10.                hecho.Add(valores(x))
  11.                salida &= valores(x) & ", "
  12.            End If
  13.        Next
  14.        txtModa.Text = (String.Format("{0}{1}{2}", If(hecho.Count = 1, "", If(hecho.Count = 2, "Bimodal, ", "Multimodal, ")), Environment.NewLine, salida.TrimEnd(","c, " "c)))
  15.    End Sub

por si no me explico cuando calculo la media bien si calculo la moda me salta error
pero si calculo la moda primero y despues la mediana no me da error

aca la muestra



si calculo primero la moda y despues la mediana no causa error



Gracias de nuevo.

Pd: por lo que entiendo dice que tengo que convertir un double o string si no me equivoco pero no se como hacerlo.


En línea

Lo que se puede imaginar... se puede programar.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Problema con instruccion
« Respuesta #1 en: 28 Junio 2014, 06:51 am »

Pd: por lo que entiendo dice que tengo que convertir un double o string si no me equivoco pero no se como hacerlo.

No exactamente, el mensaje de error te indica que es imposible tratar un valor de tipo Double como si fuera de tipo String, y la solución sería realizar la conversión a String, pero en mi opinión no es un buen enfoque.

¿Si estás tratando valores numéricos, porque intentas almacenarlos como tipo String?, ¿y si estás usando valores de tipo Double, porque intentas tratarlos como Decimales (CDec)?

Quédate con un datatype (Double o Decimal) e intenta no realizar conversiones innecesarias.

Prueba así:
Código
  1. Dim Valores As Double() =
  2.    (From Valor As Double In listaelementos.Items Order By Valor Ascending).ToArray

Saludos.


En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Equivalencia C a ASM de una instrucción.
Electrónica
Meta 3 7,009 Último mensaje 19 Octubre 2008, 06:24 am
por MARCO_RECARGADO
Instrucción % en C++?
Programación General
.:UND3R:. 1 2,582 Último mensaje 17 Enero 2012, 16:49 pm
por pucheto
Instruccion if
Programación C/C++
BJM 3 2,332 Último mensaje 22 Octubre 2012, 17:48 pm
por rir3760
Problema con instruccion
Programación General
nolasco281 2 2,036 Último mensaje 7 Mayo 2014, 18:45 pm
por nolasco281
¿Cómo calcular los ciclos por instrucción en este problema?
Electrónica
xemnas 2 4,854 Último mensaje 28 Octubre 2014, 11:17 am
por xemnas
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines