UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA VISUAL BASIC BASICO JAIME RUBIANO LLORENTE NEIVA ENERO 2016 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA UNIDAD 2 FUNDAMENTOS DE PROGRAMACIÓN Estructura temática Unidad 2 Introducción Justificación Intencionalidades Formativas Capítulo 1: Estructuras de Selección Capítulo 2: Estructuras de Iteración Simple Capítulo 3: Estructuras de Repetición Simple INTRODUCCION Visual 2010 es un lenguaje de programación que maneja algunas estructuras básicas para el manejo y control de datos, las estructuras de selección son la que manejan el condicional, como elemento de control, su forma de trabajo es una condición y una acción para cuando se cumple la condición, si se trabaja la iteración simple se tiene como elemento de control una instrucción While o un mientras, esta se ejecuta mientras se cumpla una instrucción, las estructuras de repetición son ciclos que realizan procesos internos hasta cuando estos lleguen a un límite preestablecido, se le conoce como el ciclo for. Todo esto se complementa a las herramientas básicas de cuadros de texto (TextBox), label, botones de comando (Button), manejo de formulario, imágenes, mensajes de dialogo entre otras, para la realización de programas de alta calidad. JUSTIFICACION El estudiante debe conocer el funcionamiento lógico de las diferentes estructuras de programación, estas son aplicadas para la realización de los programas computacionales que requieren un grado de control o decisión para la solución de diferentes situaciones que se presenten, el estudiante fortalece su pensamiento lógico para la solución de problemas este proceso se refleja en el aumento de la creatividad y fortalecimiento del autoestima de su autoestima. INTENCIONALIDADES FORMATIVAS El estudiante estará en capacidad de: Aplicar las diferentes estructuras de programación para el diseño de programas computacionales con un alto grado de toma de decisiones y control. Identificar las diferentes estructuras de programación y su aplicación UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Analizar procesos en donde la programación con estructuras apliquen elementos de selección, iteración y repetición. CAPITULO 1 ESTRUCTURAS DE SELECCIÓN . Estructura temática Introducción 1.1. Condicional If 1.2. Condicionales if else 1.3. Estructura Case 1.4. Aplicaciones INTRODUCCIÓN La programación de computadores cuenta con una serie de estructuras que permiten realizar procesos en forma ordenada y ascendente, estas son usadas como elementos de control, la de selección tipo if, ejecuta un proceso cuando esta cumple con una condición, esta es la estructura simple, la estructura if else, realiza una instrucción si se cumple la condición, pero si no se cumple realiza otra acción por el else o ( sino). La estructura case puede seleccionar dentro de una serie de opciones la que cumpla con el caso. El manejo de las estructuras de programación es importante conocer y apropiarse de los conceptos básicos de análisis lógico aplicado al diseño de programas. OBJETIVO GENERAL Revisar los conceptos básicos, de la programación en Visual 2010 y que el estudiante se apropie del manejo de las diferentes estructuras de selección iteración y repetición que permita desarrollar aplicaciones computacionales. 1.1. CONDICIONAL IF. Las sentencias condicionales son aquellas que se realizan si se cumple una determinada condición. If (condición) acción. El formato: If condición then Acción End if UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA El computador evalúa la condición, si encuentra que la condición es diferente de 0 entonces ejecuta la acción y luego sigue con la próxima instrucción en el programa. Si encuentra que el resultado es 0 no se ejecuta la acción y continúa con otras instrucciones. Empleo de expresiones condicionales. Es muy importante conocer el tipo de expresiones al momento de procesar información, la expresión forma parte de la sentencia que realiza la pregunta del tipo falso o verdadero sobre una propiedad, una variable o algún tipo de dato. Operador de comparación = <> > < >= <= significado Igual que Distinto de Mayor que Menor que Mayor o igual que Menor o igual que Al leer un valor desde el TextBox1.Text, el condicional evalua y si el valor esta en el rango toma la acción correspondiente. Al digitar el número 18, la condición se cumple y por verdadero el if, muestra el mensaje Puede Votar en las elecciones. Forma contraria si digitamos en número 13, al evaluarse la condición, esta no cumple y por falso, Else (sino) muestra el mensaje, No puede votar, es menor de edad. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text >= 18 Then MsgBox(" Puede votar en las elecciones") Else MsgBox("No puede votar , es menor de edad") End If End Sub Empleo de operadores lógicos en expresiones condicionales Operador lógico And Or Not Significado Si ambas condiciones son verdadera el resultado es verdadero Si una de las condiciones es verdadera el resultado es verdadero Si la expresión condicional es falsa, el resultado es verdadero. Si la expresión condicional es verdadera el resultado es falso. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Xor Si una y solo una, de las expresiones condicionales es verdadera, el resultado es verdadero. Si ambas son verdaderas o falsas el resultado es falso. Ejemplo And Programa que envié un mensaje que puede votar a una persona, si cumple que tenga una edad mayor o igual a 18 años y que sea colombiano. Diseñar el formulario: Identifique que herramientas o controles que trabaja esta línea de código, para que diseñe el formulario y pruebe el ejercicio. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As String If TextBox1.Text >= 18 And TextBox2.Text = "colombiano" Then MsgBox(" Puede votar en las elecciones") Else MsgBox("No puede votar , es menor de edad o no es colombiano") End If End Sub Correcto: Un Button Dos TextBox. Donde va la programación? En el Buton1. Va un condicional If. Dos MsgBox, uno para cuando es verdadero o cumple la condición y otro cuando es falso o no cumple la condición. Que operador usa para evaluar la condición? And, operador lógico. Al usar tres Label. Quedaría así: UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Uso de la instrucción AndAlso y OrElse como cortocircuito. Estos dos operadores lógicos trabajan de misma forma que And Y Or pero tienen una ventaja en la forma de evaluar que mejora la rapidez y eficacia, para que And funcione y su resultado sea verdadero en la expresión, juntas expresiones deben ser verdaderas, pero con AndAlso si la primera expresión es falsa, Visual salta de una a la siguiente línea del else sin evaluar la segunda expresión. Al usar OrElse, trabaja de una manera parecida, si la primera condición se evalúa como verdadera OrElse salta y ejecuta la instrucción contenida en el If, sin evaluar la siguiente condición, una de ellas ya es verdadera y con una de ellas ya cumple. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As String If TextBox1.Text >= 18 AndAlso TextBox2.Text = "colombiano" Then MsgBox(" Puede votar en las elecciones") Else MsgBox("No puede votar , es menor de edad o no es colombiano") End If End Sub Puede modificar el anterior programa. Crear un formulario con el uso de una clave pueda acceder o habilitar un GroupBox. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Dos Button Dos TextBox Un GroupBox Dos Label El Textbox1 debe tener la propiedad PasswordChar. El GroupBox1 la propiedad Visible = a False ( o sea oculto ). En el Buuton1, Validar Clave, el código. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text = "unad" Then GroupBox1.Visible = True MessageBox.Show(" Desea Votar", " Votacion Unad", _ MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) End If End Sub En el Button2. Terminar. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click GroupBox1.Visible = False TextBox1.Text = "" End Sub UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Ejemplo 2. Crear un formulario. Dos RadioButton Un TextBox Un Button Programar. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If (Azul.Checked = True) Then TextBox1.BackColor = Color.Blue End If If (RadioButton2.Checked = True) Then TextBox1.BackColor = Color.Red End If Pasar el foco de un TextBox. Significa, que al dar enter sobre un cuadro de texto luego de escribir algo en ese cuadro el cursor queda en el cuadro de texto al cual lo direccionemos. Funciona con un condicional La función ASCII que permite tomar el carácter leído Uso del Método Focus al TextBox If Asc(e.KeyChar) = 13 Then TextBox1.Focus() End If Pasos para trabajar: UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 1 crear el formulario (Form1), puede asignarle otro nombre si lo desea. Tres etiquetas (Label) Tres TextBox(Cajas de texto) Al programar: doble clic sobre el TextBox1 Se debe seleccionar el objeto Se debe seleccionar el evento Keypress Programar en evento. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Asc(e.KeyChar) = 13 Then TextBox2.Focus() End If End Sub Así para las demás cajas de texto. Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress If Asc(e.KeyChar) = 13 Then TextBox3.Focus() End If End Sub UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress If Asc(e.KeyChar) = 13 Then MsgBox("Muy bien") End If End Sub 1.2. CONDICIONALES IF ELSE Si se cumple una condición Entonces Instrucciones uno Si no se cumple Instrucciones dos Fin de la sentencia. Para programar en 2010 se traduce así: If condición Then Instrucciones uno Else Instrucciones dos End If Puede también ejecutar otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condición primera, se pregunte por otras condiciones de dos o tres posibilidades. La sentencia condicional tendría entonces la forma: If condición 1 Then Instrucción uno Else If Condición 2 Instrucciones dos Else If Condición 3 Instrucción 3 Else Instrucción que se realiza si no cumplir las condiciones 1, 2 y 3. End If UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Ejemplo 1 Realizar un programa que lea desde un cuadro de texto un valor de una temperatura, si la temperatura leída es mayor a 27 grados, muestre un mensaje caliente, si la temperatura está entre 27 y 15 grados muestre un mensaje templado y si la temperatura es menor a 15 grados, muestre el mensaje, frio, además cada vez que ejecute una lectura debe retornar el cursor al cuadro de texto para digitar otra temperatura. Para realizarla se requiere: Un form1 Un button Un label Este código va en el Button y es quien realiza la operación. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer x = TextBox1.Text If x < 15 Then MsgBox("frio") TextBox1.Focus() TextBox1.Text = "" ElseIf x > 27 Then MsgBox("caliente") TextBox1.Focus() TextBox1.Text = "" Else MsgBox("Templado") TextBox1.Focus() TextBox1.Text = "" End If End Sub 1.Se declara una variable x entera 2.Se asigna lo leído o el contenido del textbox1 a la variable x 3.Se realiza la primera condición 4.Si esta se cumple muestra el mensaje frio. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 5.Si no cumple ejecuta la siguiente condición por el ElseIf para ejecutar la condición de x > 27 para mostrar el mensaje de caliente. 6.Si no cumple con ninguna de las condiciones entonces ejecuta el else y muestra el mensaje templado. 7.Note que por cualquiera de las opciones que tome, se retorna el foco al text1.tex con la instrucción text1.focus y además limpia el cuadro de texto con la instrucción, textbox1.text = “”. IF ELSE IF Hace un If para continuar con el condicional Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a As Integer a = TextBox1.Text If a < 3 And a >= 1 Then MsgBox("nota baja") ElseIf a > 3 And a <= 4 Then MsgBox("nota media") Else MsgBox("nota alta") End If End Sub En este caso Evalúa cada entrada y toma la acción que cumpla condición. 1.3. ESTRUCTURA CASE Esta estructura Selecciona, dependiendo del caso, un determinado juego de instrucciones: Select Case variable Case 1 Instrucción a ejecutar si variable = 1 Case 2 Instrucción a ejecutar si variable = 2 Case 3 Instrucción a ejecutar si variable = 3 Case 4 Instrucción a ejecutar si variable = 4 End Select UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Este procedimiento resulta mucho mas sencillo y rápido que las sentencias If Else, vistas anteriormente, cuando el margen de elección es mayor que 2. Then Ejemplo case 1 Crear un programa que al digitar un número entre 1 y 7 muestre el día de la semana al cual corresponde y se digita un número mayor muestra mensaje de error. Para realizarlo use: Un formulario, form1 Un label Un Button Un Textbox Programar Button. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer x = TextBox1.Text If x < 1 Or x > 7 Then MsgBox("numero fuera de rango ") TextBox1.Focus() TextBox1.Text = "" End If Select Case x Case 1 MsgBox("Lunes") TextBox1.Focus() TextBox1.Text = "" Case 2 MsgBox("Martes") TextBox1.Focus() TextBox1.Text = "" UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Case 3 MsgBox("Miercoles") TextBox1.Focus() TextBox1.Text = "" Case 4 MsgBox("Jueves") TextBox1.Focus() TextBox1.Text = "" Case 5 MsgBox("Viernes") TextBox1.Focus() TextBox1.Text = "" Case 6 MsgBox("Sabado") TextBox1.Focus() TextBox1.Text = "" Case 7 MsgBox("Domingo ") TextBox1.Focus() TextBox1.Text = "" End Select End Sub 1.4 APLICACIONES Diseñar dos programas de estructuras condicionales, If Else, Case, donde aplique el diseño de menú, enlace de formularios a cuadros de lista, Combo Box, RadioButton, cuadros de texto, CheckBox, donde se aplique etiquetas, operadores. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA CAPITULO 2 ESTRUCTURAS DE ITERACIÓN SIMPLE Estructura temática Introducción 2.1. Estructura de iteración con evaluación previa y posterior 2.2 Estructura While 2.3. Estructura Do Loop While 2.4. Estructura Do Until INTRODUCCIÓN En La programación existen formas de trabajar estructuras de control por medio de iteraciones que permiten realizar una acción antes o después de realizado un evento, quiere decir que se evalúa una condición para realizar una acción, el uso de Visual 2010 a diferencia de otros lenguajes tradicionales, no requiere de conocimientos especiales para desarrollar aplicaciones de gran utilidad, que permiten al estudiante desarrollar su creatividad. El manejo de las estructuras de programación es importante conocer y apropiarse de los conceptos básicos de análisis lógico aplicado al diseño de programas. OBJETIVO GENERAL El estudiante aprende a conocer y aplicar las estructuras de iteración simple para el manejo de datos, así mismo podrá aplicar estos conceptos a programas computacionales de gran calidad, aprovechando las herramientas que visual ofrece para facilitar el desarrollo y aplicaciones. 2.1. ESTRUCTURA DE ITERACIÓN CON EVALUACIÓN PREVIA Se da cuando la condición de salida se evalúa antes de la ejecución de cada ciclo. Se verifica primero la condición y si resulta ser adecuada se ejecutan las acciones asociadas para volver a evaluar la condición. En este tipo de estructuras puede ocurrir que la condición sea inadecuada la primera vez que se evalúa y que, por lo tanto, las acciones asociadas no lleguen a ejecutarse nunca. La iteración con evaluación previa debe utilizarse entonces en aquellos casos en que la ejecución de todo el ciclo esté sujeta al estado previo de una condición, y, por lo tanto, esté previsto que las acciones puedan no ejecutarse nunca. Por ejemplo: mientras la variable A sea inferior a 10 escribir un salto de línea y sumarle 1 a la variable A. En este caso, si ocurre que la variable A llega al ciclo con un valor no inferior a 10 -esto es, si la condición es inicialmente falsa- no se escribirá ningún salto de línea ni se incrementará la variable. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA ESTRUCTURA DE ITERACIÓN CON EVALUACIÓN POSTERIOR Se da cuando la condición de salida se evalúa después de la ejecución de cada ciclo. Se ejecutan primero las acciones asociadas al ciclo, se evalúa luego la condición y, si resulta ser adecuada, se repite el ciclo. En este tipo de estructuras ocurre que las acciones asociadas con el ciclo se ejecutan siempre, por lo menos una vez. La iteración con evaluación posterior debe utilizarse entonces en aquellos casos en que la evaluación de la condición esté sujeta a la ejecución del ciclo y, por lo tanto, esté previsto que las acciones deban ejecutarse siempre, por lo menos una vez. Por ejemplo: apretar una tecla mientras que la tecla apretada sea diferente de <Enter>. En este caso es necesario primero oprimir por lo menos una tecla para poder evaluar luego si es <Enter> y repetir eventualmente la acción de oprimir una tecla 2.2 ESTRUCTRA WHILE La instrucción while permite ejecutar una instrucción o un grupo de instrucciones un número determinado de veces mientras se cumple una condición La forma de esta estructura es: While (condición) Bloque de instrucciones End while Mientras la condición se mantenga verdadera, el bloque se ejecutará "x" cantidad de veces. Es necesario que alguna vez la condición se haga falsa, pues de lo contrario se entraría en un ciclo infinito de repeticiones el programa se consideraría bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while, se ejecute alguna acción que en algún momento haga que la condición sea falsa. Un ejemplo del funcionamiento de la estructura de repetición while: Cree en un formulario un botón de comando y haga el siguiente código para ver la forma de evaluación de la condición y sus resultados. Se envía los datos de x a listbox1, mientras cumple la condición de x <= 10. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Para realizarlo se usa: Un formulario form1 Un Label Un Listbox Y la programación va sobre el formulario ( form1). Cuando se ejecuta el programa activa de una el while. Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim x As Integer x=1 While x <= 10 ListBox1.Items.Add(x) x=x+1 End While End Sub End Class El mismo ejercicio pero ejecutándose desde un Botón (Button) y tomando los datos desde un textbox (caja de texto). UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Botón de ejecutar: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer Dim n As Integer x=1 n = TextBox1.Text While x <= n ListBox1.Items.Add(x) x=x+1 End While End Sub Botón Nueva Lista Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear() TextBox1.Text = "" TextBox1.Focus() End Sub Botón Salir Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End End Sub http://www.youtube.com/watch?v=q1WlPxYF_qQ UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 2.3 ESTRUCTURA DO LOOP WHILE La instrucción do while permite ejecutar una instrucción o un grupo de instrucciones un número determinado de veces. Antes de evaluar el while se ejecuta al menos una vez el proceso. La estructura es: Do Instrucciones Loop While condición control Veamos un ejemplo en donde se imprimen los números del 1 al 4 usando esta estructura. Crear un formulario (form1) Diigitar el codigo: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer = 0 Do MsgBox("Ejemplo Do " + i.ToString) i=i+1 Loop While i < 5 End Sub Imprime en un Msgbox los valores que toma i. Ejemplo ejecutado desde un Button(botón) UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Digitar el código en el botón Ejecutar: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 Do While i < 5 MsgBox("Ejemplo Do While " + i.ToString) i=i+1 Loop End Sub 2.3.1 Estructura do while loop Do While condición Acciones Loop Para el ejemplo: este se ejecuta desde el formulario (Form1). Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer = 0 Do While i < 5 MsgBox("Ejemplo Do While " + i.ToString) i=i+1 Loop End Sub Ejemplo 3. Carga un arreglo con Do While y lo Muestra o imprime con While. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA La programación va en el Botón (Button), Ejecutar. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 Dim arreglo(7) Do While i < 7 arreglo(i) = i i=i+1 Loop i = 0 While i < 7 MsgBox("Ejemplo Do While.. While " + i.ToString) i=i+1 End While End Sub Al ejecutarse se puede ver el contenido del arreglo: Ejemplo 3 Encontrar factorial de un número usando while. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Código para encontrar el factorial de un numero. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 1 Dim x As Integer = 0 Dim fac As Integer = 1 x = TextBox1.Text Do While i <= x fac = fac * i i=i+1 Loop MsgBox("Ejemplo Do While.. Factorial de " + x.ToString + " = " + fac.ToString) End Sub UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Practica: revise que sucede al cambiar la instrucción de mostrar resultado, de donde se encuentra fuera del while y agregarla dentro del While. 2.4 DO UNTIL La diferencia entre una y otra es la condición, While para indicar Mientras se cumpla que... y Until para indicar Mientras no se cumpla que.... X=0 Do Until X > 1000 X=X+1 Loop Con el mismo ejercicio anterior se puede Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 1 Dim x As Integer = 0 Dim fac As Integer = 1 x = TextBox1.Text Do Until i > x UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA fac = fac * i i=i+1 MsgBox("Ejemplo Do While.. Factorial de " + x.ToString + " = " + fac.ToString) Loop Práctica Realizar dos ejercicios con while y dos con do while en donde se aplique condicionales. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA CAPITULO 3 ESTRUCTURAS DE REPETICIÓN SIMPLE Estructura temática Introducción 3.1. Ciclo for 3.2. For anidado 3.4. For Each 3.5. Aplicaciones con for y lista INTRODUCCIÓN En La programación existen formas de trabajar estructuras de control por medio de repeticiones que permiten realizar varias acciones determinadas previamente, quiere decir que se evalúa una condición para realizar un numero de acciones, el uso de Visual 2010 a diferencia de otros lenguajes tradicionales, no requiere de conocimientos especiales para desarrollar aplicaciones de gran utilidad, que permiten al estudiante desarrollar su creatividad. El manejo de las estructuras de programación es importante conocer y apropiarse de los conceptos básicos de análisis lógico aplicado al diseño de programas. OBJETIVO GENERAL El estudiante aprende a conocer y aplicar las estructuras de repetición en su forma de evaluar y ejecución dependiendo los operadores, valores para el manejo de datos, así mismo podrá aplicar estos conceptos a programas computacionales de gran calidad, aprovechando las herramientas que visual ofrece para facilitar el desarrollo y aplicaciones. 3.1 CICLO FOR Un ciclo for es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. que realiza un número determinado de recorridos por el bucle. Es el denominado bucle por contador. For variable inicial = valor de inicio to (hasta) valor final Instrucciones Next La sentencia FOR se utiliza para los bucles, su sintaxis en visual 2010 es: FOR (inicialización) TO (Final del bucle) STEP (paso) UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sentencias ........ NEXT La sentencia realiza un ciclo desde la inicialización hasta el final o final del bucle. Para llevar la cuenta se utiliza una variable, Con cada ejecución del bucle se ejecutan unas sentencias o acciones. NEXT sirve para delimitar el final del bucle, cuando se encuentra con el NEXT se vuelve otra vez al principio del FOR, así hasta realizar el número de ejecuciones programado. Existe un valor que sirve para indicar los pasos o saltos que se realizaran entre ejecución y ejecución, es el valor STEP. Un STEP 3 determinaría que entre ejecución y ejecución la variable se ha de incrementar en 3 unidades. En el caso de no indicar nada se realizan pasos de 1 en 1. También puede trabajar con valores negativos. Un ejemplo aplicado sería el siguiente: Ciclo For ejemplo 1 Un mensaje en MsgBox en donde muestra los números hasta 5. 1.Cree un formulario (Form1). Puede cambiarle el nombre. 2.Luego dele doble clic sobre el form1 3.Programe el ciclo for 4.Ejecute. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA El código del form1 es: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer For i = 0 To 4 MsgBox(i) Next End Sub Al ejecutarse muestra: Al dar clic sobre el Botón Aceptar muestra uno a uno los elementos del ciclo. Hasta que cumpla con todos. Ciclo for ejemplo 2 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA La programación para este ejercicio es la misma que el ejemplo de While para el botón Nueva Lista y Salir, cambia es el uso del ciclo For en el Botón (Button) Ejecutar. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer x=1 Dim n As Integer n = TextBox1.Text For x = 1 To n ListBox1.Items.Add(x) Next x End Sub El ciclo for se incrementa de uno en uno, pero si se desea, se puede usar Step en el ciclo para informarle otra opción de paso. Ejemplo: Step 2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer Dim n As Integer n = TextBox1.Text For x = 1 To n Step 2 ListBox1.Items.Add(x) Next x End Sub 3.1.1 Arreglos Arreglo unidimensional Un array (arreglo) o un vector es una estructura que permite almacenar un conjunto de elementos o datos de un mismo tipo. Un arreglo está compuesto por espacios identificados por subíndices para saber la posición del elemento, cada índice es una posición para almacenar datos. 0 30 2 1 35 40 3 45 4 50 5 55 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Los valores 30, 35,40…..son datos Los valores 0, 1, 2, 3, 4,5 son los índices del arreglo. Se declara en visual DIM Arreglo(indice_superior) As TIPO_DE_DATO Dim arreglo (6) As Integer Crear un arreglo usando ciclo for. 1.Cree un formulario (Form1). Puede cambiarle el nombre. 2.Luego dele doble clic sobre el form1 3.Programe el ciclo for 4.Ejecute. Código para el form1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim arreglo(5) As Integer Dim i As Integer For i = 0 To 4 arreglo(i) = i + 1 MsgBox("Arreglo (" + i.ToString + ") = " + arreglo(i).ToString) Next End Sub Al ejecutarse muestra la posición del arreglo y el número que va en el arreglo, como se da i +1, mostrara el tamaño del arreglo. Ejemplo arreglo Ingresar datos a un arreglo por teclado. Por medio de InpuBox. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim arreglo(5) As Integer Dim i As Integer For i = 0 To 4 arreglo(i) = InputBox("Digite Numero ") Next For i = 0 To 4 MsgBox("Arreglo (" + i.ToString + ") = " + arreglo(i).ToString) Next El primer for captura los datos desde InpuBox. El segundo for recorre el arreglo y muestra el contenido. Ejercicio for Arreglo con datos tipo string cargados directamente en el arreglo y mostrados en un ListBox. Para este ejemplo se usa: Un Formulario (Form1) Un Botón (Button) Un ListBox UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Código necesario para realizar este programa. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim nombres(4) As String nombres(0) = "jaime" nombres(1) = "Andrés" nombres(2) = "Nicolas" nombres(3) = "jars" For i As Integer = 0 To 3 ListBox1.Items.Add(nombres(i)) Next End Sub 3.2 FOR ANIDADOS Esta clase de estructura de programación maneja un ciclo for dentro de otro ciclo for, con la característica principal que por cada ejecución del ciclo del for mas externo, se realiza todo el ciclo interno. Sintaxis FOR (inicialización) TO (Final del bucle) STEP (paso) FOR (inicialización) TO (Final del bucle) STEP (paso) Sentencias NEXT NEXT UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA En inicialización esta la variable con el valor inicial del for. Final del bucle, hasta dónde va el ciclo Step el incremento, si se omite por defecto es 1. En esta estructura cuando ingresa un primer valor para i, j realiza todo el ciclo , cunado termina , sale e incrementa i en 1, y comienza de nuevo todo el ciclo de j. Como ejemplo realizar las tablas de multiplicar partiendo desde un número inicial hasta un número final, para esto se trabaja: Un formulario (Form1). Para hacerlo usamos: Dos label Dos cajas de texto (TextBox) Un ListBox UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA El código: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim j As Integer Dim p As Integer Dim n As Integer Dim n1 As Integer n = TextBox1.Text n1 = TextBox2.Text For i = n To n1 For j = 1 To 10 p=i*j ListBox1.Items.Add((i & "X" & j & " = " & p)) Next Next End Sub También se puede declarar Dim i, j, p,n,n1 As Integer. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 3.2.1 Matrices Matriz de 3 X 3, quiere decir que tiene 3 filas 3 columnas, la intersección de fila columna se identifica según la fila y la columna, 0,0 indica primera fila, primera columna, 1,1, fila 1, columna 1, recuerde que la matriz comienza siempre en 0 para fila y para columna. Para la posición 2,2 es la fila 2 y la columna Columna0 Columna1 Columna2 Fila0 Fila1 Fila2 Para la posición 1,1, fila 1, columna 1. Para el ejercicio de ejemplo: Columna0 Columna1 Columna2 Fila0 1 2 3 Fila1 4 5 6 Fila2 7 8 9 Definidos de entrada en la matriz. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim datos(3, 3) As Integer Dim i, j As Integer datos(0, 0) = "1" datos(0, 1) = "2" datos(0, 2) = "3" datos(1, 0) = "4" datos(1, 1) = "5" datos(1, 2) = "6" datos(2, 0) = "7" datos(2, 1) = "8" datos(2, 2) = "9" For i = 0 To 2 For j = 0 To 2 MsgBox(datos(i, j)) Next Next End Sub UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA El ciclo for con j, recorre la fila El ciclo for con i, recorre las columnas Cada vez que ejecuta una i, se ejecutan los 3 ciclos para j, partiendo en 0. Así: i= 0 j=0 j=1 j = 2 luego cambia i = 1 y de nuevo ejecuta el ciclo j. Operación entre matrices Suma de matrices. Se deben crear tres matrices las de la operación y un destino para el resultado de la operación. Matriz datos con los números de 1 a 9 en cada posición. Fila0 Fila1 Fila2 Columna0 Columna1 Columna2 1 2 3 4 5 6 7 8 9 Matriz datos1 con el número 2 en cada posición, se puede con otro número. Fila0 Fila1 Fila2 Columna0 Columna1 Columna2 2 2 2 2 2 2 2 2 2 Matriz resultado en donde guarda el resultado de la suma de matrices. Columna0 Columna1 Columna2 Fila0 Fila1 Fila2 1.Crear formulario (Form1) 2.Un Botón (Button) Programarlo. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim datos(3, 3) As Integer Dim datos1(3, 3) As Integer Dim resultado(3, 3) As Integer Dim i, j As Integer 'Matriz 1 datos datos(0, 0) = "1" datos(0, 1) = "2" datos(0, 2) = "3" datos(1, 0) = "4" datos(1, 1) = "5" datos(1, 2) = "6" datos(2, 0) = "7" datos(2, 1) = "8" datos(2, 2) = "9" 'Matriz 2 datos1 datos1(0, 0) = "2" datos1(0, 1) = "2" datos1(0, 2) = "2" datos1(1, 0) = "2" datos1(1, 1) = "2" datos1(1, 2) = "2" datos1(2, 0) = "2" datos1(2, 1) = "2" datos1(2, 2) = "2" For i = 0 To 2 For j = 0 To 2 resultado(i, j) = (datos(i, j) + datos1(i, j)) MsgBox(resultado(i, j)) Next Next End Sub 3.3 FOR EACH ... NEXT. Esta construcción es similar al ciclo For, con la diferencia de que la variable que controla la repetición del bucle no toma valores entre un mínimo y un máximo, sino a UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA partir de los elementos de un array (o de una colección de objetos). Su estructura es la siguiente: For Each variable In grupo [ Sentencias] Next Public Class Form1 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged ListBox1.Items.Add(ComboBox1.Text) sumar() End Sub Sub agregar() ComboBox1.Items.Add(10) ComboBox1.Items.Add(20) ComboBox1.Items.Add(30) ComboBox1.Items.Add(40) End Sub Sub sumar() Dim total As Integer For Each elementos In ListBox1.Items total += elementos.ToString UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Next TextBox1.Text = total End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load agregar() End Sub End Class 3.4 APLICACIONES Ejercicios 1.Cargar una matriz desde el teclado 2.Realizar la multiplicación de matrices 3.3. Realizar la división de matrices UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA ACTIVIDADES DE AUTOEVALUACIÓN DE LA UNIDAD 2 Preguntas de selección múltiple con una respuesta: 1. el resultado de y como resultado de la siguiente línea de código, al ingresar por la caja de texto el número 3. Dim x As Integer Dim y As Integer x = TextBox1.Text If x > 5 Then MsgBox("fuera de rango") Else x = x * y y = x MsgBox(" el valor de y es: " & y) End If A. 4 B. 3 C. 1 D. 0 2. el resultado de y como resultado de la siguiente línea de código, al ingresar por la caja de texto el número 3. Dim x As Integer Dim y As Integer = 1 x = TextBox1.Text If x > 5 Then MsgBox("fuera de rango") Else x = x * y y = x MsgBox(" el valor de y es: " & y) End If A. 4 B. 3 C. 1 D. 0 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA 3. estructura de programación que es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. Que realiza un número de recorridos por el bucle Esta estructura es: A. Condicional If B. Ciclo for C. If else D. While 4. La diferencia entre While y Until es: While para indicar Mientras se cumpla que... y Until para indicar Mientras no se cumpla que A. Falso B Verdadero 5. al ingresar el número 5 en la caja de texto de la siguiente línea de código Dim Dim x = For x, i As Integer y As Integer TextBox1.Text i = 1 To x y = y * i Next MsgBox(" el valor de y es: " & y) Al ejecutarse el programa, Tiene como resultado en la variable y el valor: A. 24 B. 120 C. 0 D. 12. 6. Al ingresar el número 5 en la caja de texto de la siguiente línea de código Dim Dim x = For x, i As Integer y As Integer = 1 TextBox1.Text i = 1 To x y = y * i MsgBox(" el valor de y es: " & y) Next UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA A. B. C. D. 1 , 2, 6, 24, 120. 120 0 24 7. ciclo for se caracteriza por: A. realizarse solo una vez si cumple la condición B. se ejecuta dependiendo de la condicional falso o verdadero C. se ejecuta un número determinado de veces controlado por una variable final D. se ejecuta mientras cumpla una condición 8. la sentencia STEP se usa para: A. indicar el siguiente programa B. indicar el paso o salto del for C. indicar siguiente ciclo D. indica el fin del programa UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA FUENTES DOCUMENTALES DE LA UNIDAD 2 BIBLIOGRAFIA Comell, G. (1998). Manual de Visual 2010 3.0 Para Windows. Editorial McGraw Hill. DIRECCIONES DE SITIOS WEB Condicional http://enatorv.wordpress.com/2010/06/06/aplicacion-4-usando-keychar-pasar-foco-aun-textbox-al-presionar-enter/ Arreglos http://msdn.microsoft.com/en-us/library/vstudio/wak0wfyt%28v=vs.100%29.aspx http://mouse-puntonet.blogspot.com/2010/07/arreglos-en-vbnet.html http://www.dotnetperls.com/arraylist-vbnet VIDEOS Arreglos http://www.youtube.com/watch?v=broPkjHSh0M