GUIA05 - GEOCITIES.ws

Anuncio
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]
Descargar