pues estoy haciendo el metodo de biseccion y me piedieron que los resultados los exprese en una tabla, y estoy utilizando el listview pero no se
como mandar los datos desde mi clase asta ese control , solo ya lo hice de manera estatica, ya lo intente de otra manera y si lo manda pero solo a la primera posicion y estube leyendo sobre el metodo split pero no se como mandar a imprir el vector al listview
este codigo es de mi clase:
Public Class csBiseccion
Private xa As Double
Private xb As Double
Private iteraciones As Integer
Private err As Double 'dim variable as tipo
Sub New(ByVal a As Double, ByVal b As Double, ByVal iteraciones As Integer, ByVal err As Double) 'Constructor
Me.xa = a 'Damos valores a los miembros privados de la clase
Me.xb = b
Me.iteraciones = iteraciones
Me.err = err
End Sub
Private Function Evaluar(ByVal x As Double) As Double 'Metodo que retorna un double
'Recordamos la funcion es e(-x)-ln(x)
'x = Math.Exp(-(x)) - Math.Log(x)
'x = (-2) + (7 * x) - (5 * (Math.Pow(x, 2))) + 6 * (Math.Pow(x, 3))
'Dim aux As Double
'aux = x * x
x = Math.Log(x * x) - (0.7)
Return x
End Function
Public Function Biseccion() As String
Dim inf As Double
Dim sup As Double
Dim cadena As String = ""
Dim xraiz As Double
Dim Fx As Double
Dim ciclos As Integer = 1 'Contar cuantos ciclos utilizo
Dim errorcal As Double = 0
Dim xprevia As Double
Dim xactual As Double
Dim bandera = 1 '1 xprevia es el liminf del intervalo y bandera=2 la xprevia=limsup
Dim finmotivo As Integer = 0 'Si encontro la solucion y como, 1 la hallo 0 no hallo
Dim imprimir As String = ""
inf = Me.Evaluar(Me.xa)
sup = Me.Evaluar(Me.xb)
If (inf * sup) < 0 Then 'Probamos si hay solucion en el Intervalo
While (Me.iteraciones > 0)
imprimir += Chr(13) & "iteraciones" + Convert.ToString(Me.iteraciones) & Chr(13)
xraiz = (Me.xa + Me.xb) / 2
Fx = Me.Evaluar(xraiz)
If (Me.xa * Fx) < 0 Then
bandera = 2
Me.xb = xraiz
Else
If Me.xa * Fx > 0 Then
bandera = 1
Me.xa = xraiz
Else
Return cadena = "Solución es: " + Convert.ToString(xraiz)
End If
End If
If bandera = 1 Then
xprevia = Me.xb
imprimir += "Xprevia" + Convert.ToString(xprevia) & Chr(13)
Else
xprevia = Me.xa
imprimir += "Xprevia" + Convert.ToString(xprevia) & Chr(13)
End If
xactual = xraiz
imprimir += "Xactual" + Convert.ToString(xactual) & Chr(13)
If ciclos > 1 Then
errorcal = Math.Abs((xactual - xprevia) / xactual) * 100
imprimir += "error " + Convert.ToString(errorcal) & Chr(13)
If errorcal <= Me.err Then
finmotivo = 1
Exit While
End If
End If
ciclos = ciclos + 1
Me.iteraciones = Me.iteraciones - 1
End While
Else
cadena = "No hay solucion en el intervalo"
Me.xa = Me.xa + 1.0
Me.xb = Me.xb + 1.0
End If
If finmotivo = 1 Then
'cadena = "La raíz es: " + Convert.ToString(xraiz)
'cadena = cadena + " Iteraciones: " + Convert.ToString(ciclos)
'cadena = cadena + " Con error de: " + Convert.ToString(errorcal)
Else
imprimir = "No se encontro la solución"
End If
Return (cadena & imprimir)
End Function
End Class
y este otro es de mi forma donde yamo a mi clase
Public Class Form1
Private Sub BtnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalcular.Click
Dim objeto As csBiseccion
objeto = New csBiseccion(Convert.ToDouble(txtxa.Text), Convert.ToDouble(txtxb.Text), Convert.ToInt16(txtiteraciones.Text), Convert.ToDouble(txterror.Text))
MsgBox(objeto.Biseccion(), MsgBoxStyle.Information, "Aviso")
Dim AUX As String = objeto.Biseccion() ' es aqui donde no se como mandar a imprimir al list view
Dim CADENA() As String
CADENA = Split(AUX, ",", -1)
End Sub
End Class