Visual Basic.NET - Pasar valor de un TextBox N Repeticiones a un arreglo

 
Vista:
Imágen de perfil de Andrés
Val: 48
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Pasar valor de un TextBox N Repeticiones a un arreglo

Publicado por Andrés (27 intervenciones) el 08/10/2018 17:10:17
Buenas tardes amigos, necesito hacer un arreglo a partir del siguiente código.

Como se pueden dar cuenta hago una serie de calculos y luego cargo todo al DataGridView1, tengo un Button y un TextBox que muestra la suma de la columna Area (ValorIntegral += Val(row.Cells(6).Value)) como ese valor que tiene el TextBox siempre va a cambiar ya que los números con los que se genera el calculo son aleatorios, lo que quiero es hacer NRepeticiones (Este valor lo introduce el usuario en el inputbox) para que el programa me re-calcule varios valores y de esta manera pasarlos a un arreglo, lo que pienso que es necesario hacer un nuevo ciclo For para poder cargar el arreglo.

No se si sea necesario un Button para ir cargando los valores al arreglo. Mi idea es pasarlos a un DataGridView2, ya que una vez estén esos valores de NRepeticiones en esa columna del DataGridView2, Poder hacer otros cálculos!

Lo que esta comentado es lo que tenia en mente pero la verdad no se como continuar. Espero me puedan ayudar.

Gracias por su disposición!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Public Class Trapecio
    Private Sub Trapecio_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        Dim tabla As List(Of Fila)
        'Dim tabla2 As List(Of Fila2)
        Dim valorA, valorB, NVeces, nuevovalorA, NRepeticiones, n As Double
 
        valorA = Integer.Parse(InputBox("Ingrese el límite de Integración de 'a'", "Método del Trapecio", "Valor de 'a'", 100, 100))
        valorB = Integer.Parse(InputBox("Ingrese el límite de Integración de 'b'", "Método del Trapecio", "Valor de 'b'", 100, 100))
        NVeces = Integer.Parse(InputBox("Ingrese el valor de N Veces", "Método del Trapecio", "Valor de 'N Veces'", 100, 100))
        NRepeticiones = Integer.Parse(InputBox("Ingrese el valor de Numero de Repeticiones para el programa", "Método del Trapecio", "Valor de 'N Repeticiones'", 100, 100))
 
        Dim arrayNumeros(NVeces) As Double
 
        Dim repetido As Boolean
        Randomize()
 
        For i = 1 To NVeces 'genero numeros aleatorios NVeces
            repetido = False
 
            nuevovalorA = (valorB - valorA) * Rnd() + valorA 'genero numeros aleatorios entre a, b 
            'arrayNumeros(i - 1) = nuevovalorA
 
            While repetido = False
                For j = 0 To i - 1 'verificar cada numero del arreglo para buscar repetido 
                    If i > 1 Then
                        If nuevovalorA = arrayNumeros(j) Then
                            repetido = False
                            nuevovalorA = (valorB - valorA) * Rnd() + valorA 'genero numeros aleatorios entre el intervalo a, b 
                            j = -1
                        ElseIf j = i - 1 Then
                            'arrayNumeros(i - 1) = nuevovalorA
                            repetido = True
                        End If
                    Else
                        repetido = True
                    End If
                Next j
            End While
 
            arrayNumeros(i - 1) = nuevovalorA
 
        Next i
 
        arrayNumeros(0) = valorA
        arrayNumeros(NVeces) = valorB
        Array.Sort(arrayNumeros)
 
        ' En esta linea o lazo (loop) se asigna el número de orden de cada fila
        tabla = arrayNumeros.Take(NVeces).Zip(arrayNumeros.Skip(1), Function(a, b) CalcularFila(a, b)).ToList()
 
        For k As Integer = 1 To tabla.Count
            tabla(k - 1).n = k
            ListBox1.Items.Add(arrayNumeros(k))
        Next
 
        'Dim arrayRepeticiones(NRepeticiones) As Double
 
        'For r = 1 To NRepeticiones
        '    n = arrayNumeros()
        '    arrayRepeticiones(r - 1) = n
        'Next r
 
        'tabla2 = arrayRepeticiones.Skip(1)
        'DataGridView2.DataSource = tabla2
        'DataGridView2.Columns("valor").DefaultCellStyle.Format = "N5"
 
 
        DataGridView1.DataSource = tabla
        DataGridView1.Columns("a").DefaultCellStyle.Format = "N5"
        DataGridView1.Columns("b").DefaultCellStyle.Format = "N5"
        DataGridView1.Columns("deltaX").DefaultCellStyle.Format = "N5"
        DataGridView1.Columns("deltaX").HeaderText = "DeltaX"
        DataGridView1.Columns("raizA").DefaultCellStyle.Format = "N4"
        DataGridView1.Columns("raizA").HeaderText = "f(a)"
        DataGridView1.Columns("raizB").DefaultCellStyle.Format = "N4"
        DataGridView1.Columns("raizB").HeaderText = "f(b)"
        DataGridView1.Columns("Area").DefaultCellStyle.Format = "N4"
        DataGridView1.Columns("Area").HeaderText = "Area"
    End Sub
 
    Private Function CalcularFila(dato1 As Double, dato2 As Double) As Fila
        Dim fila As New Fila
 
        fila.a = dato1
        fila.b = dato2
 
        fila.deltaX = dato2 - dato1
        fila.raizA = Math.Sqrt(4 + 7 * fila.a ^ 4)
        fila.raizB = Math.Sqrt(4 + 7 * fila.b ^ 4)
        fila.Area = ((fila.raizA + fila.raizB) / 2) * fila.deltaX
 
        Return fila
    End Function
 
    Class Fila
        Public Property n() As Integer
        Public Property a() As Double
        Public Property b() As Double
        Public Property deltaX() As Double
        Public Property raizA() As Double
        Public Property raizB() As Double
        Public Property Area() As Double
    End Class
 
    'Class Fila2
    '    Public Property valor() As Integer
    'End Class
 
    Private Sub btnValorInt_Click(sender As Object, e As EventArgs) Handles btnValorInt.Click
        btnSiguiente.Enabled = True
 
        Dim ValorIntegral As Double
        Dim Col1 As Integer = DataGridView1.CurrentCell.ColumnIndex
        For Each row As DataGridViewRow In DataGridView1.Rows
            ValorIntegral += Val(row.Cells(6).Value)
        Next
        txtValorInt.Text = ValorIntegral.ToString
    End Sub
 
    Private Function PromedioColumna(grid As DataGridView, columnIndex As Integer) As Double
        Return grid.Rows.Cast(Of DataGridViewRow).Select(Function(row) CDbl(row.Cells(columnIndex).Value)).Average()
    End Function
 
    Private Function DesviacionColumna(grid As DataGridView, columnIndex As Integer) As Double
        Dim values As List(Of Double) = grid.Rows.Cast(Of DataGridViewRow).Select(Function(row) CDbl(row.Cells(columnIndex).Value)).ToList()
        Dim ret As Double = 0
        If values.Count > 0 Then
            Dim avg As Double = values.Average()
            Dim sum As Double = values.Sum(Function(d) Math.Pow(d - avg, 2))
            ret = Math.Sqrt(sum / (values.Count - 1))
        End If
        Return ret
    End Function
 
    Private Sub btnCalcular_Click(sender As Object, e As EventArgs) Handles btnCalcular.Click
        Dim promedio As Double = PromedioColumna(DataGridView1, 6)
        Dim desviacion As Double = DesviacionColumna(DataGridView1, 6)
        txtpromedio.Text = promedio
        txtdesviacion.Text = desviacion
    End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Pasar valor de un TextBox N Repeticiones a un arreglo

Publicado por omar (31 intervenciones) el 08/10/2018 17:42:21
Saludos. si tienes teanviewer podre ayudarte remotamente.

Me envias un email para ayudarte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Andrés
Val: 48
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Pasar valor de un TextBox N Repeticiones a un arreglo

Publicado por Andrés (27 intervenciones) el 08/10/2018 17:47:54
Hola Omar que tal de nuevo, ya recuerdo que la vez pasada me ayudaste. Puedes ahora para enviarte el ID y el Pass?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar