Derivación por diferencias divididas y por fórmulas de alta precisión en Visual Basic 2005 (página 3)
Public tablas27(1,
7) As String '2 filas y 8
columnas (pues se comienza de la posición cero). Para los
resultados de las evaluaciones (en caso que se evalúe la
segunda derivada por Fórmulas de Alta Precisión
Centradas).
Public tablas28(1,
9) As String '2 filas y 10
columnas (pues se comienza de la posición cero). Para los
resultados de las evaluaciones (en caso que se evalúe la
tercera derivada por Fórmulas de Alta Precisión
Centradas).
Public tablas29(1,
11) As String '2 filas y 12
columnas (pues se comienza de la posición cero). Para los
resultados de las evaluaciones (en caso que se evalúe la
cuarta derivada por Fórmulas de Alta Precisión
Centradas).
Public tablas30(1,
13) As String '2 filas y 14
columnas (pues se comienza de la posición cero). Para los
resultados de las evaluaciones (en caso que se evalúe la
quinta derivada por Fórmulas de Alta Precisión
Centradas).
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Se pueden dar 30 casos en el programa,
según lo que seleccione el usuario.
'CASO 1. PRIMERA DERIVADA POR TABLAS DE
DIFERENCIAS DIVIDIDAS HACIA ADELANTE.
If (ComboBox1.SelectedItem
= "Tablas de Diferencias Divididas
Hacia Adelante") And (ComboBox2.SelectedItem =
"1ra. derivada")
Then
Dim i, j
As Integer '"i"
significará "fila" y "j" significará columna, de
modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y
columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 3 'Establece 3 filas.
AxMSFlexGrid1.Cols = 4 'Establece 4 columnas.
'Se crea una nueva instancia de la
clase
Evaluador.
Dim mEval
As New
Evaluador()
'Se crea una variable tipo string y se
le asigna la expresión que se quiere evaluar.
Dim mExpresion
As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se
le agregan los parámetros de entrada que usará el
método
eval.
Dim mParameters
As New
StringCollection()
mParameters.Add("ByVal X as
Double")
'Las funciones a
utilizar pertenece al espacio de nombres System.Math.
'se hace necesario entonces, crear un
objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces
As New
StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método
PrecompilarFunción y se verifica si se generó
correctamente el assembly.
If
mEval.PrecompilarAssembly(mExpresion, mParameters,
mNameSpaces) Then
'Si el assembly se generó
correctamente, se crea un array con los valores de
los parametros a evaluar.
'Se invoca el método Evaluar y se
asignan los resultados correspondientes.
'Se limpian todas las celdas para que no
queden impresos resultados de procesos
anteriores.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada
una de las celdas, y no estar haciendo cálculos con
condiciones If ni nada de eso dentro del "With", pues todos los
cálculos y condiciones deben hacerse afuera y venir a esta
sección del "With" única y exclusivamente a hacer
impresiones.
For fila
As Integer = 0 To .Rows – 1
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por
estar dentro de los For anidados, con esto se ponen valores
String Empty en todas las celdas, de modo que no aparezca nada y
queden todas las celdas limpias y sin resultados de
cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los
cálculos.
tablas1(1, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas1(2, 1) = Val(TextBox2.Text) +
Val(TextBox3.Text) 'Almacena
"a+h".
tablas1(1, 2) = mEval.Evaluar(Val(tablas1(1, 1)))
'Almacena "f(a)".
tablas1(2, 2) = mEval.Evaluar(Val(tablas1(2, 1)))
'Almacena "f(a+h)".
tablas1(2, 3) = (Val(tablas1(2, 2)) – Val(tablas1(1,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+h)-f(a))/h"="f'(a)".
'Para indicar que se realizarán
operaciones
con el objeto AxMSFlexGrid1
'sin necesidad de escribir su
nombre.
'De aquí en adelante vienen las
impresiones de los valores en las celdas
correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue
'Cambia el color de letra de todas las
celdas a azul.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
.AllowUserResizing =
MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth
'Determina que el usuario puede modificar
el ancho de columna en tiempo de
ejecución.
'Para ponerle color amarillo suave de
fondo a todas las celdas.
Dim Color1
As Color =
Color.LightGoldenrodYellow 'Amarillo
suave.
For fila
As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y
no de 0.
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de
1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de
todas las celdas a LighYellow (amarillo suave), pues la variable
Color1 fue inicializada anteriormente con el valor de
"Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de
todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a
cada columna.
Next
End With
Next
'Establece la alineación del
contenido de la columna 0
.set_ColAlignment(0,
MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos
títulos a cada fila.
'La sintaxis dentro del
paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a")
.set_TextMatrix(2, 0, "a+h")
'Se le ponen los respectivos
títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas1(1, 1)),
10)) 'Imprime el valor de "a" (con
10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas1(2, 1)),
10)) 'Imprime el valor de "a+h" (con
10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas1(1, 2)),
10)) 'Imprime el valor de "f(a)"
(con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas1(2, 2)),
10)) 'Imprime el valor de "f(a+h)"
(con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas1(2, 3)),
10)) 'Imprime el valor de
"(f(a+h)-f(a))/h"="f'(a)" (con 10 decimales).
End With
TextBox5.Text = "primera" 'Imprime el
orden de la derivada.
TextBox6.Text = tablas1(2, 3) 'Muestra la
respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 2. SEGUNDA DERIVADA POR TABLAS DE
DIFERENCIAS DIVIDIDAS HACIA ADELANTE.
If (ComboBox1.SelectedItem
= "Tablas de Diferencias Divididas
Hacia Adelante") And (ComboBox2.SelectedItem =
"2da. derivada")
Then
Dim i, j
As Integer '"i"
significará "fila" y "j" significará columna, de
modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y
columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 4 'Establece 4 filas.
AxMSFlexGrid1.Cols = 5 'Establece 5 columnas.
'Se crea una nueva instancia de la clase
Evaluador.
Dim mEval
As New
Evaluador()
'Se crea una variable tipo string y se
le asigna la expresión que se quiere evaluar.
Dim mExpresion
As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se
le agregan los parámetros de entrada que usará el
método eval.
Dim mParameters
As New
StringCollection()
mParameters.Add("ByVal X as
Double")
'Las funciones a utilizar pertenece al
espacio de nombres System.Math.
'se hace necesario entonces, crear un
objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces
As New
StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método
PrecompilarFunción y se verifica si se generó
correctamente el assembly.
If
mEval.PrecompilarAssembly(mExpresion, mParameters,
mNameSpaces) Then
'Si el assembly se generó
correctamente, se crea un array con los valores de los parametros
a evaluar.
'Se invoca el método Evaluar y se
asignan los resultados correspondientes.
'Se limpian todas las celdas para que no
queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
For fila
As Integer = 0 To .Rows – 1
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por
estar dentro de los For anidados, con esto se ponen valores
String Empty en todas las celdas, de modo que no aparezca nada y
queden todas las celdas limpias y sin resultados de
cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los
cálculos.
tablas2(1, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas2(2, 1) = Val(TextBox2.Text) +
Val(TextBox3.Text) 'Almacena
"a+h".
tablas2(3, 1) = Val(TextBox2.Text) + (2 *
(Val(TextBox3.Text))) 'Almacena
"a+2h".
tablas2(1, 2) = mEval.Evaluar(Val(tablas2(1, 1)))
'Almacena "f(a)".
tablas2(2, 2) = mEval.Evaluar(Val(tablas2(2, 1)))
'Almacena "f(a+h)".
tablas2(3, 2) = mEval.Evaluar(Val(tablas2(3, 1)))
'Almacena "f(a+2h)".
tablas2(2, 3) = (Val(tablas2(2, 2)) – Val(tablas2(1,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+h)-f(a))/h"="f'(a)".
tablas2(3, 3) = (Val(tablas2(3, 2)) – Val(tablas2(2,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+2h)-f(a+h))/h"="f'(a+h)".
tablas2(3, 4) = (Val(tablas2(3, 3)) – Val(tablas2(2,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+h)-f'(a))/h"="f''(a)".
'Para indicar que se realizarán
operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su
nombre.
'De aquí en adelante vienen las
impresiones de los valores en las celdas
correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a
azul.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
.AllowUserResizing =
MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth
'Determina que el usuario puede modificar
el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de
fondo a todas las celdas.
Dim Color1
As Color =
Color.LightGoldenrodYellow 'Amarillo
suave.
For fila
As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y
no de 0.
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de
1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de
todas las celdas a LighYellow (amarillo suave), pues la variable
Color1 fue inicializada anteriormente con el valor de
"Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de
todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a
cada columna.
Next
End With
Next
'Establece la alineación del
contenido de la columna 0
.set_ColAlignment(0,
MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos
títulos a cada fila.
'La sintaxis dentro del
paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a")
.set_TextMatrix(2, 0, "a+h")
.set_TextMatrix(3, 0, "a+2h")
'Se le ponen los respectivos
títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas2(1, 1)),
10)) 'Imprime el valor de "a" (con
10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas2(2, 1)),
10)) 'Imprime el valor de "a+h" (con
10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas2(3, 1)),
10)) 'Imprime el valor de "a+2h"
(con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas2(1, 2)),
10)) 'Imprime el valor de "f(a)"
(con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas2(2, 2)),
10)) 'Imprime el valor de "f(a+h)"
(con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas2(3, 2)),
10)) 'Imprime el valor de "f(a+2h)"
(con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas2(2, 3)),
10)) 'Imprime el valor de
"(f(a+h)-f(a))/h"="f'(a)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas2(3, 3)),
10)) 'Imprime el valor de
"(f(a+2h)-f(a+h))/h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas2(3, 4)),
10)) 'Imprime el valor de
"(f'(a+h)-f'(a))/h"="f''(a)" (con 10 decimales).
End With
TextBox5.Text = "segunda" 'Imprime el
orden de la derivada.
TextBox6.Text = tablas2(3, 4) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 3. TERCERA DERIVADA POR TABLAS DE
DIFERENCIAS DIVIDIDAS HACIA ADELANTE.
If (ComboBox1.SelectedItem
= "Tablas de Diferencias Divididas
Hacia Adelante") And (ComboBox2.SelectedItem =
"3ra. derivada")
Then
Dim i, j
As Integer '"i"
significará "fila" y "j" significará columna, de
modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y
columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 5 'Establece 5 filas.
AxMSFlexGrid1.Cols = 6 'Establece 6 columnas.
'Se crea una nueva instancia de la clase
Evaluador.
Dim mEval
As New
Evaluador()
'Se crea una variable tipo string y se
le asigna la expresión que se quiere evaluar.
Dim mExpresion
As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se
le agregan los parámetros de entrada que usará el
método eval.
Dim mParameters
As New
StringCollection()
mParameters.Add("ByVal X as
Double")
'Las funciones a utilizar pertenece al
espacio de nombres System.Math.
'se hace necesario entonces, crear un
objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces
As New
StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método
PrecompilarFunción y se verifica si se generó
correctamente el assembly.
If
mEval.PrecompilarAssembly(mExpresion, mParameters,
mNameSpaces) Then
'Si el assembly se generó
correctamente, se crea un array con los valores de los parametros
a evaluar.
'Se invoca el método Evaluar y se
asignan los resultados correspondientes.
'Se limpian todas las celdas para que no
queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
For fila
As Integer = 0 To .Rows – 1
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por
estar dentro de los For anidados, con esto se ponen valores
String Empty en todas las celdas, de modo que no aparezca nada y
queden todas las celdas limpias y sin resultados de
cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los
cálculos.
tablas3(1, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas3(2, 1) = Val(TextBox2.Text) +
Val(TextBox3.Text) 'Almacena
"a+h".
tablas3(3, 1) = Val(TextBox2.Text) + (2 *
(Val(TextBox3.Text))) 'Almacena
"a+2h".
tablas3(4, 1) = Val(TextBox2.Text) + (3 *
(Val(TextBox3.Text))) 'Almacena
"a+3h".
tablas3(1, 2) = mEval.Evaluar(Val(tablas3(1, 1)))
'Almacena "f(a)".
tablas3(2, 2) = mEval.Evaluar(Val(tablas3(2, 1)))
'Almacena "f(a+h)".
tablas3(3, 2) = mEval.Evaluar(Val(tablas3(3, 1)))
'Almacena "f(a+2h)".
tablas3(4, 2) = mEval.Evaluar(Val(tablas3(4, 1)))
'Almacena "f(a+3h)".
tablas3(2, 3) = (Val(tablas3(2, 2)) – Val(tablas3(1,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+h)-f(a))/h"="f'(a)".
tablas3(3, 3) = (Val(tablas3(3, 2)) – Val(tablas3(2,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+2h)-f(a+h))/h"="f'(a+h)".
tablas3(4, 3) = (Val(tablas3(4, 2)) – Val(tablas3(3,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+3h)-f(a+2h))/h"="f'(a+2h)".
tablas3(3, 4) = (Val(tablas3(3, 3)) – Val(tablas3(2,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+h)-f'(a))/h"="f''(a)".
tablas3(4, 4) = (Val(tablas3(4, 3)) – Val(tablas3(3,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+2h)-f'(a+h)/h"="f''(a+h)".
tablas3(4, 5) = (Val(tablas3(4, 4)) – Val(tablas3(3,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+h)-f''(a)/h"="f'''(a)".
'Para indicar que se realizarán
operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su
nombre.
'De aquí en adelante vienen las
impresiones de los valores en las celdas
correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a
azul.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
.AllowUserResizing =
MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth
'Determina que el usuario puede modificar
el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de
fondo a todas las celdas.
Dim Color1
As Color =
Color.LightGoldenrodYellow 'Amarillo
suave.
For fila
As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y
no de 0.
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de
1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de
todas las celdas a LighYellow (amarillo suave), pues la variable
Color1 fue inicializada anteriormente con el valor de
"Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de
todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a
cada columna.
Next
End With
Next
'Establece la alineación del
contenido de la columna 0
.set_ColAlignment(0,
MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos
títulos a cada fila.
'La sintaxis dentro del
paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a")
.set_TextMatrix(2, 0, "a+h")
.set_TextMatrix(3, 0, "a+2h")
.set_TextMatrix(4, 0, "a+3h")
'Se le ponen los respectivos
títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas3(1, 1)),
10)) 'Imprime el valor de "a" (con
10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas3(2, 1)),
10)) 'Imprime el valor de "a+h" (con
10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas3(3, 1)),
10)) 'Imprime el valor de "a+2h"
(con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas3(4, 1)),
10)) 'Imprime el valor de "a+3h"
(con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas3(1, 2)),
10)) 'Imprime el valor de "f(a)"
(con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas3(2, 2)),
10)) 'Imprime el valor de "f(a+h)"
(con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas3(3, 2)),
10)) 'Imprime el valor de "f(a+2h)"
(con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas3(4, 2)),
10)) 'Imprime el valor de "f(a+3h)"
(con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas3(2, 3)),
10)) 'Imprime el valor de
"(f(a+h)-f(a))/h"="f'(a)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas3(3, 3)),
10)) 'Imprime el valor de
"(f(a+2h)-f(a+h))/h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas3(4, 3)),
10)) 'Imprime el valor de
"(f(a+3h)-f(a+2h))/h"="f'(a+2h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas3(3, 4)),
10)) 'Imprime el valor de
"(f'(a+h)-f'(a))/h"="f''(a)" (con 10 decimales).
.set_TextMatrix(4, 4, Math.Round(Val(tablas3(4, 4)),
10)) 'Imprime el valor de
"(f'(a+2h)-f'(a+h)/h"="f''(a+h)" (con 10 decimales).
.set_TextMatrix(4, 5, Math.Round(Val(tablas3(4, 5)),
10)) 'Imprime el valor de
"(f''(a+h)-f''(a)/h"="f'''(a)" (con 10 decimales).
End With
TextBox5.Text = "tercera" 'Imprime el
orden de la derivada.
TextBox6.Text = tablas3(4, 5) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 4. CUARTA DERIVADA POR TABLAS DE
DIFERENCIAS DIVIDIDAS HACIA ADELANTE.
If (ComboBox1.SelectedItem
= "Tablas de Diferencias Divididas
Hacia Adelante") And (ComboBox2.SelectedItem =
"4ta. derivada")
Then
Dim i, j
As Integer '"i"
significará "fila" y "j" significará columna, de
modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y
columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 6 'Establece 6 filas.
AxMSFlexGrid1.Cols = 7 'Establece 7 columnas.
'Se crea una nueva instancia de la clase
Evaluador.
Dim mEval
As New
Evaluador()
'Se crea una variable tipo string y se
le asigna la expresión que se quiere evaluar.
Dim mExpresion
As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se
le agregan los parámetros de entrada que usará el
método eval.
Dim mParameters
As New
StringCollection()
mParameters.Add("ByVal X as
Double")
'Las funciones a utilizar pertenece al
espacio de nombres System.Math.
'se hace necesario entonces, crear un
objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces
As New
StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método
PrecompilarFunción y se verifica si se generó
correctamente el assembly.
If
mEval.PrecompilarAssembly(mExpresion, mParameters,
mNameSpaces) Then
'Si el assembly se generó
correctamente, se crea un array con los valores de los parametros
a evaluar.
'Se invoca el método Evaluar y se
asignan los resultados correspondientes.
'Se limpian todas las celdas para que no
queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
For fila
As Integer = 0 To .Rows – 1
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por
estar dentro de los For anidados, con esto se ponen valores
String Empty en todas las celdas, de modo que no aparezca nada y
queden todas las celdas limpias y sin resultados de
cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los
cálculos.
tablas4(1, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas4(2, 1) = Val(TextBox2.Text) +
Val(TextBox3.Text) 'Almacena
"a+h".
tablas4(3, 1) = Val(TextBox2.Text) + (2 *
(Val(TextBox3.Text))) 'Almacena
"a+2h".
tablas4(4, 1) = Val(TextBox2.Text) + (3 *
(Val(TextBox3.Text))) 'Almacena
"a+3h".
tablas4(5, 1) = Val(TextBox2.Text) + (4 *
(Val(TextBox3.Text))) 'Almacena
"a+4h".
tablas4(1, 2) = mEval.Evaluar(Val(tablas4(1, 1)))
'Almacena "f(a)".
tablas4(2, 2) = mEval.Evaluar(Val(tablas4(2, 1)))
'Almacena "f(a+h)".
tablas4(3, 2) = mEval.Evaluar(Val(tablas4(3, 1)))
'Almacena "f(a+2h)".
tablas4(4, 2) = mEval.Evaluar(Val(tablas4(4, 1)))
'Almacena "f(a+3h)".
tablas4(5, 2) = mEval.Evaluar(Val(tablas4(5, 1)))
'Almacena "f(a+4h)".
tablas4(2, 3) = (Val(tablas4(2, 2)) – Val(tablas4(1,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+h)-f(a))/h"="f'(a)".
tablas4(3, 3) = (Val(tablas4(3, 2)) – Val(tablas4(2,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+2h)-f(a+h))/h"="f'(a+h)".
tablas4(4, 3) = (Val(tablas4(4, 2)) – Val(tablas4(3,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+3h)-f(a+2h))/h"="f'(a+2h)".
tablas4(5, 3) = (Val(tablas4(5, 2)) – Val(tablas4(4,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+4h)-f(a+3h))/h"="f'(a+3h)".
tablas4(3, 4) = (Val(tablas4(3, 3)) – Val(tablas4(2,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+h)-f'(a))/h"="f''(a)".
tablas4(4, 4) = (Val(tablas4(4, 3)) – Val(tablas4(3,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+2h)-f'(a+h))/h"="f''(a+h)".
tablas4(5, 4) = (Val(tablas4(5, 3)) – Val(tablas4(4,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+3h)-f'(a+2h))/h"="f''(a+2h)".
tablas4(4, 5) = (Val(tablas4(4, 4)) – Val(tablas4(3,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+h)-f''(a))/h"="f'''(a)".
tablas4(5, 5) = (Val(tablas4(5, 4)) – Val(tablas4(4,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+2h)-f''(a+h))/h"="f'''(a+h)".
tablas4(5, 6) = (Val(tablas4(5, 5)) – Val(tablas4(4,
5))) / Val(TextBox3.Text) 'Almacena
"(f'''(a+h)-f'''(a))/h"="f''''(a)".
'Para indicar que se realizarán
operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su
nombre.
'De aquí en adelante vienen las
impresiones de los valores en las celdas
correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a
azul.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
.AllowUserResizing =
MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth
'Determina que el usuario puede modificar
el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de
fondo a todas las celdas.
Dim Color1
As Color =
Color.LightGoldenrodYellow 'Amarillo
suave.
For fila
As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y
no de 0.
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de
1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de
todas las celdas a LighYellow (amarillo suave), pues la variable
Color1 fue inicializada anteriormente con el valor de
"Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de
todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a
cada columna.
Next
End With
Next
'Establece la alineación del
contenido de la columna 0
.set_ColAlignment(0,
MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos
títulos a cada fila.
'La sintaxis dentro del
paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a")
.set_TextMatrix(2, 0, "a+h")
.set_TextMatrix(3, 0, "a+2h")
.set_TextMatrix(4, 0, "a+3h")
.set_TextMatrix(5, 0, "a+4h")
'Se le ponen los respectivos
títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
.set_TextMatrix(0, 6, "f''''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas4(1, 1)),
10)) 'Imprime el valor de "a" (con
10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas4(2, 1)),
10)) 'Imprime el valor de "a+h" (con
10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas4(3, 1)),
10)) 'Imprime el valor de "a+2h"
(con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas4(4, 1)),
10)) 'Imprime el valor de "a+3h"
(con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas4(5, 1)),
10)) 'Imprime el valor de "a+4h"
(con 10 decimales).
.set_TextMatrix(1, 2, Math.Round(Val(tablas4(1, 2)),
10)) 'Imprime el valor de "f(a)"
(con 10 decimales).
.set_TextMatrix(2, 2, Math.Round(Val(tablas4(2, 2)),
10)) 'Imprime el valor de "f(a+h)"
(con 10 decimales).
.set_TextMatrix(3, 2, Math.Round(Val(tablas4(3, 2)),
10)) 'Imprime el valor de "f(a+2h)"
(con 10 decimales).
.set_TextMatrix(4, 2, Math.Round(Val(tablas4(4, 2)),
10)) 'Imprime el valor de "f(a+3h)"
(con 10 decimales).
.set_TextMatrix(5, 2, Math.Round(Val(tablas4(5, 2)),
10)) 'Imprime el valor de "f(a+4h)"
(con 10 decimales).
.set_TextMatrix(2, 3, Math.Round(Val(tablas4(2, 3)),
10)) 'Imprime el valor de
"(f(a+h)-f(a))/h"="f'(a)" (con 10 decimales).
.set_TextMatrix(3, 3, Math.Round(Val(tablas4(3, 3)),
10)) 'Imprime el valor de
"(f(a+2h)-f(a+h))/h"="f'(a+h)" (con 10 decimales).
.set_TextMatrix(4, 3, Math.Round(Val(tablas4(4, 3)),
10)) 'Imprime el valor de
"(f(a+3h)-f(a+2h))/h"="f'(a+2h)" (con 10 decimales).
.set_TextMatrix(5, 3, Math.Round(Val(tablas4(5, 3)),
10)) 'Imprime el valor de
"(f(a+4h)-f(a+3h))/h"="f'(a+3h)" (con 10 decimales).
.set_TextMatrix(3, 4, Math.Round(Val(tablas4(3, 4)),
10)) 'Imprime el valor de
"(f'(a+h)-f'(a))/h"="f''(a)" (con 10 decimales).
.set_TextMatrix(4, 4, Math.Round(Val(tablas4(4, 4)),
10)) 'Imprime el valor de
"(f'(a+2h)-f'(a+h))/h"="f''(a+h)" (con 10 decimales).
.set_TextMatrix(5, 4, Math.Round(Val(tablas4(5, 4)),
10)) 'Imprime el valor de
"(f'(a+3h)-f'(a+2h))/h"="f''(a+2h)" (con 10
decimales).
.set_TextMatrix(4, 5, Math.Round(Val(tablas4(4, 5)),
10)) 'Imprime el valor de
"(f''(a+h)-f''(a))/h"="f'''(a)" (con 10 decimales).
.set_TextMatrix(5, 5, Math.Round(Val(tablas4(5, 5)),
10)) 'Imprime el valor de
"(f''(a+2h)-f''(a+h))/h"="f'''(a+h)" (con 10
decimales).
.set_TextMatrix(5, 6, Math.Round(Val(tablas4(5, 6)),
10)) 'Imprime el valor de
"(f'''(a+h)-f'''(a))/h"="f''''(a)" (con 10 decimales).
End With
TextBox5.Text = "cuarta" 'Imprime el orden
de la derivada.
TextBox6.Text = tablas4(5, 6) 'Muestra la respuesta en el TextBox6.
TextBox7.Text = TextBox3.Text 'Imprime el error utilizado.
End If
End If
'CASO 5. QUINTA DERIVADA POR TABLAS DE
DIFERENCIAS DIVIDIDAS HACIA ADELANTE.
If (ComboBox1.SelectedItem
= "Tablas de Diferencias Divididas
Hacia Adelante") And (ComboBox2.SelectedItem =
"5ta. derivada")
Then
Dim i, j
As Integer '"i"
significará "fila" y "j" significará columna, de
modo que se trabajará con (i,j)=(fila,columna)
'Establece cuántas filas y
columnas tendrá el Grid.
AxMSFlexGrid1.Rows = 7 'Establece 7 filas.
AxMSFlexGrid1.Cols = 8 'Establece 8 columnas.
'Se crea una nueva instancia de la clase
Evaluador.
Dim mEval
As New
Evaluador()
'Se crea una variable tipo string y se
le asigna la expresión que se quiere evaluar.
Dim mExpresion
As String = TextBox1.Text ' = "X".
'Se crea un objeto StringCollection y se
le agregan los parámetros de entrada que usará el
método eval.
Dim mParameters
As New
StringCollection()
mParameters.Add("ByVal X as
Double")
'Las funciones a utilizar pertenece al
espacio de nombres System.Math.
'se hace necesario entonces, crear un
objeto StringCollection y agregar
'el namespace System.Math.
Dim mNameSpaces
As New
StringCollection()
mNameSpaces.Add("System.Math")
'Se invoca el método
PrecompilarFunción y se verifica si se generó
correctamente el assembly.
If
mEval.PrecompilarAssembly(mExpresion, mParameters,
mNameSpaces) Then
'Si el assembly se generó
correctamente, se crea un array con los valores de los parametros
a evaluar.
'Se invoca el método Evaluar y se
asignan los resultados correspondientes.
'Se limpian todas las celdas para que no
queden impresos resultados de procesos anteriores.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(0, 0) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
For fila
As Integer = 0 To .Rows – 1
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 0 To .Cols – 1
.set_TextMatrix(fila, columna, "") 'Por
estar dentro de los For anidados, con esto se ponen valores
String Empty en todas las celdas, de modo que no aparezca nada y
queden todas las celdas limpias y sin resultados de
cálculos hechos anteriormente.
Next
End With
Next
End With
'Se comienzan a hacer los
cálculos.
tablas5(1, 1) = Val(TextBox2.Text) 'Almacena "a".
tablas5(2, 1) = Val(TextBox2.Text) +
Val(TextBox3.Text) 'Almacena
"a+h".
tablas5(3, 1) = Val(TextBox2.Text) + (2 *
(Val(TextBox3.Text))) 'Almacena
"a+2h".
tablas5(4, 1) = Val(TextBox2.Text) + (3 *
(Val(TextBox3.Text))) 'Almacena
"a+3h".
tablas5(5, 1) = Val(TextBox2.Text) + (4 *
(Val(TextBox3.Text))) 'Almacena
"a+4h".
tablas5(6, 1) = Val(TextBox2.Text) + (5 *
(Val(TextBox3.Text))) 'Almacena
"a+5h".
tablas5(1, 2) = mEval.Evaluar(Val(tablas5(1, 1)))
'Almacena "f(a)".
tablas5(2, 2) = mEval.Evaluar(Val(tablas5(2, 1)))
'Almacena "f(a+h)".
tablas5(3, 2) = mEval.Evaluar(Val(tablas5(3, 1)))
'Almacena "f(a+2h)".
tablas5(4, 2) = mEval.Evaluar(Val(tablas5(4, 1)))
'Almacena "f(a+3h)".
tablas5(5, 2) = mEval.Evaluar(Val(tablas5(5, 1)))
'Almacena "f(a+4h)".
tablas5(6, 2) = mEval.Evaluar(Val(tablas5(6, 1)))
'Almacena "f(a+5h)".
tablas5(2, 3) = (Val(tablas5(2, 2)) – Val(tablas5(1,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+h)-f(a))/h"="f'(a)".
tablas5(3, 3) = (Val(tablas5(3, 2)) – Val(tablas5(2,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+2h)-f(a+h))/h"="f'(a+h)".
tablas5(4, 3) = (Val(tablas5(4, 2)) – Val(tablas5(3,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+3h)-f(a+2h))/h"="f'(a+2h)".
tablas5(5, 3) = (Val(tablas5(5, 2)) – Val(tablas5(4,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+4h)-f(a+3h))/h"="f'(a+3h)".
tablas5(6, 3) = (Val(tablas5(6, 2)) – Val(tablas5(5,
2))) / Val(TextBox3.Text) 'Almacena
"(f(a+5h)-f(a+4h))/h"="f'(a+4h)".
tablas5(3, 4) = (Val(tablas5(3, 3)) – Val(tablas5(2,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+h)-f'(a))/h"="f''(a)".
tablas5(4, 4) = (Val(tablas5(4, 3)) – Val(tablas5(3,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+2h)-f'(a+h))/h"="f''(a+h)".
tablas5(5, 4) = (Val(tablas5(5, 3)) – Val(tablas5(4,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+3h)-f'(a+2h))/h"="f''(a+2h)"
tablas5(6, 4) = (Val(tablas5(6, 3)) – Val(tablas5(5,
3))) / Val(TextBox3.Text) 'Almacena
"(f'(a+4h)-f'(a+3h))/h"="f''(a+3h)".
tablas5(4, 5) = (Val(tablas5(4, 4)) – Val(tablas5(3,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+h)-f''(a))/h"="f'''(a)".
tablas5(5, 5) = (Val(tablas5(5, 4)) – Val(tablas5(4,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+2h)-f''(a+h))/h"="f'''(a+h)".
tablas5(6, 5) = (Val(tablas5(6, 4)) – Val(tablas5(5,
4))) / Val(TextBox3.Text) 'Almacena
"(f''(a+3h)-f''(a+2h))/h"="f'''(a+2h)".
tablas5(5, 6) = (Val(tablas5(5, 5)) – Val(tablas5(4,
5))) / Val(TextBox3.Text) 'Almacena
"(f'''(a+h)-f'''(a))/h"="f''''(a)".
tablas5(6, 6) = (Val(tablas5(6, 5)) – Val(tablas5(5,
5))) / Val(TextBox3.Text) 'Almacena
"(f'''(a+2h)-f'''(a+h))/h"="'f''''(a+h)".
tablas5(6, 7) = (Val(tablas5(6, 6)) – Val(tablas5(5,
6))) / Val(TextBox3.Text) 'Almacena
"(f''''(a+h)-f''''(a))/h"="f'''''(a)".
'Para indicar que se realizarán
operaciones con el objeto AxMSFlexGrid1
'sin necesidad de escribir su
nombre.
'De aquí en adelante vienen las
impresiones de los valores en las celdas
correspondientes.
AxMSFlexGrid1.ForeColor = Color.Blue 'Cambia el color de letra de todas las celdas a
azul.
With AxMSFlexGrid1
'Para no estar poniendo por ejemplo
AxMSFlexGrid1.set_ColWidth(1, 500) y así sucesivamente, no
estar repitiendo a cada rato "AxMSFlexGrid1." NOTA: Desde el
"With" hasta el "End With" solamente deben estarse mandando a
imprimir valores a cada una de las celdas, y no estar haciendo
cálculos con condiciones If ni nada de eso dentro del
"With", pues todos los cálculos y condiciones deben
hacerse afuera y venir a esta sección del "With"
única y exclusivamente a hacer impresiones.
.AllowUserResizing =
MSFlexGridLib.AllowUserResizeSettings.flexResizeBoth
'Determina que el usuario puede modificar
el ancho de columna en tiempo de ejecución.
'Para ponerle color amarillo suave de
fondo a todas las celdas.
Dim Color1
As Color =
Color.LightGoldenrodYellow 'Amarillo
suave.
For fila
As Integer = 1 To .Rows – 1 'Para no involucrar la primera fila, se comienza de 1 y
no de 0.
With
AxMSFlexGrid1
.Row = fila
For columna
As Integer = 1 To .Cols – 1 'Para no involucrar la primera columna, se comienza de
1 y no de 0.
.Col = columna
.CellBackColor = Color1 'Por estar dentro del For, cambia el color de fondo de
todas las celdas a LighYellow (amarillo suave), pues la variable
Color1 fue inicializada anteriormente con el valor de
"Color.LightGoldenrodYellow".
.CellForeColor = Color.Blue 'Por estar dentro del For, cambia el color de letra de
todas las celdas a azul.
.set_ColWidth(columna, 1300) 'Por estar deltro del For, le da un ancho de 1300 a
cada columna.
Next
End With
Next
'Establece la alineación del
contenido de la columna 0
.set_ColAlignment(0,
MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
'Se le ponen los respectivos
títulos a cada fila.
'La sintaxis dentro del
paréntesis es: (fila, columna, valor).
.set_TextMatrix(1, 0, "a")
.set_TextMatrix(2, 0, "a+h")
.set_TextMatrix(3, 0, "a+2h")
.set_TextMatrix(4, 0, "a+3h")
.set_TextMatrix(5, 0, "a+4h")
.set_TextMatrix(6, 0, "a+5h")
'Se le ponen los respectivos
títulos a cada columna.
.set_TextMatrix(0, 1, "x")
.set_TextMatrix(0, 2, "f(x)")
.set_TextMatrix(0, 3, "f'(x)")
.set_TextMatrix(0, 4, "f''(x)")
.set_TextMatrix(0, 5, "f'''(x)")
.set_TextMatrix(0, 6, "f''''(x)")
.set_TextMatrix(0, 7, "f'''''(x)")
'Impresiones de resultados.
.set_TextMatrix(1, 1, Math.Round(Val(tablas5(1, 1)),
10)) 'Imprime el valor de "a" (con
10 decimales).
.set_TextMatrix(2, 1, Math.Round(Val(tablas5(2, 1)),
10)) 'Imprime el valor de "a+h" (con
10 decimales).
.set_TextMatrix(3, 1, Math.Round(Val(tablas5(3, 1)),
10)) 'Imprime el valor de "a+2h"
(con 10 decimales).
.set_TextMatrix(4, 1, Math.Round(Val(tablas5(4, 1)),
10)) 'Imprime el valor de "a+3h"
(con 10 decimales).
.set_TextMatrix(5, 1, Math.Round(Val(tablas5(5, 1)),
10)) 'Imprime el valor de "a+4h"
(con 10 decimales).
.set_TextMatrix(6, 1, Math.Round(Val(tablas5(6, 1)),
10)) 'Imprime el valor de "a+5h"
(con 10 decimales).
Página anterior | Volver al principio del trabajo | Página siguiente |