Sei sulla pagina 1di 40

Captulo II

Estructuras de
Control
Es este captulo utilizaremos las estructuras de
control del lenguaje de programacin Visual Basic.
Estructuras secuenciales
Estructuras selectivas
Estructuras repetitivas

Estructuras de control

Captulo 2
Estructuras de control
2.1.

Estructuras secuenciales
Una estructura es secuencial cuando no existen
bifurcaciones en el cdigo de programacin de las
aplicaciones de Visual Basic.

Por ejemplo
La siguiente aplicacin es una estructura secuencial,
debido a que se el algoritmo no tiene bifurcaciones, es
decir no existe una condicin para que se ejecute el
programa.

Diagrama de flujo

38

Programacin con Visual Basic

Formulario

Codificacin
Botn Calcular
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim base, altura, area As Integer
base = TextBox1.Text
altura = TextBox2.Text
area = base * altura
TextBox3.Text = area
End Sub

39

Estructuras de control

Botn Salir
Private Sub Button2_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Me.Close()
End Sub

2.2.

Estructuras selectivas
2.2.1. Estructura ifthen (Seleccin simple)

La estructura selectiva ifthen (Sientonces)


permite que el flujo del diagrama siga por un
camino especifico, si se cumple una condicin o un
conjunto de condiciones.
Si al evaluar la condicin ( condiciones) el
resultado es verdadero, entonces se ejecutan
ciertas operaciones.
La sintaxis para esta estructura es:

40

Programacin con Visual Basic

if (condicin) then
Grupo de instrucciones;
End if
El diagrama de flujo de la estructura condicional
simple es:

Si la condicin es verdadera ejecuta las


sentencias, caso contrario no ejecuta ninguna
sentencia.
Ejemplo
Disee un algoritmo y su programa en Visual
Basic, tal que dado como dato la calificacin de un
alumno en un examen escriba Aprobado, en
caso de que la calificacin fuese mayor que 10.5

41

Estructuras de control

Formulario

Diagrama de flujo
Inicio

Nota

SI

Nota>10.5

Aprobado
NO

Fin

42

Programacin con Visual Basic

Codificacin
Botn Aceptar
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim nota As Integer
nota = TextBox1.Text
If nota >= 10.5 Then
TextBox2.Text = "Aprobado"
End If
End Sub

En la codificacin, podemos ver que primero


solicita que se ingrese una nota, luego evala si la
condicin es verdadera, entonces muestra en un
cuadro de texto el mensaje de Aprobado, como se
muestra en la figura anterior.
Botn Salir
Private Sub Button2_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Me.Close()
End Sub

43

Estructuras de control

Ejemplo
Dado como dato el sueldo de un trabajador,
aplquele un aumento del 17% si su sueldo es
inferior a S/. 1000. Muestre en pantalla nuevo
sueldo del trabajador.
Diagrama de flujo

Inicio

Sueldo

SI

Sueldo<1000

Sueldo=Sueldo*1.17

NO
Sueldo

Fin

44

Programacin con Visual Basic

Formulario

Codificacin
Botn Aceptar
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim sueldo As Decimal
sueldo = TextBox1.Text
If sueldo < 1000 Then
sueldo = sueldo * 1.17
End If
TextBox2.Text = sueldo
End Sub

45

Estructuras de control

Botn Salir
Private Sub Button2_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Me.Close()
End Sub

En este caso, convertimos la variable sueldo, en un


tipo de dato Decimal, debido a que la variable
sueldo asume valores que incluyen decimales.
Si ingresamos el sueldo del trabajador en S/. 999,
entonces nos mostrara el nuevo sueldo en 1168.83
soles.
2.2.2. Estructura ifthen else

Podemos ver que la estructura selectiva simple es


limitada, aunque muchas veces necesaria, por
otro lado la alternativa doble nos permite tomar
decisiones en ambos sentidos, es decir cuando la
condicin es verdadera cuando es falsa, en otras
palabras cuando el resultado de la condicin es
verdaderas se ejecutan una ms instrucciones,

46

Programacin con Visual Basic

as mismo si la condicin es falsa, entonces se


ejecutan otras instrucciones.
La sintaxis para esta estructura es:

if (condicin) then
Grupo de instrucciones 1
else
Grupo de instrucciones 2
End if

El diagrama de flujo de la estructura condicional


doble es:

SI

Condicin?

Sentencias 1

NO

Sentencias2

47

Estructuras de control

Si la condicin es verdadera ejecuta las


instrucciones1 (sentencias 1), caso contrario se
ejecutan las instrucciones 2 (sentencias 2).
Ejemplo:
Escriba una aplicacin, que permita el ingreso de
la nota de un alumno en un examen, el programa
debe mostrar Aprobado si su calificacin es
mayor que 10.5, caso contrario muestre
Reprobado.

Diagrama de flujo
En esta aplicacin vamos a asumir que la nota
ingresada es vlida, entindase como una nota
valida si est entre 0 y 20 puntos. Entonces el
diagrama de flujo es el siguiente:

48

Programacin con Visual Basic

Inicio

Nota

SI

Nota>10.5

Aprobado

NO

Reprobado

Fin

Formulario

49

Estructuras de control

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim nota As Decimal
nota = TextBox1.Text
If nota > 10.5 Then
MsgBox("Aprobado", 1, "Respuesta")
Else
MsgBox("Reprobado", MsgBoxStyle.OkOnly,
"Respuesta")
End If
End Sub

Botn Salir

Private Sub Button2_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Me.Close()
End Sub

En la codificacin, ahora tenemos la palabra


else, que remplaza al Sino Caso contrario del

50

Programacin con Visual Basic

algoritmo, por lo tanto se ejecutar else solo si la


condicin no se cumple.
Si la nota ingresada es mayor a 10.5, entonces
muestra Aprobado, caso contrario muestra
Reprobado.

Ejemplo
Escriba una aplicacin, que dado como dato el
sueldo de un trabajador, le aplique un aumento
del 17%, si su sueldo es inferior a S/. 1000 y 12%
en caso contrario. El programa debe mostrar el
nuevo sueldo del trabajador.
Formulario

51

Estructuras de control

Diagrama de flujo
Inicio

Sueldo

Sueldo<1000

SI

Sueldo=Sueldo * 1.17

NO

Sueldo=Sueldo * 1.12

Sueldo

Fin

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim sueldo As Decimal
sueldo = InputBox("Ingrese sueldo
actual", "Sistema")
If sueldo < 1000 Then
TextBox1.Text = sueldo * 1.17

52

Programacin con Visual Basic

Else
TextBox1.Text = sueldo * 1.12
End If
End Sub

La ejecucin de la aplicacin se muestra en las


siguientes figuras:
Si la condicin es verdadera entonces
incrementa el sueldo en 17%.
Si la condicin es falsa entonces incrementa el
sueldo en 12%.

Otro ejemplo
Implementando la validacin del ejemplo anterior
que consiste en ingresar una nota. En el ejemplo
anterior, mencionamos que se supona una nota
valida, en la prctica se ve que nada se supone,
todo ingreso de dato debe estar correctamente
validado. Para esto las estructuras condicionales
nos ayudan en esta tarea.

Diagrama de flujo

53

Estructuras de control

Inicio

Nota

SI

SI

Nota>=10.5

Aprobado

Nota>=0 y
Nota <= 20

Nota no valida

NO

Reprobado

Fin

Formulario

Codificacin

54

NO

Programacin con Visual Basic

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim nota As Integer
nota = TextBox1.Text
If nota >= 0 And nota <= 20 Then
If nota >= 10.5 Then
TextBox2.Text = "Aprobado"
Else
TextBox2.Text = "Reprobado"
End If
Else
MsgBox("Nota No valida", , "Sistema")
End If
End Sub

Los resultados se muestran, segn las condiciones


dadas:

Si se ingresa una nota menor a 0 mayor a 20,


entonces se muestra el siguiente cuadro de
dilogo:

55

Estructuras de control

Ejemplo: Par o impar


Implemente una aplicacin, que permita el
ingreso de un numero entero positivo mayor que
cero y de cmo resultado si dicho nmero es par o
impar.
Diagrama de flujo

56

Programacin con Visual Basic

Inicio

Dato

SI

SI

Dato % 2 == 0

Par

Dato>0

Dato no valido

NO

Impar

Fin

Formulario

57

NO

Estructuras de control

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim dato As Integer
dato = TextBox1.Text
If dato >= 0 Then
If dato Mod 2 = 0 Then
TextBox2.Text = "Nmero Par"
Else
TextBox2.Text = "Nmero Impar"
End If
Else
MsgBox("Dato ingresado no es vlido", ,
"Jos Luis Morales")
End If
End Sub

Si ingresamos un nmero par el programa nos


muestra Nmero Par.
Si ingresamos un nmero impar el programa nos
muestra Nmero Impar.

58

Programacin con Visual Basic

2.2.3. La estructura de seleccin mltiple

Una alternativa a if...thenelse, es la sentencia


Select case, la cual evala y compara cada
expresin de la sentencia Case con la expresin
que evaluamos, si llegamos al final de la lista de
case y encuentra una condicin Verdadera,
ejecuta el cdigo de bloque que haya en Case else.
Veamos un ejemplo.
La sintaxis es:
Select case <Expresin de Prueba>
Case exp1
Sentencias1
Case exp2
Sentencias2
Case exp3
Sentencias3
.
.
.
Case else
Otras sentencias
End select

59

Estructuras de control

Ejemplo: Da de la Semana
El siguiente ejemplo utiliza la estructura Select
case, que solicita el nmero de un da de la
semana, evala la estructura y visualiza el da de
la semana en letras.

Formulario

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num As Integer
num = TextBox1.Text

60

Programacin con Visual Basic

Select Case num


Case 1
TextBox2.Text =
Case 2
TextBox2.Text
Case 3
TextBox2.Text
Case 4
TextBox2.Text
Case 5
TextBox2.Text
Case 6
TextBox2.Text
Case 7
TextBox2.Text
Case Else
TextBox2.Text
hay da de la
End Select

"El da 1 es Domingo"
= "El da 2 es Lunes"
= "El da 3 es Martes"
= "El da 4 es Mircoles"
= "El da 5 es Jueves"
= "El da 6 es Viernes"
= "El da 7 es Sbado"
= "Para ese nmero no
semana"

End Sub

Cuando el usuario ingresa el nmero 4


muestra "El da 4 es Mircoles".
Cuando el usuario ingresa un nmero
diferente a los numero de los das de la
semana, entonces mostrara el siguiente
mensaje: "Para ese nmero no hay da de la
semana"

61

Estructuras de control

Ejemplo: Edades
El siguiente ejemplo solicita la edad de una
persona, evala su edad y muestra un mensaje de
acuerdo al siguiente detalle:
Si la edad es menor a 12 Aos es un nio
Si la edad es de 13 a 18 es un adolescente
Si la edad es de 19 a 30 es un joven
Si la edad es de 31 a 60 es un adulto
Si la edad es ms de 60 es un viejito

Formulario

62

Programacin con Visual Basic

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim edad As Integer
edad = TextBox1.Text
Select Case edad
Case 1 To 12
TextBox2.Text
Case 13 To 18
TextBox2.Text
Case 19 To 30
TextBox2.Text
Case 31 To 60
TextBox2.Text
Case Is > 60
TextBox2.Text
Case Else
TextBox2.Text
End Select
End Sub

2.3.

= "Eres un nio"
= "Eres un adolescente"
= "Eres un joven"
= "Eres un adulto"
= "Eres un viejito"
= "Esa edad no es vlida"

Estructuras repetitivas
2.3.1. Estructura dowhile

Es una estructura adecuada para utilizar en un


ciclo que se ejecutara un nmero definido de
veces. Esta estructura se ejecuta mientras que la
condicin sea verdadera, caso contrario termina
el ciclo o bucle.
63

Estructuras de control

La sintaxis para esta estructura es la siguiente:

Do while <condicin>
Sentencias
loop
El diagrama de flujo de esta estructura se muestra
a continuacin:

Condicin?

NO

SI
Sentencias

Ejemplo
Se desea determinar la suma de los gastos que
hicimos en nuestro ltimo viaje, pero no sabemos
exactamente cuntos fueron.

64

Programacin con Visual Basic

Diagrama de flujo
Inicio

Suma = 0

Gasto

Gasto <> -1

SI
Suma = Suma + Gasto

Gasto

Suma

Fin

65

NO

Estructuras de control

Formulario

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim suma, gasto As Decimal
suma = 0
gasto = InputBox("Ingrese gasto", "Jose Luis")
Do While gasto <> -1
ListBox1.Items.Add(gasto)
suma = suma + gasto
gasto = InputBox("Ingrese gasto", "Jos Luis")
Loop
TextBox1.Text = suma
End Sub

66

Programacin con Visual Basic

Ejemplo: Cubo
Escriba un programa que dado un grupo de
nmeros positivos calcule e imprima el cubo de
estos nmeros.
Diagrama de flujo

Inicio

Num

Num > 0

SI
Num ^ 3

Num

Fin

67

NO

Estructuras de control

Formulario

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim num As Integer
num = InputBox("Ingrese un mmero", "Jos Luis")
Do While num > 0
ListBox1.Items.Add(num ^ 3)
num = InputBox("Ingrese un mmero", "Jose Luis")

Loop
End Sub

Ejemplo: Compras
En un supermercado una ama de casa pone en su carrito
los artculos que va tomando de los estantes. La seora

68

Programacin con Visual Basic

quiere asegurarse de que el cajero le cobre bien lo que ella


ha comprado, por lo que cada vez que toma un artculo
anota su precio junto con la cantidad de artculos iguales
que ha tomado y determina cunto dinero gastara en ese
artculo; a esto le suma lo que ira gastando en los dems
artculos, hasta que decide que ya tomo todo lo que
necesitaba. Aydele a esta seora a obtener el total de
sus compras.
Diagrama de flujo
Inicio

Total = 0

C,P
SI
Total = Total + ( P * C )

C>0yP>0

NO
Total

Fin

69

Estructuras de control

Formulario

Codificacin
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim precio, cant, total As Decimal
total = 0
Do
cant = InputBox("Ingrese la cantidad del
producto", "Jose Luis")
precio = InputBox("Ingrese el precio", "Jose
Luis")
total = total + (precio * cant)
Loop While (cant > 0 And precio > 0)
TextBox1.Text = total
End Sub

70

Programacin con Visual Basic

2.3.2. Estructura for .. next

El ciclo for next resulta muy til cuando debemos


ejecutar un bloque de cdigo a condicin de que
una variable se encuentre entre un valor mnimo y
otro mximo. El ciclo for tambin se puede romper
mediante la sentencia Exit for.
La sintaxis para esta estructura es la siguiente:
For expr1=inicio to expr2 =final Step expr3
Sentencias;
Next expr1

Ejemplo: Contar desde el nmero 1 hasta el 10

Codificacin

71

Estructuras de control

Private Sub Button1_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
For i As Integer = 10 To 1 step -1
Debug.Write(i.ToString & " ")
Next
Debug.WriteLine("")
End Sub

El resultado se muestra en la ventana inmediato,


como se visualiza en la siguiente figura:

Ejemplo: Calcular el factorial de un nmero


ingresado por el teclado.
Formulario

72

Programacin con Visual Basic

Cdigo del botn Aceptar


Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim num, f As Integer
num = Val(TextBox1.Text)
f = 1
For i = 1 To num
f = f * i
Next
MsgBox("El factorial del nmero " & num & "
es : " & f)
End Sub

73

Estructuras de control

Ejemplo

Disee un algoritmo, que dados como datos los


sueldos de los 10 trabajadores de una empresa,
obtenga el total de la nmina de la misma.
Formulario

Cdigo del botn Aceptar


Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim sueldo, suma As Decimal
suma = 0
ListBox1.Items.Clear()

74

Programacin con Visual Basic

For i = 1 To 10
sueldo = InputBox("Ingrese el sueldo
del trabajador " & i, "Sistema")
ListBox1.Items.Add(sueldo)
suma = suma + sueldo
Next
TextBox1.Text = suma
End Sub

Ejemplo
Escriba un programa, que dados como datos N
nmeros enteros, obtenga el nmero de ceros que
hay entre estos nmeros.

75

Estructuras de control

Cdigo del botn Aceptar


Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim N, num, contador As Integer
N = Val(TextBox1.Text)
contador = 0
ListBox1.Items.Clear()
For i = 1 To N
num = InputBox("Ingrese el nmero " &
i, "Sistema")
ListBox1.Items.Add(num)
If num = 0 Then
contador = contador + 1
End If
Next
TextBox2.Text = contador
End Sub

76

Potrebbero piacerti anche