SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Sección
Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 1, No
2. Agosto − Diciembre 2001.
Gráficos de funciones en Visual Basic
Luis Acuña P.
lacuna@itcr.ac.cr
Escuela de Matemática
Instituto Tecnológico de Costa Rica
Introducción
En esta columna desarrollamos un programa en Visual Basic que permitirá al usuario graficar una función
cuadrática y observar el efecto de cada uno de los coeficientes sobre el gráfico.
Visual Basic es un ambiente de programación fundamentalmente gráfico. Todos los controles que se colocan
en un formulario, y el texto que se escriba en ellos, se “dibuja” como gráficos en la pantalla. Muchos controles
permiten que se muestren gráficos en ellos, como los botones de comando y los cuadros de imagen. Estos
gráficos normalmente vienen de archivos cuyo contenido se muestra en el control.
Pero los formularios y los cuadros de dibujo van más allá: estos tienen propiedades y métodos diseñados
específicamente para graficar en ellos. No solamente para mostrar archivos de imágenes, sino para dibujar
puntos, segmentos, curvas y otras figuras geométricas.
Cuadros de dibujo
Los formularios y los cuadros de dibujo (PictureBox) tienen las propiedades ScaleLeft, ScaleTop,
ScaleWidth y ScaleHeight, que determinan la escala de los gráficos que contendrán. Podemos pensar
en los formularios y cuadros de dibujo como ventanas a un sector rectangular de un plano coordenado. Las
propiedades ScaleLeft y ScaleTop dan las coordenadas de la esquina superior izquierda del sector, y las
propiedades ScaleWidth y ScaleHeight dan el ancho y el alto del sector, como se ve en el siguiente
diagrama:
ScaleLeft
ScaleTop
ScaleWidth
ScaleHeight
?
-
-
6
?
Por omisión, los valores de ScaleLeft y ScaleTop son 0, y los de ScaleWidth y ScaleHeight son iguales
a Width y Height, el tamaño del formulario o control en las unidades de medida activas (twips, pixels, cms,
etc.). Pero usualmente ScaleWidth y ScaleHeight recibirán valores que dependen del sector del plano que
queremos representar, independientemente del tamaño real. Por ejemplo, si en un rectángulo de 4 cm por 5
cm queremos representar el rectángulo [3,9]×[−1,8] del plano cartesiano, entonces Width y Height serán
4cm y 5cm (o su equivalente en twips, pixels, etc), pero ScaleWidth y ScaleHeight serán 6 y9.
La esquina superior izquierda tiene coordenadas (ScaleLeft,ScaleTop) y la inferior derecha tiene co-
ordenadas (ScaleLeft + ScaleWidth,ScaleTop + ScaleHeight). Para representar un sector del plano
2 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001.
cartesiano con la orientación usual (x mayores a la derecha, y mayores arriba), ScaleWidth debe ser positivo
y ScaleHeight negativo. Por ejemplo, haciendo ScaleLeft = 5, ScaleTop = 20, ScaleHeight = −15 y
ScaleWidth = 40 se consigue:
(5,20) (45,20)
(5,5) (45,5)
Los valores de estas propiedades pueden asignarse durante el diseño, o durante la ejecución de dos formas:
con asignaciones explícitas (ScaleLeft = 5, etc.) o con la instrucción
Objeto.Scale (XIzq, YArriba) - (XDer, YAbajo)
donde XIzq y XDer son los extremos izquierdo y derecho de la coordenada X, y YArriba y YAbajo son
los extremos superior e inferior de la coordenadaY. Objeto es el control para el cual se define la escala;
si se omite, se supone que es el formulario. Para el cuadro mostrado, la instrucción es Scale (5, 20) -
(45, 5).
Puntos y segmentos
Para dibujar un punto en un formulario o cuadro de dibujo se usa el método PSet, con la sintaxis
Objeto.PSet(x, y), color
donde x y y son las coordenadas del punto, y color es el color deseado. El color es opcional; si no se indica
se usa el ForeColor del objeto (como antes, si no se indica Objeto la instrucción se aplica al formulario).
El siguiente ejemplo muestra cómo dibujar mil puntos aleatorios en el formulario cada vez que se hace click
en él. En la Figura 1 vemos el resultado.
Private Sub Form_Click()
Dim i As Integer ’ contador
Dim x As Single, y As Single ’ coordenadas
For i = 1 To 1000 ’ dibujar 1000 puntos
x = Rnd * ScaleWidth
y = Rnd * ScaleHeight
PSet (x, y)
Next
End Sub
Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 3
Para cada punto, sus coordenadas son números aleatorios entre 0 y el ancho o el alto del formulario. Esto
distribuirá los puntos uniformemente si las coordenadas izquierda e inferior son ambas 0.
A menos que se defina otro valor para ForeColor, los puntos serán de color negro. Si la propiedad
AutoRedraw del formulario se deja en su valor inicial (falso), puede notarse que al hacer más pequeño
el formulario y luego volverlo a su tamaño anterior los puntos se pierden. Puede probarse lo siguiente: Correr
el programa; hacer click sobre el formulario; maximizar el formulario (los puntos anteriores se mantienen);
hacer click con el formulario maximizado; minimizar el formulario; maximizarlo de nuevo. En este mo-
mento se nota que los puntos que se habían dibujado la primera vez que se maximizó el formulario ya
desaparecieron. En cambio, si la propiedad AutoRedraw se hace verdadera, todos los puntos se mantienen
aunque el formulario cambie de tamaño.
Los segmentos de recta se dibujan con el método Line, cuya sintaxis es
Objeto.Line (x1, y1)-(x2, y2), color
donde (x1,y1) y (x2,y2) son las coordenadas de los extremos, y el parámetro color es opcional; si no se
indica se usa ForeColor
Una forma de indicar un color aleatorio es con la expresión RGB(255 * Rnd(), 255 * Rnd(), 255 *
Rnd()). La siguiente subrutina dibuja veinte segmentos aleatorios con color aleatorio en el formulario cada
vez que se hace click en él. El resultado se muestra en la Figura 2.
Private Sub Form_Click()
Dim x1 As Single, y1 As Single ’ 1er punto
Dim x2 As Single, y2 As Single ’ 2do punto
Dim i As Byte ’ contador
For i = 1 To 20 ’ dibujar 20 segmentos
x1 = Rnd * ScaleWidth
y1 = Rnd * ScaleHeight
x2 = Rnd * ScaleWidth
y2 = Rnd * ScaleHeight
Line (x1, y1)-(x2, y2), _
RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
Next
End Sub
4 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001.
En el método Line es posible omitir el primer punto y escribir sólo
Objeto.Line -(x2, y2)
En ese caso, el punto inicial es el último punto que se había dibujado. Si en el ejemplo anterior quitamos la
parte (x1,y1), lo que obtenemos es una sucesión de segmentos conectados (el primer segmento empieza en
(0,0)).
Curvas
Visual Basic no define ningún método para graficar curvas, pero la técnica usual es dibujar varios segmentos
pequeños consecutivos. Vamos a desarrollar un programa que le permitirá al usuario definir la ecuación de
una parábola, y le mostrará el gráfico en un cuadro de dibujo. El usuario escribe los coeficientes a, b y c en
la ecuación y = ax2 +bx +c de la parábola, y también los extremos xmin y xmax del dominio. En la Figura3
vemos el resultado de este proyecto.
Los cuadros de texto con los coeficientes de x2, de x y el constante, se llaman txtA, txtB y txtC. Los cuadros
con los extremos del dominio se llaman txtXmin y txtXmax. El cuadro donde se graficará la función es
picGrfico, y el botón de comando es cmdGraficar.
Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 5
En la ventana de código definimos la función por graficar:
’ Coeficientes de la funcin
Dim a As Single, b As Single, c As Single
’ Dominio y rango del grfico
Dim Xmin As Single, Xmax As Single ’ dominio
Dim Ymin As Single, Ymax As Single ’ rango
Private Function f(x As Single) As Single
’ La funcin por graficar
f = a * x ^ 2 + b * x + c
End Function
Las variables a, b y c son globales porque sus valores se les asignarán en cmdGraficar_Click y se usarán
en f. También Xmin, Xmax, Ymin y Ymax, los extremos del dominio y del rango, son globales porque se
definirán en cmdGraficar_Click y se usarán en Graficar, como veremos más tarde. A grandes rasgos, lo
que cmdGraficar_Click debe hacer es lo siguiente:
1. Leer y validar los datos (coeficientes y dominio)
2. Calcular el rango (mínimo y máximo para y)
3. Definir la escala de picGrfico
4. Llamar Graficar para graficar los ejes y la parábola.
Como veremos, los preparativos tomarán mucho más trabajo que propiamente graficar la función.
Para validar los datos hay dos condiciones: El valor de a no puede ser cero, y xmin debe ser estrictamente
menor que xmax. Si cualquiera de esas condiciones falla, la subrutina dará un mensaje de error y retornará.
Para calcular el rango necesitamos un poco de álgebra: Los puntos máximo y mínimo de una parábola
restringida a un intervalo se encuentran en los extremos del intervalo (xmin o xmax) o en el vértice. El vértice
tiene coordenada X igual a xv = −b/2a, pero si xv no pertenece al dominio, el máximo y el mínimo están en
los extremos del intervalo. Entonces el valor máximo de y, que denotaremos ymax, es el mayor entre f(xmin),
f(xmax) y f(xv) si xv ∈ [xmin,xmax], o solamente entre f(xmin) y f(xmax) si no. El cálculo de ymin es análogo.
Una vez determinados el máximo y el mínimo para x y para y, la escala de picGrfico se define con la
instrucción
picGrfico.Scale (Xmin, Ymax)-(Xmax, Ymin)
(recordemos que el método Scale necesita la esquina superior izquierda y la inferior derecha).
Finalmente, cmdGraficar_Click llamará a un procedimiento Graficar. Éste usa las variables globales
Xmin, Xmax, Ymin y Ymax y grafica la parábola en el rectángulo [xmin,xmax] × [ymin,ymax] del plano. Eso lo
hace en dos pasos:
1. Graficar los ejes de coordenadas, para lo cual basta con dos instrucciones
picGrfico.Line (0, Ymin)-(0, Ymax) picGrfico.Line (Xmin,0)-(Xmax, 0)
Si alguno de los ejes no apareciera en el gráfico, la instrucción correspondiente no tiene ningún efecto
visible.
6 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001.
2. Graficar la función con 100 segmentos de recta entre 101 puntos consecutivos sobre el gráfico (cien
es un número razonable; se puede probar con otros números y comparar el tiempo de ejecución y la
nitidez del gráfico). Para eso hace que x varíe de xmin a xmax en incrementos de (xmax −xmin)/100, cada
vez conectando el punto anterior con el nuevo punto (x, f(x)):
For x = Xmin To Xmax Step (Xmax - Xmin) / 100
picGrfico.Line -(x, f(x)) Next
Y con eso casi terminamos, excepto por dos detalles: La pantalla debería borrarse antes de graficar. También,
en el ciclo que acabamos de ver, la primera iteración dibuja un segmento hasta (xmin, f(xmin)), pero desde
dónde? Desde el último punto anterior, que fue (xmax,0), al graficar el eje X. Eso no es correcto. Para evitarlo
podemos dar la instrucción PSet (Xmin, f(Xmin)) inmediatamente antes del ciclo.
Uniendo todas estas consideraciones llegamos a la siguiente forma de cmdGraficar_Click y Graficar:
Private Sub cmdGraficar_Click()
’ Graficar la parbola
Dim Xv As Single ’ vrtice
’ Leer los coeficientes y ver que a0
a = Val(txtA): b = Val(txtB): c = Val(txtC)
If a = 0 Then
MsgBox El Coeficiente de x^2 no puedeser 0,vbCritical,Error
txtA.SetFocus
Exit Sub
End If
’ Leer y validar los extremos del dominio
Xmin = Val(txtXmin): Xmax = Val(txtXmax)
If Xmin = Xmax Then
MsgBox El dominio no es vlido, vbCritical, Error
txtXmin.SetFocus
Exit Sub
End If
’ Vrtice Xv = -b / (2 * a)
’ Calcular Ymin = min{f(x),f(Xmin),f(Xmax)}
Ymin = f(Xmin)
If f(Xmax)  Ymin Then Ymin = f(Xmax)
If Xmin  Xv And Xv  Xmax And f(Xv)  Ymin Then Ymin = f(Xv)
’ Calcular Ymax = maxf(Xv),f(Xmin),f(Xmax)
Ymax = f(Xmin)
If f(Xmax)  Ymax Then Ymax = f(Xmax)
If Xmin  Xv And Xv  Xmax And f(Xv)  Ymax
Then Ymax = f(Xv)
’ Definir la escala del grfico
picGrfico.Scale (Xmin, Ymax)-(Xmax, Ymin)
’ Graficar la parbola
Graficar
End Sub
Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 7
Private Sub Graficar
Dim x As Single
’ Graficar los ejes
picGrfico.Cls picGrfico.Line (0, Ymin)-(0, Ymax), vbBlue
picGrfico.Line (Xmin, 0)-(Xmax, 0), vbBlue
’ Graficar la funcin
picGrfico.PSet (Xmin, f(Xmin)) ’ inicio
For x = Xmin To Xmax Step (Xmax - Xmin) / 100
picGrfico.Line -(x, f(x))
Next
End Sub
Transformaciones dinámicas
Una posible mejora al proyecto recién completado consiste en añadir un mecanismo para que el usuario pueda
cambiar los valores de a, b y c y ver inmediatamente el efecto del cambio en el gráfico. Para esto podemos
poner un control UpDown al lado de cada coeficiente. El control UpDown es parte del componente “Microsoft
Windows Common Controls 2”. Para añadirlo a la caja de herramientas debe seleccionarse ese componente
en la lista que aparece al escoger la opción Componentes del menú Proyecto.
Podemos programar el control UpDown para que aumente el valor del coeficiente en un 10% de su valor
original. El 10% es una sugerencia; pueden probarse otros valores, y en especial debe resolverse el caso
particular de que el valor inicial del coeficiente sea cero.
Vayamos aclarando las ideas. Tenemos tres coeficientes y tres cuadros de texto, y estamos a punto de añadir tres
controles UpDown. Es mejor cambiar la nomenclatura y llamar los coeficientes Coef(2), Coef(1) y Coef(0)
en vez de a, b y c, respectivamente, y los cuadros de texto txtCoef(2), txtCoef(1) y txtCoef(0) en vez
de txtA, txtB, txtC. Finalmente, los controles UpDown se llamarán udCoef(2), udCoef(1) y udCoef(0).
En la Figura4 vemos el formulario rediseñado.
Ahora tendremos un arreglo Dim Coef(0 To 2) As Single para los coeficientes. Pero también, para que
cada incremento o decremento sea un 10% de los valores originales, necesitamos conservar copias de esos
8 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001.
valores en otro arreglo, que declararemos Dim CoefOrig(0 To 2) As Single. La sección (General)
del formulario y la definición de la función f serán entonces así:
Option Explicit
’ Coeficientes de la funcin
Dim Coef(0 To 2) As Single
Dim CoefOrig(0 To 2) As Single
’ Dominio y rango del gr’afico
Dim Xmin As Single, Xmax As Single
Dim Ymin As Single,
Ymax As Single
Private Function f(x As Single) As Single
’ La funcin por graficar
f = Coef(2) * x^2 + Coef(1) * x +Coef(0)
End Function
El evento cmdGraficar_Click() cambia ligeramente, principalmente para acomodar los cambios en los
nombres de los coeficientes:
Private Sub cmdGraficar_Click()
’ Graficar la par’abola
Dim i As Byte ’ contador
Dim Xv As Single ’ v’ertice
’ Leer los coeficientes y ver que a0
For i = 0 To 2: Coef(i) = Val(txtCoef(i)): Next
If Coef(2) = 0 Then
MsgBox El coeficiente de x^2 no puede   ser 0,
vbCritical, Error
txtCoef(2).SetFocus
Exit Sub
End If
’ Guardar los valores originales
For i = 0 To 2: CoefOrig(i) = Coef(i): Next
’ Leer y validar los extremos del dominio
Xmin = Val(txtXmin): Xmax =Val(txtXmax)
If Xmin = Xmax Then
MsgBox El dominio no es v’alido, vbCritical, Error
txtXmin.SetFocus
Exit Sub
End If
’ V’ertice: xv = -b / 2a
Xv = -Coef(1) / (2* Coef(2))
’ Calcular Ymin = min{f(x),f(Xmin),f(Xmax)}
Ymin =f(Xmin)
If f(Xmax)  Ymin Then Ymin = f(Xmax) If Xmin  Xv And Xv  Xmax And f(Xv)  Ymin
Then Ymin = f(Xv)
Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 9
’ Calcular Ymax = max{f(Xv),f(Xmin),f(Xmax)}
Ymax = f(Xmin)
If f(Xmax)  Ymax Then Ymax = f(Xmax) If Xmin  Xv And Xv  Xmax And f(Xv)  Ymax
Then Ymax = f(Xv)
’ Definir la escala del grfico
picGr’afico.Scale (Xmin, Ymax)-(Xmax, Ymin)
’ Graficar la par’abola
Graficar
End Sub
La subrutina Graficar se mantiene, pero para responder a los cambios que el usuario quiera hacer en los
coeficientes necesitamos programar los eventos udCoef_UpClick y udCoef_DownClick, que se dan cuando
el usuario hace click sobre la flecha arriba o la flecha abajo de cada control UpDown. En cada caso, el trabajo
es el siguiente:
1. Aumentar o disminuir el coeficiente respectivo en 10% de su valor original.
2. Reflejar el nuevo valor en el cuadro de texto.
3. Graficar la función con el nuevo coeficiente.
Vale la pena mencionar que el control UpDown tiene un mecanismo para que se le asigne un control “com-
pañero” (con la propiedad Buddy) que cambiará automáticamente cuando el usuario hace click sobre el
UpDown. Sin embargo, los cambios están restringidos a tamaños enteros, que para nuestro caso no son
suficientes. Por eso estamos programando el cambio manualmente.
Lo hacemos de esta manera:
Private Sub udCoef_UpClick(Index As Integer)
Coef(Index) = Coef(Index) + Abs(CoefOrig(Index)) / 10
txtCoef(Index).Text = Coef(Index)
Graficar
End Sub
Private Sub udCoef_DownClick(Index As Integer)
Coef(Index) = Coef(Index) - Abs(CoefOrig(Index)) / 10
txtCoef(Index).Text = Coef(Index)
Graficar
End Sub
Con eso tenemos un programa sencillo (apenas 90 líneas de código) pero muy útil para ilustrar el efecto de
cada coeficiente en el gráfico de una parábola. El usuario escribe los valores iniciales de los coeficientes y
el dominio de la función; el programa grafica la parábola con un rango apropiado, y ahora el usuario puede
modificar gradualmente los coeficientes para ver su efecto en el gráfico. Ocasionalmente, luego de varias
modificaciones, el gráfico se saldrá de su cuadro, pero con sólo hacer click sobre el botón “Graficar” el
programa ajustará el rango a los nuevos coeficientes.
Conclusión
Acabamos de ver un ejemplo de la facilidad con que se programan las aplicaciones gráficas en Visual Basic.
El lector puede fácilmente modificar este ejemplo para aplicarlo, por ejemplo, a funciones trigonométricas,
de modo que el usuario vea el efecto de los coeficientes en una función de la forma y = asen(bx + c) o
y = acos(bx + c). El caso de líneas rectas, por supuesto, es más bien una simplificación de nuestro trabajo
aquí.

Más contenido relacionado

La actualidad más candente

Fuentes Reales y Teorema de Superposicion
Fuentes Reales y Teorema de SuperposicionFuentes Reales y Teorema de Superposicion
Fuentes Reales y Teorema de SuperposicionJesu Nuñez
 
S01.s2 ley de coulomb
S01.s2 ley de coulombS01.s2 ley de coulomb
S01.s2 ley de coulombcarmen arela
 
Introduccion metodo secante en excel
Introduccion metodo secante en excelIntroduccion metodo secante en excel
Introduccion metodo secante en excelJeimer Jimenez
 
Ecuaciones diferenciales exactas y lineales
Ecuaciones diferenciales exactas y linealesEcuaciones diferenciales exactas y lineales
Ecuaciones diferenciales exactas y linealesAndresMartinez101291
 
Ejercicios de integrales_impropias
Ejercicios de integrales_impropiasEjercicios de integrales_impropias
Ejercicios de integrales_impropiasSabena29
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenjackytas7
 
Derivadas logarítmicas y Parciales
Derivadas logarítmicas y Parciales Derivadas logarítmicas y Parciales
Derivadas logarítmicas y Parciales michelleCC17
 
Guía de Ecuaciones Diferenciales
Guía de Ecuaciones DiferencialesGuía de Ecuaciones Diferenciales
Guía de Ecuaciones DiferencialesAbril Bello
 
Distribución gamma
Distribución gammaDistribución gamma
Distribución gammaalfagar
 
8 integrales
8 integrales8 integrales
8 integralesEverLuna
 
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricas
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricasLaboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricas
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricasJefferson Agila
 
Fisica pract 1 lab
Fisica pract 1 labFisica pract 1 lab
Fisica pract 1 lablaury kiryu
 
Intervalos de confianza
Intervalos de confianzaIntervalos de confianza
Intervalos de confianzaVicNoee
 
Fisica ii corriente, circuitos de corriente directa s
Fisica ii corriente, circuitos de corriente directa s Fisica ii corriente, circuitos de corriente directa s
Fisica ii corriente, circuitos de corriente directa s Joel Panchana
 
VECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMALVECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMALMario Muruato
 
Circuitos RLC.pdf
Circuitos RLC.pdfCircuitos RLC.pdf
Circuitos RLC.pdfOmar_Ustoa
 
Electromagnetismo U-III
Electromagnetismo U-IIIElectromagnetismo U-III
Electromagnetismo U-IIIarjagus
 

La actualidad más candente (20)

Fuentes Reales y Teorema de Superposicion
Fuentes Reales y Teorema de SuperposicionFuentes Reales y Teorema de Superposicion
Fuentes Reales y Teorema de Superposicion
 
S01.s2 ley de coulomb
S01.s2 ley de coulombS01.s2 ley de coulomb
S01.s2 ley de coulomb
 
Introduccion metodo secante en excel
Introduccion metodo secante en excelIntroduccion metodo secante en excel
Introduccion metodo secante en excel
 
Ecuaciones diferenciales exactas y lineales
Ecuaciones diferenciales exactas y linealesEcuaciones diferenciales exactas y lineales
Ecuaciones diferenciales exactas y lineales
 
Ejercicios de integrales_impropias
Ejercicios de integrales_impropiasEjercicios de integrales_impropias
Ejercicios de integrales_impropias
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Derivadas logarítmicas y Parciales
Derivadas logarítmicas y Parciales Derivadas logarítmicas y Parciales
Derivadas logarítmicas y Parciales
 
Guía de Ecuaciones Diferenciales
Guía de Ecuaciones DiferencialesGuía de Ecuaciones Diferenciales
Guía de Ecuaciones Diferenciales
 
Distribución gamma
Distribución gammaDistribución gamma
Distribución gamma
 
8 integrales
8 integrales8 integrales
8 integrales
 
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricas
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricasLaboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricas
Laboratorio practica-3-instrumentos-de-medición-de-magnitudes-eléctricas
 
Fisica pract 1 lab
Fisica pract 1 labFisica pract 1 lab
Fisica pract 1 lab
 
Intervalos de confianza
Intervalos de confianzaIntervalos de confianza
Intervalos de confianza
 
Fisica ii corriente, circuitos de corriente directa s
Fisica ii corriente, circuitos de corriente directa s Fisica ii corriente, circuitos de corriente directa s
Fisica ii corriente, circuitos de corriente directa s
 
Errores e incertidumbres usados en fisica
Errores e incertidumbres usados en fisicaErrores e incertidumbres usados en fisica
Errores e incertidumbres usados en fisica
 
Tabla de integrales
Tabla de integralesTabla de integrales
Tabla de integrales
 
Reporte 3 Laboratorio de Estática FI
Reporte 3 Laboratorio de Estática FIReporte 3 Laboratorio de Estática FI
Reporte 3 Laboratorio de Estática FI
 
VECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMALVECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMAL
 
Circuitos RLC.pdf
Circuitos RLC.pdfCircuitos RLC.pdf
Circuitos RLC.pdf
 
Electromagnetismo U-III
Electromagnetismo U-IIIElectromagnetismo U-III
Electromagnetismo U-III
 

Destacado

Arquitectura viviendas
Arquitectura viviendasArquitectura viviendas
Arquitectura viviendassayto20
 
Dimensionamientos de las partes de una casa
Dimensionamientos de las partes de una casaDimensionamientos de las partes de una casa
Dimensionamientos de las partes de una casaafore XXI
 
Dormitorio todas las dimensiones-2012
Dormitorio todas las dimensiones-2012Dormitorio todas las dimensiones-2012
Dormitorio todas las dimensiones-2012Gabriel Buda
 
Relaciones funcionales en una vivienda
Relaciones funcionales en una viviendaRelaciones funcionales en una vivienda
Relaciones funcionales en una viviendagriselda702
 
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓN
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓNZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓN
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓNLUCERO ANDREA CHAVEZ GOMEZ
 
Analisis Arquitectonico
Analisis ArquitectonicoAnalisis Arquitectonico
Analisis ArquitectonicoCheo Nava
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoJorge Granados Valencia
 

Destacado (9)

Arquitectura viviendas
Arquitectura viviendasArquitectura viviendas
Arquitectura viviendas
 
Dimensionamientos de las partes de una casa
Dimensionamientos de las partes de una casaDimensionamientos de las partes de una casa
Dimensionamientos de las partes de una casa
 
Dormitorio todas las dimensiones-2012
Dormitorio todas las dimensiones-2012Dormitorio todas las dimensiones-2012
Dormitorio todas las dimensiones-2012
 
Manual de ergonomia
Manual de ergonomiaManual de ergonomia
Manual de ergonomia
 
Relaciones funcionales en una vivienda
Relaciones funcionales en una viviendaRelaciones funcionales en una vivienda
Relaciones funcionales en una vivienda
 
Metodología Casa habitación
Metodología Casa habitaciónMetodología Casa habitación
Metodología Casa habitación
 
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓN
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓNZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓN
ZONIFICACIÓN DE UNA VIVIENDA - ARQUITECTURA - EDIFICACIÓN
 
Analisis Arquitectonico
Analisis ArquitectonicoAnalisis Arquitectonico
Analisis Arquitectonico
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónico
 

Similar a Gráficos de funciones en Visual Basic

LAcuna_GraficosVisualBasic.pdf
LAcuna_GraficosVisualBasic.pdfLAcuna_GraficosVisualBasic.pdf
LAcuna_GraficosVisualBasic.pdfCristianLeonITC
 
Vb Ii, Unidad Iv MéTodos Graficos
Vb Ii, Unidad Iv MéTodos GraficosVb Ii, Unidad Iv MéTodos Graficos
Vb Ii, Unidad Iv MéTodos GraficosUTP, TA
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6guest4f4d78d
 
Graficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dGraficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dSebastian Cuenca
 
Practicas derive 6
Practicas derive 6Practicas derive 6
Practicas derive 6Edson Olvera
 
Gráficas en Matlab
Gráficas en MatlabGráficas en Matlab
Gráficas en MatlabGaby Solano
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacionluis_xD
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabAdalberto C
 
Graficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabGraficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabJuan Ete
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplotblogdevon
 
Calculo integral
Calculo integralCalculo integral
Calculo integraljalidf
 
Computadoras y mecanica de fluidos
Computadoras y mecanica de fluidosComputadoras y mecanica de fluidos
Computadoras y mecanica de fluidosvictor ore
 
Metodos Graficos[Remodelacion]
Metodos Graficos[Remodelacion]Metodos Graficos[Remodelacion]
Metodos Graficos[Remodelacion]angelikita.92
 

Similar a Gráficos de funciones en Visual Basic (20)

LAcuna_GraficosVisualBasic.pdf
LAcuna_GraficosVisualBasic.pdfLAcuna_GraficosVisualBasic.pdf
LAcuna_GraficosVisualBasic.pdf
 
Semana 03 software libre maxima
Semana 03 software libre maximaSemana 03 software libre maxima
Semana 03 software libre maxima
 
Vb Ii, Unidad Iv MéTodos Graficos
Vb Ii, Unidad Iv MéTodos GraficosVb Ii, Unidad Iv MéTodos Graficos
Vb Ii, Unidad Iv MéTodos Graficos
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6
 
Graficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dGraficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3d
 
Practicas derive 6
Practicas derive 6Practicas derive 6
Practicas derive 6
 
Gráficas en Matlab
Gráficas en MatlabGráficas en Matlab
Gráficas en Matlab
 
Manual winplot
Manual winplotManual winplot
Manual winplot
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
Lab 3 de tele final
Lab 3 de tele finalLab 3 de tele final
Lab 3 de tele final
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlab
 
Graficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabGraficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlab
 
Gráficas en matlab
Gráficas en matlabGráficas en matlab
Gráficas en matlab
 
Tutorial de winplot
Tutorial de winplotTutorial de winplot
Tutorial de winplot
 
Calculo integral
Calculo integralCalculo integral
Calculo integral
 
Computadoras y mecanica de fluidos
Computadoras y mecanica de fluidosComputadoras y mecanica de fluidos
Computadoras y mecanica de fluidos
 
Metodos Graficos[Remodelacion]
Metodos Graficos[Remodelacion]Metodos Graficos[Remodelacion]
Metodos Graficos[Remodelacion]
 
Funciones parte ii
Funciones parte iiFunciones parte ii
Funciones parte ii
 
Funciones parte i
Funciones parte iFunciones parte i
Funciones parte i
 
Introduccionaautocad
IntroduccionaautocadIntroduccionaautocad
Introduccionaautocad
 

Más de johnny herrera

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrerajohnny herrera
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900johnny herrera
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-partejohnny herrera
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1johnny herrera
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .netjohnny herrera
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0johnny herrera
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetosjohnny herrera
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilarjohnny herrera
 
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 johnny herrera
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60johnny herrera
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitariajohnny herrera
 

Más de johnny herrera (20)

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrera
 
Tiristores
TiristoresTiristores
Tiristores
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parte
 
METODOS Y MODELOS POO
METODOS Y MODELOS POOMETODOS Y MODELOS POO
METODOS Y MODELOS POO
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilar
 
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Tutorial de Visual
Tutorial de  VisualTutorial de  Visual
Tutorial de Visual
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60
 
Modulo Derivadas
Modulo DerivadasModulo Derivadas
Modulo Derivadas
 
Matematica 1 usb
Matematica 1 usbMatematica 1 usb
Matematica 1 usb
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitaria
 
Matematica1 usb
Matematica1 usbMatematica1 usb
Matematica1 usb
 

Último

OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

Gráficos de funciones en Visual Basic

  • 1. Sección Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 1, No 2. Agosto − Diciembre 2001. Gráficos de funciones en Visual Basic Luis Acuña P. lacuna@itcr.ac.cr Escuela de Matemática Instituto Tecnológico de Costa Rica Introducción En esta columna desarrollamos un programa en Visual Basic que permitirá al usuario graficar una función cuadrática y observar el efecto de cada uno de los coeficientes sobre el gráfico. Visual Basic es un ambiente de programación fundamentalmente gráfico. Todos los controles que se colocan en un formulario, y el texto que se escriba en ellos, se “dibuja” como gráficos en la pantalla. Muchos controles permiten que se muestren gráficos en ellos, como los botones de comando y los cuadros de imagen. Estos gráficos normalmente vienen de archivos cuyo contenido se muestra en el control. Pero los formularios y los cuadros de dibujo van más allá: estos tienen propiedades y métodos diseñados específicamente para graficar en ellos. No solamente para mostrar archivos de imágenes, sino para dibujar puntos, segmentos, curvas y otras figuras geométricas. Cuadros de dibujo Los formularios y los cuadros de dibujo (PictureBox) tienen las propiedades ScaleLeft, ScaleTop, ScaleWidth y ScaleHeight, que determinan la escala de los gráficos que contendrán. Podemos pensar en los formularios y cuadros de dibujo como ventanas a un sector rectangular de un plano coordenado. Las propiedades ScaleLeft y ScaleTop dan las coordenadas de la esquina superior izquierda del sector, y las propiedades ScaleWidth y ScaleHeight dan el ancho y el alto del sector, como se ve en el siguiente diagrama: ScaleLeft ScaleTop ScaleWidth ScaleHeight ? - - 6 ? Por omisión, los valores de ScaleLeft y ScaleTop son 0, y los de ScaleWidth y ScaleHeight son iguales a Width y Height, el tamaño del formulario o control en las unidades de medida activas (twips, pixels, cms, etc.). Pero usualmente ScaleWidth y ScaleHeight recibirán valores que dependen del sector del plano que queremos representar, independientemente del tamaño real. Por ejemplo, si en un rectángulo de 4 cm por 5 cm queremos representar el rectángulo [3,9]×[−1,8] del plano cartesiano, entonces Width y Height serán 4cm y 5cm (o su equivalente en twips, pixels, etc), pero ScaleWidth y ScaleHeight serán 6 y9. La esquina superior izquierda tiene coordenadas (ScaleLeft,ScaleTop) y la inferior derecha tiene co- ordenadas (ScaleLeft + ScaleWidth,ScaleTop + ScaleHeight). Para representar un sector del plano
  • 2. 2 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. cartesiano con la orientación usual (x mayores a la derecha, y mayores arriba), ScaleWidth debe ser positivo y ScaleHeight negativo. Por ejemplo, haciendo ScaleLeft = 5, ScaleTop = 20, ScaleHeight = −15 y ScaleWidth = 40 se consigue: (5,20) (45,20) (5,5) (45,5) Los valores de estas propiedades pueden asignarse durante el diseño, o durante la ejecución de dos formas: con asignaciones explícitas (ScaleLeft = 5, etc.) o con la instrucción Objeto.Scale (XIzq, YArriba) - (XDer, YAbajo) donde XIzq y XDer son los extremos izquierdo y derecho de la coordenada X, y YArriba y YAbajo son los extremos superior e inferior de la coordenadaY. Objeto es el control para el cual se define la escala; si se omite, se supone que es el formulario. Para el cuadro mostrado, la instrucción es Scale (5, 20) - (45, 5). Puntos y segmentos Para dibujar un punto en un formulario o cuadro de dibujo se usa el método PSet, con la sintaxis Objeto.PSet(x, y), color donde x y y son las coordenadas del punto, y color es el color deseado. El color es opcional; si no se indica se usa el ForeColor del objeto (como antes, si no se indica Objeto la instrucción se aplica al formulario). El siguiente ejemplo muestra cómo dibujar mil puntos aleatorios en el formulario cada vez que se hace click en él. En la Figura 1 vemos el resultado. Private Sub Form_Click() Dim i As Integer ’ contador Dim x As Single, y As Single ’ coordenadas For i = 1 To 1000 ’ dibujar 1000 puntos x = Rnd * ScaleWidth y = Rnd * ScaleHeight PSet (x, y) Next End Sub
  • 3. Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 3 Para cada punto, sus coordenadas son números aleatorios entre 0 y el ancho o el alto del formulario. Esto distribuirá los puntos uniformemente si las coordenadas izquierda e inferior son ambas 0. A menos que se defina otro valor para ForeColor, los puntos serán de color negro. Si la propiedad AutoRedraw del formulario se deja en su valor inicial (falso), puede notarse que al hacer más pequeño el formulario y luego volverlo a su tamaño anterior los puntos se pierden. Puede probarse lo siguiente: Correr el programa; hacer click sobre el formulario; maximizar el formulario (los puntos anteriores se mantienen); hacer click con el formulario maximizado; minimizar el formulario; maximizarlo de nuevo. En este mo- mento se nota que los puntos que se habían dibujado la primera vez que se maximizó el formulario ya desaparecieron. En cambio, si la propiedad AutoRedraw se hace verdadera, todos los puntos se mantienen aunque el formulario cambie de tamaño. Los segmentos de recta se dibujan con el método Line, cuya sintaxis es Objeto.Line (x1, y1)-(x2, y2), color donde (x1,y1) y (x2,y2) son las coordenadas de los extremos, y el parámetro color es opcional; si no se indica se usa ForeColor Una forma de indicar un color aleatorio es con la expresión RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd()). La siguiente subrutina dibuja veinte segmentos aleatorios con color aleatorio en el formulario cada vez que se hace click en él. El resultado se muestra en la Figura 2. Private Sub Form_Click() Dim x1 As Single, y1 As Single ’ 1er punto Dim x2 As Single, y2 As Single ’ 2do punto Dim i As Byte ’ contador For i = 1 To 20 ’ dibujar 20 segmentos x1 = Rnd * ScaleWidth y1 = Rnd * ScaleHeight x2 = Rnd * ScaleWidth y2 = Rnd * ScaleHeight Line (x1, y1)-(x2, y2), _ RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd()) Next End Sub
  • 4. 4 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. En el método Line es posible omitir el primer punto y escribir sólo Objeto.Line -(x2, y2) En ese caso, el punto inicial es el último punto que se había dibujado. Si en el ejemplo anterior quitamos la parte (x1,y1), lo que obtenemos es una sucesión de segmentos conectados (el primer segmento empieza en (0,0)). Curvas Visual Basic no define ningún método para graficar curvas, pero la técnica usual es dibujar varios segmentos pequeños consecutivos. Vamos a desarrollar un programa que le permitirá al usuario definir la ecuación de una parábola, y le mostrará el gráfico en un cuadro de dibujo. El usuario escribe los coeficientes a, b y c en la ecuación y = ax2 +bx +c de la parábola, y también los extremos xmin y xmax del dominio. En la Figura3 vemos el resultado de este proyecto. Los cuadros de texto con los coeficientes de x2, de x y el constante, se llaman txtA, txtB y txtC. Los cuadros con los extremos del dominio se llaman txtXmin y txtXmax. El cuadro donde se graficará la función es picGrfico, y el botón de comando es cmdGraficar.
  • 5. Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 5 En la ventana de código definimos la función por graficar: ’ Coeficientes de la funcin Dim a As Single, b As Single, c As Single ’ Dominio y rango del grfico Dim Xmin As Single, Xmax As Single ’ dominio Dim Ymin As Single, Ymax As Single ’ rango Private Function f(x As Single) As Single ’ La funcin por graficar f = a * x ^ 2 + b * x + c End Function Las variables a, b y c son globales porque sus valores se les asignarán en cmdGraficar_Click y se usarán en f. También Xmin, Xmax, Ymin y Ymax, los extremos del dominio y del rango, son globales porque se definirán en cmdGraficar_Click y se usarán en Graficar, como veremos más tarde. A grandes rasgos, lo que cmdGraficar_Click debe hacer es lo siguiente: 1. Leer y validar los datos (coeficientes y dominio) 2. Calcular el rango (mínimo y máximo para y) 3. Definir la escala de picGrfico 4. Llamar Graficar para graficar los ejes y la parábola. Como veremos, los preparativos tomarán mucho más trabajo que propiamente graficar la función. Para validar los datos hay dos condiciones: El valor de a no puede ser cero, y xmin debe ser estrictamente menor que xmax. Si cualquiera de esas condiciones falla, la subrutina dará un mensaje de error y retornará. Para calcular el rango necesitamos un poco de álgebra: Los puntos máximo y mínimo de una parábola restringida a un intervalo se encuentran en los extremos del intervalo (xmin o xmax) o en el vértice. El vértice tiene coordenada X igual a xv = −b/2a, pero si xv no pertenece al dominio, el máximo y el mínimo están en los extremos del intervalo. Entonces el valor máximo de y, que denotaremos ymax, es el mayor entre f(xmin), f(xmax) y f(xv) si xv ∈ [xmin,xmax], o solamente entre f(xmin) y f(xmax) si no. El cálculo de ymin es análogo. Una vez determinados el máximo y el mínimo para x y para y, la escala de picGrfico se define con la instrucción picGrfico.Scale (Xmin, Ymax)-(Xmax, Ymin) (recordemos que el método Scale necesita la esquina superior izquierda y la inferior derecha). Finalmente, cmdGraficar_Click llamará a un procedimiento Graficar. Éste usa las variables globales Xmin, Xmax, Ymin y Ymax y grafica la parábola en el rectángulo [xmin,xmax] × [ymin,ymax] del plano. Eso lo hace en dos pasos: 1. Graficar los ejes de coordenadas, para lo cual basta con dos instrucciones picGrfico.Line (0, Ymin)-(0, Ymax) picGrfico.Line (Xmin,0)-(Xmax, 0) Si alguno de los ejes no apareciera en el gráfico, la instrucción correspondiente no tiene ningún efecto visible.
  • 6. 6 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 2. Graficar la función con 100 segmentos de recta entre 101 puntos consecutivos sobre el gráfico (cien es un número razonable; se puede probar con otros números y comparar el tiempo de ejecución y la nitidez del gráfico). Para eso hace que x varíe de xmin a xmax en incrementos de (xmax −xmin)/100, cada vez conectando el punto anterior con el nuevo punto (x, f(x)): For x = Xmin To Xmax Step (Xmax - Xmin) / 100 picGrfico.Line -(x, f(x)) Next Y con eso casi terminamos, excepto por dos detalles: La pantalla debería borrarse antes de graficar. También, en el ciclo que acabamos de ver, la primera iteración dibuja un segmento hasta (xmin, f(xmin)), pero desde dónde? Desde el último punto anterior, que fue (xmax,0), al graficar el eje X. Eso no es correcto. Para evitarlo podemos dar la instrucción PSet (Xmin, f(Xmin)) inmediatamente antes del ciclo. Uniendo todas estas consideraciones llegamos a la siguiente forma de cmdGraficar_Click y Graficar: Private Sub cmdGraficar_Click() ’ Graficar la parbola Dim Xv As Single ’ vrtice ’ Leer los coeficientes y ver que a0 a = Val(txtA): b = Val(txtB): c = Val(txtC) If a = 0 Then MsgBox El Coeficiente de x^2 no puedeser 0,vbCritical,Error txtA.SetFocus Exit Sub End If ’ Leer y validar los extremos del dominio Xmin = Val(txtXmin): Xmax = Val(txtXmax) If Xmin = Xmax Then MsgBox El dominio no es vlido, vbCritical, Error txtXmin.SetFocus Exit Sub End If ’ Vrtice Xv = -b / (2 * a) ’ Calcular Ymin = min{f(x),f(Xmin),f(Xmax)} Ymin = f(Xmin) If f(Xmax) Ymin Then Ymin = f(Xmax) If Xmin Xv And Xv Xmax And f(Xv) Ymin Then Ymin = f(Xv) ’ Calcular Ymax = maxf(Xv),f(Xmin),f(Xmax) Ymax = f(Xmin) If f(Xmax) Ymax Then Ymax = f(Xmax) If Xmin Xv And Xv Xmax And f(Xv) Ymax Then Ymax = f(Xv) ’ Definir la escala del grfico picGrfico.Scale (Xmin, Ymax)-(Xmax, Ymin) ’ Graficar la parbola Graficar End Sub
  • 7. Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 7 Private Sub Graficar Dim x As Single ’ Graficar los ejes picGrfico.Cls picGrfico.Line (0, Ymin)-(0, Ymax), vbBlue picGrfico.Line (Xmin, 0)-(Xmax, 0), vbBlue ’ Graficar la funcin picGrfico.PSet (Xmin, f(Xmin)) ’ inicio For x = Xmin To Xmax Step (Xmax - Xmin) / 100 picGrfico.Line -(x, f(x)) Next End Sub Transformaciones dinámicas Una posible mejora al proyecto recién completado consiste en añadir un mecanismo para que el usuario pueda cambiar los valores de a, b y c y ver inmediatamente el efecto del cambio en el gráfico. Para esto podemos poner un control UpDown al lado de cada coeficiente. El control UpDown es parte del componente “Microsoft Windows Common Controls 2”. Para añadirlo a la caja de herramientas debe seleccionarse ese componente en la lista que aparece al escoger la opción Componentes del menú Proyecto. Podemos programar el control UpDown para que aumente el valor del coeficiente en un 10% de su valor original. El 10% es una sugerencia; pueden probarse otros valores, y en especial debe resolverse el caso particular de que el valor inicial del coeficiente sea cero. Vayamos aclarando las ideas. Tenemos tres coeficientes y tres cuadros de texto, y estamos a punto de añadir tres controles UpDown. Es mejor cambiar la nomenclatura y llamar los coeficientes Coef(2), Coef(1) y Coef(0) en vez de a, b y c, respectivamente, y los cuadros de texto txtCoef(2), txtCoef(1) y txtCoef(0) en vez de txtA, txtB, txtC. Finalmente, los controles UpDown se llamarán udCoef(2), udCoef(1) y udCoef(0). En la Figura4 vemos el formulario rediseñado. Ahora tendremos un arreglo Dim Coef(0 To 2) As Single para los coeficientes. Pero también, para que cada incremento o decremento sea un 10% de los valores originales, necesitamos conservar copias de esos
  • 8. 8 Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. valores en otro arreglo, que declararemos Dim CoefOrig(0 To 2) As Single. La sección (General) del formulario y la definición de la función f serán entonces así: Option Explicit ’ Coeficientes de la funcin Dim Coef(0 To 2) As Single Dim CoefOrig(0 To 2) As Single ’ Dominio y rango del gr’afico Dim Xmin As Single, Xmax As Single Dim Ymin As Single, Ymax As Single Private Function f(x As Single) As Single ’ La funcin por graficar f = Coef(2) * x^2 + Coef(1) * x +Coef(0) End Function El evento cmdGraficar_Click() cambia ligeramente, principalmente para acomodar los cambios en los nombres de los coeficientes: Private Sub cmdGraficar_Click() ’ Graficar la par’abola Dim i As Byte ’ contador Dim Xv As Single ’ v’ertice ’ Leer los coeficientes y ver que a0 For i = 0 To 2: Coef(i) = Val(txtCoef(i)): Next If Coef(2) = 0 Then MsgBox El coeficiente de x^2 no puede ser 0, vbCritical, Error txtCoef(2).SetFocus Exit Sub End If ’ Guardar los valores originales For i = 0 To 2: CoefOrig(i) = Coef(i): Next ’ Leer y validar los extremos del dominio Xmin = Val(txtXmin): Xmax =Val(txtXmax) If Xmin = Xmax Then MsgBox El dominio no es v’alido, vbCritical, Error txtXmin.SetFocus Exit Sub End If ’ V’ertice: xv = -b / 2a Xv = -Coef(1) / (2* Coef(2)) ’ Calcular Ymin = min{f(x),f(Xmin),f(Xmax)} Ymin =f(Xmin) If f(Xmax) Ymin Then Ymin = f(Xmax) If Xmin Xv And Xv Xmax And f(Xv) Ymin Then Ymin = f(Xv)
  • 9. Revista digital Matemática, Educación e I nternet (www.cidse.itcr.ac.cr/revistamate/). Vol 1, No 2. Agosto − Diciembre 2001. 9 ’ Calcular Ymax = max{f(Xv),f(Xmin),f(Xmax)} Ymax = f(Xmin) If f(Xmax) Ymax Then Ymax = f(Xmax) If Xmin Xv And Xv Xmax And f(Xv) Ymax Then Ymax = f(Xv) ’ Definir la escala del grfico picGr’afico.Scale (Xmin, Ymax)-(Xmax, Ymin) ’ Graficar la par’abola Graficar End Sub La subrutina Graficar se mantiene, pero para responder a los cambios que el usuario quiera hacer en los coeficientes necesitamos programar los eventos udCoef_UpClick y udCoef_DownClick, que se dan cuando el usuario hace click sobre la flecha arriba o la flecha abajo de cada control UpDown. En cada caso, el trabajo es el siguiente: 1. Aumentar o disminuir el coeficiente respectivo en 10% de su valor original. 2. Reflejar el nuevo valor en el cuadro de texto. 3. Graficar la función con el nuevo coeficiente. Vale la pena mencionar que el control UpDown tiene un mecanismo para que se le asigne un control “com- pañero” (con la propiedad Buddy) que cambiará automáticamente cuando el usuario hace click sobre el UpDown. Sin embargo, los cambios están restringidos a tamaños enteros, que para nuestro caso no son suficientes. Por eso estamos programando el cambio manualmente. Lo hacemos de esta manera: Private Sub udCoef_UpClick(Index As Integer) Coef(Index) = Coef(Index) + Abs(CoefOrig(Index)) / 10 txtCoef(Index).Text = Coef(Index) Graficar End Sub Private Sub udCoef_DownClick(Index As Integer) Coef(Index) = Coef(Index) - Abs(CoefOrig(Index)) / 10 txtCoef(Index).Text = Coef(Index) Graficar End Sub Con eso tenemos un programa sencillo (apenas 90 líneas de código) pero muy útil para ilustrar el efecto de cada coeficiente en el gráfico de una parábola. El usuario escribe los valores iniciales de los coeficientes y el dominio de la función; el programa grafica la parábola con un rango apropiado, y ahora el usuario puede modificar gradualmente los coeficientes para ver su efecto en el gráfico. Ocasionalmente, luego de varias modificaciones, el gráfico se saldrá de su cuadro, pero con sólo hacer click sobre el botón “Graficar” el programa ajustará el rango a los nuevos coeficientes. Conclusión Acabamos de ver un ejemplo de la facilidad con que se programan las aplicaciones gráficas en Visual Basic. El lector puede fácilmente modificar este ejemplo para aplicarlo, por ejemplo, a funciones trigonométricas, de modo que el usuario vea el efecto de los coeficientes en una función de la forma y = asen(bx + c) o y = acos(bx + c). El caso de líneas rectas, por supuesto, es más bien una simplificación de nuestro trabajo aquí.