Transcript
PROGRAMACION EN VISUAL BASIC
31
GUIA DE LABORATORIO N° 05 Aplicación N° 10 Se desea hacer una aplicación que permita evaluar el valor de la función definida por el gráfico mostrado a continuación. En esta aplicación se debe hacer uso de una function que al ser llamada nos devuelva el valor de la función dada definida por el gráfico. Y 3a
a X a
5a
6a
El diseño del formulario de entrada y salida para la aplicación indicada es la que se muestra seguidamente.
En el diseño del formulario se necesitaron crear los siguientes controles: 6 etiquetas
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
32
3 cajas de texto 3 botones de commando Las propiedades de cada uno de los controles ubicados en el formulario, son indicados a continuación: Form1 Nombre Caption
frm_e_x EVALUACION DE UNA FUNCION
Nombre Caption autosize font
lbltitulo FUNCIÓN DE 3 TRAMOS true MS Sans Serif-negrita-12
Nombre Caption autosize
lbla a true
Nombre text
txta
Nombre Caption autosize
lblx x true
Nombre text
txtx
Label1
Label2
Text1
Label3
Text2
Command1 Nombre Caption
cmdejecutar EJECUTAR
Command2 Nombre Caption
cmdlimpiar LIMPIAR
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
Command3 Nombre Caption
33
cmdsalir SALIR
Label4 Nombre Caption autosize
lblfx f(x) true
Nombre text alignment
txtfx
Nombre Caption autosize
lblobs OBSERVACION true
Nombre caption backcolor
lblobservacion
Text3
2-center
Label5
Label6
fondo de la ventana
A continuación escribimos el código correspondiente a la function en este caso denominada y, cuyos argumentos de entrada son a y x Option Explicit Function y(a As Double, x As Double) As Double If (x >= 0 And x <= a) Then lblobservacion = "x pertenece al intervalo 1: [0, a]" y = Sqr(a ^ 2 - (x - a) ^ 2) End If If x >= a And x <= 5 * a Then lblobservacion = "x pertenece al intervalo 2: [a, 5a]" y = Sqr(4 * a ^ 2 - (x - 3 * a) ^ 2) + a End If If x >= 5 * a And x <= 6 * a Then lblobservacion = "x pertenece al intervalo 3: [5a, 6a]" y = Sqr(a ^ 2 - (x - 5 * a) ^ 2)
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
34
End If If (x < 0 Or x > 6 * a) Then lblobservacion = "x no pertenece al intervalo [0, 6a]" End If End Function Seguidamente hacemos doble clic en el botón de comando EJECUTAR y procedemos a ingresar el siguiente código teniendo presente que debemos hacer uso de la function creada anteriormente Private Sub cmdejecutar_Click() Dim a As Double, x As Double a = txta x = txtx lblobservacion.Alignment = 2 lblobservacion.FontSize = 12 txtfx = Round(y(a, x), 5) End Sub Luego, hacemos doble clic en el botón de comando LIMPIAR e ingresamos el siguiente código: Private Sub cmdlimpiar_Click() txta = "" txtx = "" txtfx = "" lblobservacion = "" txta.SetFocus End Sub Luego, hacemos doble clic en el botón de comando SALIR e ingresamos el siguiente código: Private Sub cmdsalir_Click() End End Sub A continuación ejecutamos la aplicación con diversos datos para cada uno de los tramos, confirmando por consiguiente el funcionamiento correcto de la aplicación.
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
35
Aplicación N° 11 Se desea hacer una aplicación que nos permita mostrar las raíces de una ecuación cuadrática a.x^2 + b.x + c = 0; dando como datos de entrada los coeficientes a, b y c. Crear un procedimiento Sub que evalúe dichas raíces y las presente en el formulario creado para esta aplicación. El diseño del formulario creado para esta aplicación es el mostrado a continuación:
Para crear este formulario se ubicaron los siguientes controles: 8 etiquetas 5 cajas de texto 3 botones de comando cuyas propiedades son las que se muestran a continuación. Form1 Nombre Caption
frminicio RAICES DE ECUACIÓN CUADRATICA
Nombre Caption autosize
lbltitulo a.x^2 + b.x + c = 0 true
Label1
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
36
font
MS Sans Serif-negrita-12
Nombre Caption autosize
lbldatos DATOS true
Nombre Caption autosize
lbla a true
Nombre text alignment
txta
Nombre Caption autosize
lblb b true
Nombre text alignment
txtb
Nombre Caption autosize
lblc c true
Nombre text alignment
txtc
Label2
Label3
Text1
2-center
Label4
Text2
2-center
Label5
Text3
Command1 Nombre Caption
2-center
cmdejecutar EJECUTAR
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
Command2 Nombre Caption
cmdlimpiar LIMPIAR
Command3 Nombre Caption
cmdsalir SALIR
37
Label6 Nombre Caption autosize
lblresultados RESULTADOS true
Nombre Caption autosize
lblx1 x1 true
Nombre text alignment font
txtx1
Nombre Caption autosize
lblx2 x2 true
Nombre text alignment font
txtx2
Label7
Text4
2-center MS Sans Serif-negrita-10
Label8
Text5
2-center MS Sans Serif-negrita-10
A continuación escribimos el código correspondiente al procedimiento Sub raíces_ec_cuadrática cuyos argumentos de entrada son a, b, c; y cuyos argumentos de salida son x1 y x2 Option Explicit
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
38
Dim a As Double, b As Double, c As Double Dim x1 As Variant, x2 As Variant Sub raices_ec_cuadratica(a, b, c, x1, x2) ' Procedimiento Sub ' Determina las raices de a.x^2 + b.x + c = 0 ' Datos de entrada: a, b, c ' Valores devueltos: x1, x2 Dim real As Double, dis As Double dis = b ^ 2 - 4 * a * c real = -b / (2 * a) Select Case dis Case Is < 0 x1 = Round(real, 5) & " + " & Round(Sqr(-dis) / (2 * a), 5) & " i" x2 = Round(real, 5) & " - " & Round(Sqr(-dis) / (2 * a), 5) & " i" Debug.Print a; b; c, x1, x2, "las raices son complejas" Case 0 x1 = Round(real, 5) x2 = x1 Debug.Print a; b; c, x1, x2, "las raices son iguales" Case Is > 0 x1 = Round(((-b + Sqr(dis)) / (2 * a)), 5) x2 = Round(((-b - Sqr(dis)) / (2 * a)), 5) Debug.Print a; b; c, x1, x2, "las raices son reales" End Select End Sub Seguidamente hacemos doble clic en el botón de comando EJECUTAR y escribimos el siguiente código teniendo en cuenta que debemos llamar al procedimiento Sub raíces_ec_cuadrática con sus respectivos argumentos Private Sub cmdejecutar_Click() Dim raiz1 As Variant, raiz2 As Variant a = txta b = txtb c = txtc 'Call raices_ec_cuadratica(a, b, c, raiz1, raiz2) ‘ Es otra forma de llamar a raices_ec_cuadratica raices_ec_cuadratica a, b, c, raiz1, raiz2 'Llama al procedimiento Sub raices_ec_cuadratica
Elaborado por José L. Chuquillanqui Suárez
[email protected]
PROGRAMACION EN VISUAL BASIC
39
txtx1 = raiz1 txtx2 = raiz2 End Sub Luego, hacemos doble clic en el botón de comando LIMPIAR y escribimos el siguiente código: Private Sub cmdlimpiar_Click() txta = "" txtb = "" txtc = "" txtx1 = "" txtx2 = "" txta.SetFocus End Sub Por último, haciendo doble clic en el botón de comando SALIR escribimos el siguiente código: Private Sub cmdsalir_Click() End End Sub Estamos listos para ejecutar nuestra aplicación y observar los resultados correspondientes previamente verificados en forma manual.
Elaborado por José L. Chuquillanqui Suárez
[email protected]