Upload
vonga
View
222
Download
0
Embed Size (px)
Citation preview
1
Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación
Ingeniería en Computación – Administradores de Bases de Datos
Base para el Diseño de Formularios y WebForms
Sentencias de Control Cíclicas:
Sentencias de Control For, Do While y Do – Loop While en Visual Basic .Net 2005.
Guía de trabajo #2
Prof. Giovanni Francisco Sáenz Araica.
2
Tabla de Contenidos
Tabla de Contenidos ______________________________________________________ 2
Objetivos ________________________________________________________________ 3
Sentencias de Control de Visual Basic .Net ____________________________________ 4
Ciclo For en Visual Basic .Net 2005__________________________________________ 4
Reglas para definir el Ciclo For _________________________________________________5
Programa Número 1 __________________________________________________________5
Análisis del Algoritmo a Desarrollar _____________________________________________6
Ahora Procedemos con el Programa en Visual Basic .Net ____________________________7
Paso UNO:___________________________________________________________________7
Paso Dos:____________________________________________________________________8
Paso Tres: ___________________________________________________________________8
Paso Cuatro: _________________________________________________________________9
Paso Cinco: __________________________________________________________________9
Paso Seis:___________________________________________________________________10
Paso Siete: __________________________________________________________________10
Paso Ocho: _________________________________________________________________11
Paso Nueve:_________________________________________________________________12
Paso Diez: __________________________________________________________________13
Paso Once:__________________________________________________________________13
Paso Doce:__________________________________________________________________13
Uso de la Sentencia de Control Do - While ___________________________________ 16
Uso de la Sentencia de Control Do – Loop While ______________________________ 18
Tareas _________________________________________________________________ 20
Conclusiones ___________________________________________________________ 20
Bibliografía ____________________________________________________________ 21
3
Objetivos 1.- Estudiar las sentencias de Control en Visual Basic .Net 2005 para presentar datos al usuario en una aplicación de Windows.
2.- Mostrar los pasos que se deben de seguir para la programación de Sentencias de Control en Visual Basic .Net 2005.
3.- Establecer la diferencias entre los diversos tipos de sentencias de control, así como la implementación de estas en Visual Basic .Net 2005.
4.- Por medio de ejemplos puntuales desarrollar la agilidad de la programación en un lenguaje de última generación.
5.- Explicar el uso de las sentencias de control para el desarrollo de aplicaciones en Visual Basic .Net 2005.
4
Sentencias de Control de Visual Basic .Net
Ciclo For en Visual Basic .Net 2005 Es utilizado cuando tenemos un intervalo, el cual es necesario recorrerlo, es decir, necesitamos desplazarnos en un Dominio o rango valores, por ejemplo: a.- Se necesita calcular los valores existentes en la recta numérica entre el intervalo de uno
a diez.
1 2 3 4 5 ……. 10
b.- También puede ser cuando el usuario desea leer una cantidad X de valores, tal como
leer cinco notas de programación Orientada a Objetos.
1 2 3 4 5
c.- Otro caso pudiese ser, cuando tenemos un inicio que no es la unidad o el numero cero,
como por ejemplo, sumar todos los números que existentes entre el numero 100 y 104.
100 101 102 103 104
Como se ha podido observar, existe otra particularidad, al controlar el ciclo existe un movimiento, el cual expresa que nos movemos de uno en uno, no es una regla, ya que en muchas ocasiones probablemente nos desplacemos de dos en dos, o de tres en tres, u otros.
5
Reglas para definir el Ciclo For
For Sub-Indice = Inicio To Valor_Tope_Ciclo Sentencia 1 Sentencia 2 Sentencia 3 Sentencia n
Next 'Fin del Ciclo For {Es opcional dejar el nombre del sud-indice en ‘el cierre del ciclo For, Next Sub-Indice}
Por Ejemplo:
For i = 1 To 20 Me.TextBox3.Text = Me.TextBox3.Text & Cont & ".- " & i & Encapsular Cont += 1 'Cont = Cont + 1
Next i 'Fin del Ciclo For
Programa Número 1
Se requiere leer el total de venta de cinco facturas de la Farmacia Nueva Vida. En este momento solo se desea controlar el monto da cada pago (de esas cinco facturas), y la suma de la venta total. Por ejemplo:
Nº de Factura Monto de venta total de la Factura
1 C$ 1,500.33
2 C$ 755.56
3 C$ 134.77
4 C$ 98.99
5 C$ 905.57
6
Análisis del Algoritmo a Desarrollar
Se tiene que considerar dos preguntas al momento de iniciar con el desarrollo del programa, los cuales son dos instantes: a.- ¿Qué es lo que vamos Hacer? b.- ¿Cómo lo vamos Hacer? a.- Para saber que vamos hacer, tenemos que analizar textualmente lo que nos pide el
problema, si leemos en la primera línea podemos encontrar:
1.- Nos dicen que son cinco facturas y que estas deben ser controladas. 2.- Que es el total de esas facturas lo que nos da como valor de entrada. En la línea dos y tres se expresa el detalle de las operaciones que se deben realizar: 3.- Leer las cinco facturas. 4.- Luego de haber leído esas facturas, sumarlas y encontrar el valor total del monto de
esos datos. Con lo anterior podemos observar:
Línea 1, se debe declarar una variable que almacene las cinco facturas. Línea 2, las facturas para ser leídas, tenemos que utilizar un ciclo, para poder leer la primera, la segunda, la tercera, cuarta y quinta factura (no vale la pena utilizar una variable para cada factura, ya que si en un momento determinado
no son cinco las facturas a leer, sino que se convierten en mil, entonces se vera
con la necesidad de declarar mil variables, por lo tanto ese método no es
adecuado).
Línea 3, Confirma que debemos utilizar un ciclo.
Línea 4, que debemos sumar esas facturas para encontrar la suma total (de ellas todas las facturas).
b.- Una vez detallado todo lo que tenemos que hacer, procedemos a desarrollar el
Algoritmo, para fines y efectos, utilizaremos el método de pseudo código:
7
Nº Instrucción a realizar
1 Declaramos las variables a utilizar. La variable Fact: llevara el control de las facturas, i: el sub-indice que controlara la lectura de las facturas, y suma: será utilizada para el monto total de todas las facturas. 1.1.- Fact=0, i=1, Suma = 0
2 Debemos leer cada una de las facturas, como estamos utilizando Arreglos, en cuanto se lea el valor, este debe ser sumado, porque sino se perderá el valor actual de la factura.
For i=1 Hasta 5 Inicio_Ciclo_For
2.1.- Imprimir “Digitalizar el Valor ” & i & “= “ 2.2.- Leer Fact 2.3.- suma = suma + Fact
Fin_del_Ciclo_For
3 A continuación, procedemos a mostrar los resultados del Ciclo: 3.1.- Imprimir “ El Monto total de Venta es: ” & suma
4 Fin_del_Programa
Ahora Procedemos con el Programa en Visual Basic .Net
Paso UNO: Abrir Visual Basic. Net
8
Paso Dos: Seleccionar que desea crear una Aplicación en Visual Studio .Net, recuerde que es Visual Basic .Net el que utilizara usted.
Paso Tres: Asegurarse que es una Aplicación en Visual Basic .Net, y que esta debe ser una aplicación de Visual Basic para Windows.
Debe seleccionar que desea una
Aplicación y que esta es nueva.
Recuerde Seleccionar Visual Basic y es una Aplicación
para Windows
9
Paso Cuatro: a continuación, aparecerá el formulario (ahora es la Clase Superior) con sus atributos (propiedades) y el ambiente que aparece por defecto en Visual Basic. Net.
Paso Cinco: procedemos a definir que objetos utilizaremos para la lectura de datos en Visual Basic. Net. Como son muchas las opciones, entonces utilizaremos en un principio al estilo clásico InputBox, e iremos mostrando en pantalla y en un Textbox lo que el usuario introduzca como factura. Inicie de forma sencilla, busque la Propiedad Text del Formulario, ahí digitalice, “Control de Factura de la Farmacia Nueva Vida”.
Explorador de Soluciones de
Visual Basic. Net
Ventanas de Propiedades de
Visual Basic. Net
Ventanas de Propiedades de
Visual Basic. Net
Nota: Ahora todos los Objetos en Visual Basic tienen la Propiedad Text (la cual muestra mensaje al usuario por parte del objeto creado), ya no se utiliza
Caption, este es el nuevo estándar que se definió para Stdio .Net
10
Paso Seis: Ahora seleccione en los Controles Comunes del cuadro de Herramientas el objeto Paso Seis: Ahora seleccione en los Controles Comunes del cuadro de Herramientas el objeto
y busque la propiedad Text y digitalizar
Paso Siete: Ahora Agregue dos botones, uno será utilizado para leer y el otro para sumar las facturas.
Botón para Leer datos.
Botón para analizar los datos.
Usted entonces ahora podrá ver el siguiente formulario, ya diseñado:
11
De tal forma que se podrá observar el formulario como aparece arriba de este texto.
Paso Ocho: Ahora Agregue un objeto TextBoxt botones, será utilizado mostrar las facturas que fueron procesadas.
Para tener en cuenta que el Textbox pueda guardar datos busque las propiedades:
ScrollBars: En propiedad Vertical, para que esta pueda crecer a lo alto.
MultiLine: En propiedad asignar el valor de Trae (verdadero), para que esta pueda ser de múltiples líneas.
Enabled: En propiedad de dejar inhabilitado el objeto, no permita que datos puedan entrar (esto es opcional para ti).
Locked: En propiedad de dejar con llave el objeto, no permita que datos puedan entrar (esto es opcional para ti).
12
Ahora usted vera el siguiente formulario:
Paso Nueve: Ahora hacer Click sobre el botón le aparecerá el código del objeto a programar, a continuación se muestra:
Originalmente se mostrara: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘Usted tendra que agregar el codigo aquí. End Sub
Siguiendo el algoritmo planteado al Inicio, entonces procedemos a agregar el código al bloque:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 For i = 1 To 5 Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10)
Next
13
' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub
Paso Diez: Ahora hacer Click sobre el botón Análisis y repitiendo los mismo pasos que anteriormente:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MessageBox.Show("Resultado de la Facturacion" & Suma, "La suma total de las Facturas es:", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub
Paso Once: Ahora Agregar variables globales al Formulario:
Public Class Form1 ‘Fijarse donde se declaran las variables Globales.
Dim Fact As Double ���� Variables Globales al Formulario Dim Suma As Double ���� Variables Globales al Formulario Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End Sub End Class
Paso Doce: ya tiene todo, corra la aplicación.
14
Al hacer clic en Leer se genera la ventana de mensaje que le pide digitalizar la primera factura.
16
Uso de la Sentencia de Control Do - While Esta es una de las sentencias más utilizadas en Visual Basic .Net, ya que esta controla ciclos enteros, a diferencia de For (el cual solo puede ser utilizado con centinelas de control enteros), Do while te permite recorrer ciclos de tipo Double (lo cual no es considerado en el For). Este es uno de los motivos por el cual es más recomendado el uso de While. La sentencia de Control Cíclica Do While esta compuesta de la siguiente forma: a.- Una condición Inicial, la cual sería la expresión1. b.- La palabra reservada Do While y entre paréntesis la condición de para del ciclo,
esa es la expresión2. c.- El bloque de las instrucciones que estarán contenida en el ciclo, es decir que es lo que
quieres hacer en el ciclo.
Sentencia1 Sentencia2 . . . SentenciaN
d.- Antes de finalizar el bloque, se coloca la Expresión3, la que a su vez nos permitirá
movernos en el intervalo, y adicionalmente (un paso después ayudara) saber si la Expresión2 es verdadera y comparar si podremos salir del bloque (antes en lenguaje maquina se programa como etiquetas las sentencias de control cíclicas, y en muchas
ocasiones utilizabas una instrucción que comparaba el valor de un registro, si este
valía cero, podías salir, de lo contrario continuabas dentro del ciclo). e.- Por último, cierras con la palabra Loop (Recuerda que también Do While es
identificador reservado), ahí termina el ciclo. Ahora procedamos a conocer esos detalles, fíjate en el siguiente bloque de programa:
17
i = 1 ���� Esta es la Condición Inicial Expresión1
Si puedes notar, si el valor de i al comprarlo en la expresión2 resulta falso, jamas entrara al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si estas utilizando metodos numericos (análisis numérico, Sistemas Lineales, calculando limites o creando las instrucciones para encontrar un punto “Integrales”, “derivadas”, “transformadas”, etc) el ciclo While te ayuda en los pivotes (cosa que el for no lo puede hacer, ya que solo el desplazamiento es entero [como te habia explicado antes]).
Do While (i <= cant) ���� Esta es la Condición de Parada Expresión2
'For i = 1 To cant � Lo que sería Equivalente a FOR
s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]=
", "Digite la nota del Primer Sistematico")
Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]="
& s1 & Chr(13) & Chr(10)
s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]=
", "Digite la nota del Segundo Sistematico")
Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]="
& s2 & Chr(13) & Chr(10)
Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]=
", "Digite la nota del Examen")
Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]="
& Ex & Chr(13) & Chr(10)
s1 = s1 * 0.3
s2 = s2 * 0.3
Ex = Ex * 0.4
NF = s1 + s2 + Ex
Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]="
& NF & Chr(13) & Chr(10)
Suma = NF + Suma
'Next 'Fin de la Lectura de las notas
i += 1 ���� Esta es la Condición para movernos en el ciclo Expresión3
Loop ���� Esta es la Palabra Reservada para el Cierre del Ciclo.
Ahora que ya conoces como trabaja el ciclo, haz los ajustes al programa anterior y compílalo, verifica todos los detalles y recuerda córrelo paso a paso para que veas la diferencia entre el for y el do while. A continuación el ciclo número tres, el Do – Loop While (equivalente al Do-While de C y
Repeat de Pascal [parecido, pero no igual]).
18
Uso de la Sentencia de Control Do – Loop While Técnicamente hablando, este es el ciclo menos utilizado, ya que la expresión1 no es un medio que garantice que si el valor es falso no se ejecuten por lo menos una vez las instrucciones que están contenida dentro del ciclo Do – Loop While. Aunque el valor de la expresión1 no sea valido, es decir es “falso”, las instrucciones se ejecutan, lo cual si lo llevas a una base de datos o a un sistema lineal donde exista un pivote, que sucedería, “solo desastres”. Pero no te tiene que causar desconfianza, ya que si tienes la agilidad de poder programar, te darás cuenta, que puedes prevenir todos esos casos, y prácticamente le puedes sacar ventaja a eso. La estructura es la siguiente: La sentencia de Control Cíclica Do - Loop While esta compuesta de la siguiente forma: a.- Una condición Inicial, la cual sería la expresión1. b.- La palabra reservada Do (el While no se escribe en esta parte del bloque), solamente
esta palabra reservada. c.- El bloque de las instrucciones que estarán contenida en el ciclo, es decir que es lo que
quieres hacer en el ciclo.
Sentencia1 Sentencia2 . . . SentenciaN
d.- Antes de finalizar el bloque, se coloca la Expresión3, la que a su vez nos permitirá movernos en el intervalo, y adicionalmente (un paso después ayudara) saber si la Expresión2 es verdadera y comparar si podremos salir del bloque (antes en lenguaje maquina se programa como etiquetas las sentencias de control cíclicas, y en muchas
ocasiones utilizabas una instrucción que comparaba el valor de un registro, si este
valía cero, podías salir, de lo contrario continuabas dentro del ciclo). e.- Por último, cierras con la palabra Loop While y entre paréntesis la Expresion2
(Recuerda que también Do While es identificador reservado), ahí termina el ciclo. Si se observa con detalle, se podrá entender que este es el motivo por el cual las instrucciones se ejecutan por lo menos una vez, ya que la expresión de condición de parada, esta al
19
final del ciclo (este problema desaparece, si la condición inicial es adecuada, o sea tiene un valor de verdad – e ahí el meollo del asunto, resuelvan ese problema y todo
saldrá bien). Ahora procedamos a conocer esos detalles, fíjate en el siguiente bloque de programa:
i = 1 ���� Esta es la Condición Inicial Expresión1
Si puedes notar, si el valor de i al comprarlo en la expresión2 resulta falso, puede entrar al Ciclo, este es el problema que debes resolver (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si estas utilizando metodos numéricos se conserva lo mismo del Do While (análisis numérico, Sistemas Lineales, calculando limites o creando las instrucciones para encontrar un punto “Integrales”, “derivadas”, “transformadas”, etc) el ciclo Loop While tambien te ayuda en los pivotes (cosa que el for no lo puede hacer, ya que solo el desplazamiento es entero [como te habia explicado antes]).
Do
'For i = 1 To cant � Lo que sería Equivalente a FOR
s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]=
", "Digite la nota del Primer Sistematico")
Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]="
& s1 & Chr(13) & Chr(10)
s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]=
", "Digite la nota del Segundo Sistematico")
Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]="
& s2 & Chr(13) & Chr(10)
Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]=
", "Digite la nota del Examen")
Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]="
& Ex & Chr(13) & Chr(10)
s1 = s1 * 0.3
s2 = s2 * 0.3
Ex = Ex * 0.4
NF = s1 + s2 + Ex
Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]="
& NF & Chr(13) & Chr(10)
Suma = NF + Suma
'Next 'Fin de la Lectura de las notas
i += 1 ���� Esta es la Condición para movernos en el ciclo Expresión3
Loop While (i <= cant) ���� Esta es la Condición de Parada
Expresión2 – el Cierre del Ciclo.
20
Como se explico antes, ese es el problema, el manejo de la expresión2 se hace al final del bloque. Ahora que ya conoces como trabaja el ciclo, haz los ajustes al programa anterior y compílalo, verifica todos los detalles y recuerda córrelo paso a paso para que veas la diferencia entre el for, el do while y ahora el Loop - While.
Tareas 1.- Hacer esta práctica pero ahora permitiendo que el usuario establezca la cantidad,
ustedes tiene que hacerlo con los tres ciclos. 2.- Investigar como hacer estos mismos pasos, pero ahora con arreglos (para guardar
valores), procedimiento (imprimir resultados) y funciones (leer valores). 3.- Aquí se mostraron los pasos a seguir para desarrollar esta aplicación en Windows,
ahora, tu tienes que hacerlo con Web Forma. Esta misma práctica pero llevada a una página WEB que se “pueda ver en todo el mundo”. De hecho, esta es la siguiente prueba evaluada.
Conclusiones 1.- Ahora y a partir de este momento, ya se posee la habilidad para poder trabajar con
sentencias de control Cíclicas. A medida que la práctica aumente, la habilidad para poder resolver problemas donde se requiera este tipo de instrucción será de fácil reconocimiento y también de programación.
2.- Se ha comprendiendo el porque y cuando de la utilización de los diversos tipos de
sentencias de control, aunque en la práctica y en algunas aplicaciones todos son necesarios, se ha definido las reglas a seguir, para cualquier tipo de casos.
3.- A partir de este momento ya se cuentan con insumos para ir más allá de los
planteamiento que se realizan con los algoritmos, en este instante se puede iniciar con el desarrollo de las aplicaciones.