Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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)
40
if (condicin) then
Grupo de instrucciones;
End if
El diagrama de flujo de la estructura condicional
simple es:
41
Estructuras de control
Formulario
Diagrama de flujo
Inicio
Nota
SI
Nota>10.5
Aprobado
NO
Fin
42
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
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
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
46
if (condicin) then
Grupo de instrucciones 1
else
Grupo de instrucciones 2
End if
SI
Condicin?
Sentencias 1
NO
Sentencias2
47
Estructuras de control
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
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
50
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
Else
TextBox1.Text = sueldo * 1.12
End If
End Sub
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
55
Estructuras de control
56
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
58
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
"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
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
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
Estructuras de control
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
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
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
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
Codificacin
71
Estructuras de control
72
73
Estructuras de control
Ejemplo
74
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
76