21
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.

Sentencias de Control Cíclicas

Embed Size (px)

Citation preview

Page 1: Sentencias de Control Cíclicas

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.

Page 2: Sentencias de Control Cíclicas

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

Page 3: Sentencias de Control Cíclicas

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.

Page 4: Sentencias de Control Cíclicas

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.

Page 5: Sentencias de Control Cíclicas

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

Page 6: Sentencias de Control Cíclicas

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:

Page 7: Sentencias de Control Cíclicas

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

Page 8: Sentencias de Control Cíclicas

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

Page 9: Sentencias de Control Cíclicas

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

Page 10: Sentencias de Control Cíclicas

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:

Page 11: Sentencias de Control Cíclicas

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).

Page 12: Sentencias de Control Cíclicas

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

Page 13: Sentencias de Control Cíclicas

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.

Page 14: Sentencias de Control Cíclicas

14

Al hacer clic en Leer se genera la ventana de mensaje que le pide digitalizar la primera factura.

Page 15: Sentencias de Control Cíclicas

15

Al final, el resultado es:

Al dar clic en Analizar:

Page 16: Sentencias de Control Cíclicas

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:

Page 17: Sentencias de Control Cíclicas

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]).

Page 18: Sentencias de Control Cíclicas

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

Page 19: Sentencias de Control Cíclicas

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.

Page 20: Sentencias de Control Cíclicas

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.

Page 21: Sentencias de Control Cíclicas

21

Bibliografía 1.- Titulo: Aprenda Ya Visual Basic .Net.

Autor: Michael Halvorson. Editorial: Mc Graw Hill. ISBN: 970-10-5897-6

2.- Titulo: Aprendiendo Visual Basic .Net. Autor: Duncan Mackenzie, Kent Sharkey. Editorial: Prentice Hall. ISBN: 970-26-0379-X.