Vous êtes sur la page 1sur 0

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD TECNICA

12
CAPITULO 3

SENTENCIAS DE CONTROL

3.1.- Introduccin

Las sentencias de control en un lenguaje de programacin, permiten tomar decisiones o repetir un proceso hasta
que se cumpla determinada condicin.
Dependiendo de las caractersticas de la sentencia de control, VB tiene diferentes alternativas.

3.1.1.- Estructuras de control selectivas:
Pueden ser de: alternativa simple
alternativa doble
alternativa mltiple

3.1.2.- Seleccin de estructura simple:
Se da cuando el programa debe elegir entre dos alternativas, si la condicin es verdadera se seguir una
secuencia de control y si es falsa el programa seguir le secuencia normal del programa.


Pregunta? Proceso A
Proceso B
SI
No









3.1.3.- Seleccin de estructura doble:
Permite escoger entre dos alternativas, es decir si es verdadera, se seguir una secuencia de control y si es falsa
otra secuencia totalmente diferente de la primera.


Pregunta? Proceso A
Proceso C
SI No Proceso B







3.1.4.- Seleccin de estructura mltiple:
Permite elegir entre varias condiciones y para cada una se tendr una secuencia de control diferente.

3.2.- Sentencia IF-THEN:

Sirve para la seleccin de alternativas simple y doble.
El formato es:
If condicin Then
Sentencias
End If
por ejemplo:

1. if x <>0 then 2. if y =x+5 then
y =25 / x y =3 * y
End If End If
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

Duberty Silva
13
Ejercicio No 3.1: Modificar el programa del ejercicio No 2.3, calculadora simple, considerando la divisin por
cero.

3.3.- Sentencia IF - THEN - ELSE:

Permite seleccionar entre dos grupos de sentencias, dependiendo de la condicin.
El formato es:
If condicin Then
sentencias
Else
Sentencias
End If

Ejemplo No 3.1: Dado un nmero, indicar si es positivo y par, positivo e impar, o negativo. Razone como
determinara si un nmero es par o impar, positivo o negativo. El programa tendr la siguiente apariencia.


Private Sub cmdCalcular_Click() Else
Dim num As Integer lblRes.Caption ="El nmero es negativo"
num =CInt(txtNumero.Text) End If
If num >0 Then End Sub
If num Mod 2 =0 Then
lblRes.Caption ="El nmero es positivo y par" Private Sub cmdSalir_Click()
Else End
lblRes.Caption ="El nmero es positivo e impar" End Sub
End If

3.4.- Sentencia IF - THEN - ELSE anidadas:

If condicin Then
sentencias
ElseIf condicin Then
Sentencias
Else
Sentencias
End If

Permite seleccionar entre diferentes alternativas. Este tipo de estructuras pueden realizarse sin lmite alguno.

Ejercicio No 3.2: Realizar un programa que imprima el mayor de tres nmeros diferentes, debe indicar en una
etiqueta (lbl) si los tres nmeros son iguales.

3.5.- Cuadros de mensaje

Los cuadros de mensaje son formularios simples que muestran mensajes o solicitan datos y por lo menos un
botn comando que se usa para reconocer el mensaje o el dato.



UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

14
3.5.1- InputBox

La sentencia utilizada en VB para la introduccin de datos es InputBox y su sintaxis es:

A=InputBox ( Mensaje, ttulo)

Ejercicio No 3.3: Realizar un programa que lea dos nmeros mediante la sentencia inputbox y que imprima el
mayor de ellos en una etiqueta.



3.5.2.- MsgBox

La sentencia utilizada para estos cuadros es msgBox, la sintaxis general para su utilizacin es la siguiente:

MsgBox Mensaje, tipo de botn +tipo de icono +botn de enfoque, Ttulo

Donde:
Mensaje: Es el mensaje que se desea mostrar.
Tipo de botn: vbOkOnly, vbOkCancel, vbAbortRetryIgnore, vbYesNoCancel, vbYesNo,
vbRetryCancel
Tipo icono: vbCritical, vbQuestion, vbInformation, vbExclamation, Empty.
Botn de enfoque: vbDefaultButton1, vbDefaultButton2, vbDefaultButton3.
Ttulo: Es el ttulo que se desea que tenga la ventana.

Ejercicio No 3.4: Realizar un programa que muestre las diferentes opciones de la sentencia msgbox tal como
se muestra en el grfico siguiente:
Recuerde que si un botn de opcin est seleccionado tiene la propiedad value=true, caso contrario esta
propiedad ser false.

Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

15
Ejercicio No 3.5: Modificar el programa anterior, que muestre en una etiqueta adicional incluida en el
formulario, el botn que fue seleccionado por el usuario en el cuadro MsgBox es decir, si seleccion la opcin
Omitir, en la etiqueta se mostrar Omitir. Recuerde investigar los valores devueltos por las diferentes opciones
del control MsgBox.

Ejercicio No 3.6: Realizar un programa que resuelva una ecuacin de segundo grado, incluyendo races de tipo
complejo. El programa debe tener la apariencia mostrada en los siguientes grficos. Considere adems que
cualquier constante puede tomar el valor de cero (evitar divisin por cero).







En caso que pretenda utilizar la tecla ENTER para la introduccin de los valores, se debe tener la siguiente
funcin en cada caja de texto de ingreso de datos.
Private Sub txtA_KeyPress(KeyAscii As Integer)
If KeyAscii =13 Then
txtB.SetFocus
End If
End Sub

Notas:
La tecla 13 pertenece a la tecla ENTER
La propiedad SetFocus indica a Visual Basic que el cursor se posicione en el objeto indicado.

Recuerde que para calcular la raz cuadrada de un nmero se utiliza la funcin sqr.

Que ocurre con el programa si el usuario introduce letras en lugar de nmeros. Compruebe realizando esta
prueba. Para solucionar el anterior problema, modifique las sentencias anteriores de la siguiente manera:


Private Sub txtA_KeyPress(KeyAscii As Integer)
If IsNumeric(txtA.Text) Then
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

16
If KeyAscii =13 Then
txtB.SetFocus
End If
End If
End Sub

La sentencia IsNumeric permite a VB determinar si el carcter introducido es un nmero o no.

3.6.- Sentencia SELECT CASE:

Es una estructura de control que permite la seleccin de un conjunto de acciones a partir de una lista de
diferentes opciones.

El formato es:
SELECT CASE expresin
CASE lista de pruebas 1
sentencias
....
CASE ELSE {si no cumple las anteriores condiciones}
sentencias
END SELECT

Ejemplos:
CASE IS <X CASE 3 CASE X TO 20
CASE 3, X CASE -1, X TO 5 CASE SI,si
CASE IS >=10


3.6.1.- Reglas de funcionamiento:

Visual Basic empieza evaluando la expresin SELECT CASE, si cumple la condicin se ejecuta todas las
sentencias incluidas en ese bloque y el control del programa pasar a la sentencia END SELECT, caso contrario
Visual Basic pasar a la siguiente sentencia CASE.

Si ninguna de las condiciones expresadas es verdadera, el control del programa pasar a la sentencia CASE
ELSE, si no existe tal, el control del programa pasar a la sentencia END CASE

Ejemplo: Select Case a
case 1
txtResp.Text=introdujo el nmero 1
case 2, 3
txtResp.Text=introdujo el nmero 2 3
case 4 to 9
txtResp.Text=introdujo del 4 al 9
case else
txtResp.Text=nmero fuera del rango
end select

Ejercicio No 3.7 Escribir un programa que asigne una letra (calificacin) a un estudiante, de acuerdo a la
siguiente puntuacin:
PUNTUACION: 10 CAL.: A PUNTUACION: 9 CAL.: A -
8 B 7 B -
6 C 5 C -
4 D 3 D
2,1,0 F
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

17
Para puntajes mayores a 10 y menores a 0, presentar un mensaje msgBox indicando esta situacin.


3.7.- Estructuras repetitivas:

Un programa muchas veces requiere que una sentencia o grupo de sentencias sean repetitivas un cierto nmero
de veces, esta accin se denomina bucle.
Un bucle se repite hasta que cierta condicin se cumpla.
Visual Basic proporciona cuatro estructuras repetitivas:

DO UNTIL / LOOP o DO / LOOP UNTIL
DO WHILE / LOOP o DO / LOOP WHILE
FOR / NEXT

3.8.- Sentencia DO / LOOP :

La sentencia DO / LOOP permite colocar la condicin al principio o al final del bucle.
Formato No 1:
DO WHILE condicin DO
sentencias sentencias
LOOP LOOP WHILE condicin

Si la condicin es verdadera se repetir las sentencias dentro del bucle, en el momento en que la condicin sea
falsa, el control del programa saldr fuera del bucle.

Formato No 2:

DO UNTIL condicin DO
sentencias sentencias
LOOP LOOP UNTIL condicin

Si la condicin es falsa se repetir las sentencias dentro del bucle, en el momento en que la condicin sea
verdadera el control del programa saldr fuera del bucle.

Ejemplo: Utilizacin de las sentencias DO / LOOP en sus dos formatos y sus cuatro variantes.

a) a=0 b) a=0 c) a =0 d) a =0
DO WHILE a <20 DO UNTIL a=20 DO DO
a=a+1 a=a+1 a =a+1 a=a+1
Print a Print a Print a Print a
LOOP LOOP LOOP WHILE a<20 LOOP UNTIL a=20

3.9.- Sentencia FOR / NEXT:

Los bucles FOR se utilizan cuando se debe repetir una determinada tarea un nmero fijo de veces.
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

Duberty Silva
18
Mientras que las sentencias DO/LOOP se controlan mediante condicionales, la sentencia FOR/NEXT es
controlada por un contador.

Su formato es:

FOR I=inicio TO fin [STEP paso]
sentencias
NEXT I

El paso (STEP) puede ser un nmero positivo (incremento) o negativo (decremento) entero o real, pero si la
variable es real se debe asegurar que no existan problemas de redondeo.

3.10.- Sentencia DO / LOOP EXIT FOR / NEXT - EXIT :

El bucle DO / LOOP es por naturaleza infinito, si no se le acompaa la sentencia EXIT, se transfiere el control
a la sentencia despus de LOOP.

Su formato es: IF condicin THEN EXIT [DO | FOR]

Ejemplo: IF X=100 THEN EXIT DO IF X=100 THEN EXIT FOR

3.11.- Control CheckBox:

Es un control que permite seleccionar una opcin.
Cuando el control est seleccionado la propiedad value es 1 y caso contrario 0.

Ejemplo No 3.2: Realizar un programa utilizando las sentencias DO / LOOP y FOR / NEXT, que muestre
nmeros del 1 al 20 o del uno al 10, si el control checkBox est seleccionado. El programa tendr la siguiente
apariencia.

Nota:
La caja de texto debe tener activada la barra de desplazamiento vertical (scrollBars) y la propiedad multiline
debe estar en true.


El cdigo del botn Do...While es el siguiente:

Private Sub cmdDoWhile_Click() If chkBandera And a >10 Then Exit Do
Dim a As Integer txtPantalla.Text =txtPantalla.Text & frase1 _
Const frase1 As String ="Esta es la lnea " & CStr(a) & frase2 & vbCrLf
Const frase2 As String =" de un bucle Do While...Loop" a =a +1
a =1 Loop
txtPantalla.Text ="" End Sub
Do While a <=20

UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

19
Para que el texto se muestre en una fila diferente en la caja de texto, en el programa anterior se utiliz la
instruccin vbCrLf que son una combinacin de un retorno de carro y avance de lnea. Una segunda opcin
es la instruccin Chr(13) + Chr(10) que realiza la misma funcin.

3.12.- Sentencias anidadas:

Las sentencias WHILE / WEND, DO WHILE / LOOP y FOR / NEXT, pueden ser perfectamente anidadas,
siempre y cuando que estas no sean entrecruzadas.

SENTENCIA PERMITIDA SENTENCIA NO PERMITIDA

DO WHILE N <10 FOR M=1 TO 10
DO WHILE J >20 FOR N=1 TO 2

+ =
+
n
n n
x
n
x x
2
1
1

LOOP NEXT M

LOOP NEXT N

Ejemplo 3.3: Elaborar un programa que calcule la raz cuadrada de un nmero n utilizando la frmula de
Newton. Recuerde que la formula a utilizarse es:




Nota: Al iniciar el programa iguale Xn a 1 y la raz deber tener un error de aproximacin de 0.0005.


La codificacin de los botones cmd, se muestran a continuacin
Private Sub cmdBorrar_Click()
txtResp.Text =""
txtError.Text =""
txtNumero.Text =""
txtNumero.SetFocus
End Sub

Private Sub cmdCalcular_Click()
Dim n As Single
Dim xn as single, x1 As Single
xn =1
n =CSng(txtNumero.Text)
Do
x1 =xn
xn =(x1 +n / x1) / 2
Loop While (Abs(xn - x1) >0.0001)
txtResp.Text =Format(xn, "####0.0000")
txtError.Text =Format(xn - x1, "0.00000")
End Sub

Private Sub cmdSalir_Click()
End
End Sub

Private Sub txtNumero_KeyPress(KeyAscii As Integer)
If KeyAscii =13 Then
cmdCalcular.SetFocus
End If
End Sub

La sentencia format es una funcin que permite controlar la presentacin de las cadenas de texto. Para el
ejemplo anterior, el smbolo # representa un dgito cualquiera, excepto los ceros no significativos y los 0
representan un dgito cualquiera, incluyendo los ceros no significativos y adems redondea el resultado.



Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

20
3.13.- Funciones Numricas:

Algunas de las funciones numricas de uso frecuente son:

Funciones trigonomtricas:
SENO: y = SIN (x)
COSENO: y = COS (x) Donde x: es un ngulo en radianes.
TANGENTE: y = TAN (x) y: es el valor de la funcin.
ARCOTANGENTE: y = ATN (x)

Funciones logartmicas:
LOGARITMO EN BASE e: y = LOG (x)
EXPONENCIAL: y = EXP (x)

Funciones aritmticas:
FUNCION FIX: y = FIX (x) Ej.: si x=78.97, entonces FIX (x) ser: 78 (trunca los decimales)
FUNCION INT: y = INT (x) Ej.: si x= -2.67, entonces INT(x) ser: -3 (parte entera)
FUNCION ABS: y = ABS (x) Ej.: si x= -3.26, entonces ABS(x) ser: 3.26 (valor absoluto)
FUNCION SQR: y = SQR (x) Ej.: si x=25, entonces SQR (x) ser : 5 (raz cuadrada)
FUNCION RND: y =Int((6*Rnd)+1) Ej.: Retorna un nmero aleatorio entre uno y seis.
FUNCION SGN: y = SGN (x) Ej.: si x >0 y =1, x<0 y =-1, x =0 y =0.
FUNCION ROUND: y = ROUND (x,ndec) Ej.: si x=25.5634, entonces ROUND(x,2) ser : 25.56

Ejercicio 3.8: Escribir un programa que realice la conversin de notacin rectangular a notacin polar de un
nmero complejo y viceversa. El formulario tendr la siguiente apariencia:


3.14.- Programas con mltiples formularios

En muchas ocasiones, los programas requieren de mltiples formularios. Para crearlos seguir los siguientes
pasos generales:

1. Crear el formulario principal, incluyendo todas las opciones que necesite adems del botn SALIR.
2. Ingrese al men Proyecto y seleccionar la opcin agregar formulario. Trabaje con este formulario
adicionando los objetos requeridos incluyendo un botn que nos permita retornar al formulario
principal.
3. Repita el paso 2, las veces que sea necesario para crear ms formularios.
4. Para ocultar y mostrar cualquier formulario utilice las sentencias HIDE y SHOW respectivamente. Si
desea descargar el formulario utilice la sentencia unload me.

Ejemplo:
frmCaratula.Hide oculta el formulario frmCaratula
frmMulti.Show muestra el formulario frmMulti

Ejercicio 3.9: Realizar un programa que tenga 2 formularios, tal como se muestra en la siguiente figura.
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA

Duberty Silva
21


Note que los iconos del formulario han sido cambiados.

3.15.- Control SSTAB

El control SSTAB, utiliza mltiples formularios, pero con una presentacin diferente.
Inicialmente debemos adicionarlo en la barra de herramientas. Seleccionamos del men de VB, la opcin
Proyecto, luego componentes y de la ventana seleccionamos Microsoft Tabbed Dialog Control 6.0 y
aceptamos. En la barra de herramientas aparecer el control SSTAB, y podemos preceder a trabaja con ella
como cualquier otro control.

Ejercicio 3.10: Realizar el mismo programa del ejercicio 3.7, utilizando el control SSTAB. Utilice las
propiedades de este control para cambiar el nmero de formularios.

3.16.- Ejercicios propuestos adicionales

Ejercicio 3.11: Realizar un programa que lea el ao, luego determine si este fue bisiesto. Recuerde que un ao
bisiesto tiene 29 das en el mes de febrero. Un ao es bisiesto tiene dos condiciones: a) es divisible entre 4 y no
es divisible entre 100, b) es divisible entre 400.

Ejercicio 3.12: Desarrolle una aplicacin que determine si un nmero entero es primo.

Ejercicio 3.13: Desarrolle una aplicacin que calcule el factorial de un nmero.

Ejercicio 3.14: Desarrolle una programa que convierta un nmero entero de base 10 a base 2.

Ejercicio 3.15: Desarrolle una programa que realice las operaciones bsicas de dos nmeros reales. Los datos se
ingresarn en un formulario y la respuesta se mostrar en un segundo formulario. Considere que los datos se
ingresarn en el primer formulario y la respuesta se ver en un segundo formulario. Investigue como se declaran
las variables para que puedan ser vistas por ambos formularios.

Vous aimerez peut-être aussi